Kako omogočiti sistemski potopni način brez korena

Vadnica o tem, kako omogočiti potopni način v celotnem sistemu (ali na podlagi posamezne aplikacije), ne da bi zahteval korenski dostop. Deluje na vseh napravah Android 4.4+.

Ker zasloni telefonov postajajo vedno večji, včasih želimo skriti vrstico stanja in navigacijsko vrstico, da si lahko vsebino ogledamo na celotnem čistem, čudovitem zaslonu HD.

Začenši z Androidom 4.4, lahko aplikacije izvajajo Potopni način da bi končnemu uporabniku resnično zagotovili celozaslonsko izkušnjo. Na žalost Google in proizvajalci originalne opreme nikoli niso izpostavili možnosti, da uporabniki ročno nadzirajo, kdaj želijo omogočiti potopni način. Poklicana aplikacija tretje osebe Celozaslonski potopni način GMD že nekaj let ponuja rešitev, vendar je največja težava pri uporabi te aplikacije ta, da pokvari mehko tipkovnico.

Uporabniki že kar nekaj časa krožijo okoli ukaza ADB, ki sproži sistemski potopni način, vendar leta je veljalo, da bo za uporabo tega ukaza, ko ni priklopljen na terminal ADB, potreben root dostop. Vendar pa so konec lanskega leta uporabniki odkrili, da se nekateri ukazi ADB dejansko lahko sprožijo na napravi 

brez korenskega dostopa, če ima aplikacija določeno dovoljenje. To pomeni, da lahko omogoči potopni način za celoten sistem na zahtevo. Ustvarite lahko na primer ploščico Nougat za preklop potopnega načina ali celo nastavite potopni način za vsako aplikacijo posebej.


Preklopite potopni način brez korena

Kot lahko vidite v zgornjem videu, sem ustvaril ploščico Nougat, ki preklopi potopni način, ko jo pritisnem. To je na mojem neukoreninjenem Huawei Mate 9, vendar bi moralo delovati naprej skoraj vsako napravo Android 4.4+. Za delovanje potrebujete samo dve aplikaciji: Tasker in AutoTools Beta. Prav tako boste morali namestiti Samodejno obveščanje če želite iz tega narediti ploščico Nougat, vendar to ni obvezno.

Ko namestite obe aplikaciji, boste morali odobriti WRITE_SECURE_SETTINGS dovoljenje za AutoTools, da lahko preklapljate potopni način (med drugimi izjemnimi nastavitvami, ki jih bomo obravnavali pozneje). To je zato, ker je ukaz za potopni način definiran pod nastavitve. Globalno razreda, čeprav je natančna sintaksa za ukaz skrita v AOSP. Najprej bomo preučili, kako dodeliti potrebno dovoljenje za AutoTools in nato kako uporabiti ukaz v Taskerju.


V Androidovem sistemu za upravljanje dovoljenj aplikacije določijo dovoljenja, ki jih želijo dodeliti v datoteki Manifest. Uporabniki lahko nato dodelijo ali zavrnejo dovoljenja ob namestitvi (pred Marshmallow) ali na zahtevo (Marshmallow+). Vendar pa obstajajo določena dovoljenja, ki jih aplikacijam ni mogoče podeliti, tudi če to zahtevajo v Manifestu, kot npr WRITE_SECURE_SETTINGS. To je zato, ker bi podelitev tako zmogljivega dovoljenja kateri koli aplikaciji dala tej aplikaciji veliko nadzora nad vašo napravo.

Obstaja pa ena rešitev, ki jo lahko uporabimo za dodelitev dovoljenja WRITE_SECURE_SETTINGS kateri koli aplikaciji, ki jo želimo. Z uporabo ADB upravitelj paketov (pm) lahko podelimo poljubno dovoljenje kateri koli aplikaciji, ki jo želimo (pod pogojem, da aplikacija to dovoljenje zahteva v datoteki Manifest).

Prva stvar, ki jo boste morali storiti, je namestite binarno datoteko ADB na vaš računalnik, ki mu sledi pravi gonilnik za vašo napravo. Nato v možnostih za razvijalce omogočite razhroščevanje USB (pojdite na Nastavitve --> O telefonu in se 7-krat dotaknite številke gradnje, če tega še niste storili) in povežite telefon z računalnikom. Na koncu pošljite naslednji ukaz, ko odprete terminal:

adb shell pm grant com.joaomgcd.autotools android.permission.WRITE_SECURE_SETTINGS

Zdaj bo AutoTools lahko spremenil vse globalne, varne ali sistemske nastavitve v vaši napravi. S temi nastavitvami in seznamom razpoložljivih nastavitev se lahko igrate na različne načine vsaka kategorija je popolnoma odvisna od vaše naprave in programske opreme, vendar je ta razprava za drugo čas. V vsakem primeru vam bomo pokazali, kako uporabljati AutoTools za preklop potopnega načina.


Uporaba Taskerja za preklop potopnega načina prek ploščice Nougat

Preklapljanje potopnega načina prek ploščice očitno zahteva Android Nougat, tako da, če nimate Nougata, preskočite ta razdelek, da se naučite, kako ga preklopite za vsako aplikacijo. Če tega še niste storili, prenesite AutoNotification iz trgovine Google Play in mu podelite dostop do obvestil. Ta vtičnik Tasker bomo uporabili za izdelavo lastne obvestilne ploščice po meri.

Tukaj je opis profila za tiste, ki poznate Tasker. Če niste tako dobro seznanjeni s Taskerjem, preberite navodila po korakih.

Nougat Tile Immersive Mode Preklop

Profile: Toggle Immersive Mode (30)
Event: AutoNotification [ Configuration: Event Behaviour
Filter: immersivemode ]
Enter: Immersive Mode (33)
A1: AutoNotification Tiles [ Configuration: Tile: 1
Command: immersivemode
Label: Immersive mode
Icon: /storage/emulated/0/Tasker/immersive.png
State: 999 Timeout (Seconds):60 ]
A2: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

Preberi več

Odprite Tasker in pritisnite + gumb v spodnjem desnem kotu. Ustvarite Dogodek kontekst in izberite Plugin --> AutoNotification. Pritisnite ikono svinčnika, da odprete konfiguracijsko stran za AutoNotification. Pod Filter ukazov vstopiti potopni način. To je natančen ukaz, ki bo poslan, ko se dotaknemo ploščice Nougat.

Zdaj ustvarite novo nalogo (s poljubnim imenom), priloženo temu profilu, in za prvo dejanje pojdite na Plugin --> AutoNotification --> Tiles. Za številko ploščice izberite 1. ploščico. Za Ukaz vstopiti potopni način točno tako kot je napisano. The oznaka je tisto, kar bo prikazano pod ploščico, zato ga poimenujte nekako na primer »Immersive Mode«. Za Ikona, shranite ikono, ki sem jo priložil na začetku tega razdelka, v svoj notranji pomnilnik in jo uporabite. Končno za Država izberite Preklapljanje med aktivnim/neaktivnim.

Ko končate, enkrat zaženite opravilo (pritisnite gumb za predvajanje v spodnjem levem kotu zaslona za ustvarjanje opravila), da bo ploščica zapolnjena. Zdaj, ko razširite seznam razpoložljivih obvestilnih ploščic, bi morali videti nov preklopni gumb za potopni način.


Uporaba Taskerja za preklop potopnega načina na podlagi posamezne aplikacije

Preklapljanje potopnega načina za posamezno aplikacijo je precej preprosto, vse kar moramo storiti je, da ustvarimo kontekst aplikacije v Tasker, ki se sproži, ko se aplikacija zažene ali zapre, in ko se to zgodi, je Immersive Mode preklopil. Če želite, da bo Tasker spremljal aplikacije, ga morate omogočiti Storitev dostopnosti.

Tukaj je opis profila za tiste, ki poznate Tasker. Če niste tako dobro seznanjeni s Taskerjem, preberite navodila po korakih.

Poglobljeni način za posamezno aplikacijo

Profile: Per-App Immersive Mode (192)
Application: Chrome or XDA Labs
Enter: Anon (199)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

Exit: Anon (204)
A1: AutoToolsSecureSettings[ Configuration: Immersive Mode: Toggle Timeout (Seconds):60 ]

Preberi več

Najprej boste želeli odpreti Tasker, saj bomo ustvarili profil za zagon potopnega načina, ko so določene aplikacije odprte. Odprite Tasker in pritisnite + v spodnjem desnem kotu, da ustvarite nov profil. Za vrsto konteksta izberite Aplikacija in izberite vse aplikacije, za katere želite, da je potopni način aktiven.

Ko končate, pritisnite nazaj in Tasker vas bo pozval, da ustvarite nalogo. Opravila ni treba poimenovati, zato preprosto pritisnite kljukico, da začnete ustvarjati opravilo. Ko odprete zaslon za ustvarjanje opravila, morate dodati samo eno dejanje. Pritisnite tipko + gumb na dnu in pojdite na Plugin --> AutoTools --> Secure Setting. Pritisnite ikono svinčnika, da konfigurirate AutoTools. Tukaj, pojdi na Zaslon nato tapnite Potopni način in izberite "Preklopi."

Še zadnja stvar, ki jo moramo narediti, je, da onemogočimo potopni način, ko zapustite aplikacijo. Vrnite se na Taskerjev glavni zaslon in dolg pritisk na opravilo, ki ste ga pravkar ustvarili, da lahko ustvarite Izhod iz opravila. Ko ustvarite izhodno opravilo, preprosto dodajte isto dejanje, ki ste ga dodali v prvem opravilu – to bo preklopilo potopni način.


Natančna nastavitev potopnega načina

Kot sem že omenil, so lahko natančni ukazi, ki so na voljo za vsiljevanje potopnega načina pobrano iz AOSP. Potopni način lahko nastavite tako, da skrije samo vrstico z obvestili ali skrije samo navigacijsko vrstico, tako da izdate enega od naslednjih ukazov:

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

Seveda vam AutoTools dejansko ne omogoča neposrednega pošiljanja lupinskih ukazov, kot je ta, ampak namesto tega boste ukaz poslali z njegovim vmesnikom. Preprosto izberite »Nastavitev po meri« v varnih nastavitvah AutoTools, nastavite vrsto nastavitve na »globalno«, nastavite »Vrsta vnosa« na "String" in za ime morate vnesti "policy_control immersive.status=*" ali "policy_control immersive.navigation=*". Ta ukaz lahko uporabite namesto tistega, ki smo ga uporabili za ploščico Nougat ali za nadzor posamezne aplikacije, če vam je ljubše, da potopni način skrije eno od vrstice stanja ali vrstice za krmarjenje.


Prenesite in uvozite v Tasker

Kot vedno nudimo datoteko XML skripta, ki jo lahko prenesete in uvozite. Preprosto prenesite datoteko s spodnje povezave in jo shranite kamor koli v notranji pomnilnik. Odprite Tasker in onemogočite začetni način v nastavitvah. Nato se vrnite na glavni zaslon in dolgo pritisnite zavihek »Profil« na vrhu. Morali bi videti pojavno okno z eno od možnosti »Uvozi«. Dotaknite se tega in poiščite mesto, kjer ste shranili datoteko .prf.xml, in izberite to datoteko za uvoz.

Če se odločite za uvoz obvestilne ploščice, se prepričajte, da ste ikono potopnega načina shranili kot immersive.png in jo shranite v /sdcard/Tasker. Če se odločite za uvoz profila za posamezno aplikacijo, se prepričajte, da ste vstopili in prilagodili aplikacije, v katerih se bo sprožil, saj je moj vzorec nastavljen tako, da se sproži samo pri uporabi Chroma ali XDA Labs.

Prenesite preklop potopnega načina obvestilne ploščice

Prenesite profil preklopa poglobljenega načina za posamezno aplikacijo

Upamo, da vam bo ta nasvet koristen. Sporočite nam v spodnjih komentarjih, če vam to ustreza!