Kuidas lubada kogu süsteemi hõlmavat ümbritsevat režiimi ilma juurteta

Õpetus selle kohta, kuidas lubada ümbritsevat režiimi kogu süsteemis (või rakendusepõhiselt) ilma juurjuurdepääsu nõudmata. Töötab kõigis Android 4.4+ seadmetes.

Kuna telefoniekraanid on muutunud üha suuremaks, tahame mõnikord oleku- ja navigeerimisriba peita, et saaksime vaadata oma sisu, kasutades kogu karget ja kaunist HD-ekraani.

Alates Android 4.4-st võivad rakendused juurutada Kaasahaarav režiim et pakkuda lõppkasutajale tõeliselt täisekraanikogemust. Kahjuks pole Google ja originaalseadmete tootjad kunagi avaldanud kasutajatele võimalust käsitsi juhtida, millal nad soovivad kaasava režiimi lubada. Kolmanda osapoole rakendus nimega GMD täisekraani haarav režiim on juba paar aastat pakkunud lahendust, kuid selle rakenduse kasutamise suurim probleem on see, et see rikub pehme klaviatuuri.

Kasutajad on mõnda aega liikunud ADB käsu ümber, mis käivitab kogu süsteemi hõlmava immersiivse režiimi, kuid aastaid usuti, et selle käsu kasutamine ADB-terminalist lahti ühendatuna nõuab juurfaili juurdepääs. Kuid eelmise aasta lõpus avastasid kasutajad, et teatud ADB-käsud võivad tegelikult seadmes käivituda 

ilma juurjuurdepääsuta, eeldusel, et rakendusel on teatud luba. See tähendab, et saate lubage kogu süsteemi hõlmav režiim nõudlusel. Näiteks saate luua Nougati paani, et lülitada sisse immersiivne režiim või isegi määrata immersiivne režiim rakendusepõhiselt.


Lülitage sisselülitav režiim ilma juureta

Nagu näete ülaltoodud videost, olen loonud Nougati paani, mis lülitab selle vajutamisel sisse ümbritseva režiimi. See on minu juurdumata Huawei Mate 9-l, kuid see peaks töötama peaaegu igas Android 4.4+ seadmes. Selle toimimiseks vajate ainult kahte rakendust: Tasker ja AutoToolsi beetaversioon. Peate ka installima Automaatne teavitus kui soovite, et sellest saaks Nougati plaat, kuid see pole vajalik.

Kui olete mõlemad rakendused installinud, peate selle lubama WRITE_SECURE_SETTINGS luba AutoToolsile, et oleks võimalik lülitada ümbritsevasse režiimi (muude suurepäraste seadete hulgas, mida käsitleme hiljem). Selle põhjuseks on asjaolu, et ümbritseva režiimi käsk on määratletud all Seaded. Globaalne klassis, kuigi käsu täpne süntaks on AOSP-s peidetud. Kõigepealt käsitleme seda, kuidas anda AutoToolsile vajalik luba, seejärel kuidas kasutada käsku Taskeris.


Androidi lubade haldussüsteemis määravad rakendused Manifest-failis load, mida nad soovivad anda. Seejärel saavad kasutajad installimisel (Marshmallow-eelne) või nõudmisel (Marshmallow+) load anda või keelata. Siiski on teatud õigusi, mida rakendustele ei saa anda isegi siis, kui nad seda manifestis taotlevad, näiteks WRITE_SECURE_SETTINGS. Selle põhjuseks on asjaolu, et mis tahes rakendusele nii võimsa loa andmine annaks sellele rakendusele teie seadme üle palju kontrolli.

Kuid on üks lahendus, mida saame kasutada WRITE_SECURE_SETTINGS loa andmiseks mis tahes soovitud rakendusele. Kasutades ADB-sid paketihaldur (pm) tööriist, saame anda mis tahes loa mis tahes soovitud rakendusele (eeldusel, et rakendus taotleb seda luba manifestifailis).

Esimene asi, mida peate tegema, on installige ADB binaarfail arvutisse ja seejärel teie seadme jaoks õige draiver. Seejärel lubage arendaja suvandites USB silumine (avage Seaded --> Teave telefoni kohta ja puudutage 7 korda Järjenumbrit, kui te pole seda veel teinud) ja ühendage telefon arvutiga. Lõpuks saatke pärast terminali avamist järgmine käsk:

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

Nüüd saab AutoTools muuta teie seadme mis tahes globaalset, turvalist või süsteemiseadet. Nende seadete ja saadaolevate seadete loendiga saate mängida mitmel viisil iga kategooria sõltub täielikult teie seadmest ja tarkvara konstruktsioonist, kuid see arutelu on teise jaoks aega. Igal juhul näitame teile, kuidas kasutada automaatseid tööriistu ümbritseva režiimi sisselülitamiseks.


Taskeri kasutamine ümbritseva režiimi lülitamiseks Nougat Tile'i kaudu

Kaasahaarava režiimi sisselülitamine paani kaudu nõuab ilmselgelt Android Nougatit, nii et kui teil Nougatit pole, jätke see jaotis vahele, et õppida, kuidas seda rakendusepõhiselt ümber lülitada. Kui te pole seda veel teinud, laadige Google Play poest alla AutoNotification ja andke sellele juurdepääs teavitustele. Seda Taskeri pistikprogrammi kasutame oma kohandatud teavitusplaadi loomiseks.

Siin on profiili kirjeldus neile, kes tunnevad Taskerit. Kui te pole Taskeriga nii tuttav, lugege samm-sammult juhiseid.

Nugatiplaadi ümbritseva režiimi lüliti

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 ]

Loe rohkem

Avage Tasker ja vajutage nuppu + nuppu all paremas nurgas. Loo an Sündmus kontekstis ja valige Plugin --> Auto Notification. Automaatse teavituse konfiguratsioonilehe avamiseks vajutage pliiatsiikooni. all Käskude filter sisenema kaasahaarav režiim. See on täpne käsk, mis saadetakse, kui puudutame Nougati paani.

Nüüd looge sellele profiilile lisatud uus ülesanne (mis tahes nimega) ja esimeseks toiminguks minge aadressile Plugin --> Automaatne teavitus --> Paanid. Paanide numbri jaoks valige 1. klots. Jaoks Käsk sisenema kaasahaarav režiim täpselt nii nagu kirjas. The silt on see, mis kuvatakse paani all, nii et pange sellele nimeks "Kummerdav režiim". Jaoks Ikoon, salvestage ikoon, mille selle jaotise alguses lisasin, oma sisemällu ja kasutage seda. Lõpuks jaoks osariik vali Aktiivne/mitteaktiivne.

Kui olete lõpetanud, käivitage ülesanne üks kord (vajutage ülesande loomise ekraani vasakus alanurgas olevat esitusnuppu), nii et paan täidetakse. Nüüd, kui laiendate saadaolevate teavitusplaatide loendit, peaksite nägema uut ümbritseva režiimi lülitit.


Taskeri kasutamine ümbritseva režiimi sisselülitamiseks rakendusepõhiselt

Kaasahaarava režiimi sisselülitamine rakendusepõhiselt on üsna lihtne, meil tuleb vaid luua rakenduse kontekst Tasker, mis käivitub rakenduse käivitamisel või sulgemisel ja kui see seda teeb, on Immersive Mode ümber lülitatud. Selleks, et Tasker saaks rakendusi jälgida, peate selle lubama Juurdepääsetavusteenus.

Siin on profiili kirjeldus neile, kes tunnevad Taskerit. Kui te pole Taskeriga nii tuttav, lugege samm-sammult juhiseid.

Rakendusepõhine kaasahaarav režiim

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 ]

Loe rohkem

Esmalt soovite avada Taskeri, kuna teatud rakenduste avamisel loome ümbritseva režiimi käivitamiseks profiili. Avage Tasker ja vajutage nuppu + nuppu all paremas nurgas, et luua uus profiil. Kontekstitüübi jaoks valige Rakendus ja valige kõik rakendused, milles soovite, et immersiivne režiim oleks aktiivne.

Kui olete lõpetanud, vajutage tagasi ja Tasker palub teil ülesanne luua. Ülesandele pole vaja nime panna, nii et ülesande loomise alustamiseks vajutage lihtsalt linnukest. Kui sisenete ülesande loomise ekraanile, peate lisama ainult ühe toimingu. Vajutage nuppu + nuppu allosas ja minge lehele Plugin --> AutoTools --> Secure Setting. Automaatsete tööriistade konfigureerimiseks vajutage pliiatsiikooni. Siin, minge Ekraan seejärel puudutage Kaasahaarav režiim ja vali "Lülita."

Veel üks asi, mida peame tegema, on rakendusest väljumisel keelekümblusrežiim keelata. Minge tagasi Taskeri põhiekraanile ja pikalt vajutada äsja loodud ülesandel, et saaksite luua Välju ülesandest. Kui loote väljumisülesande, lisage lihtsalt sama toiming, mille lisasite esimeses ülesandes – see lülitab ümbritseva režiimi sisse.


Kaasahaarav režiim

Nagu ma varem mainisin, võivad ümbritseva režiimi sundimiseks saadaolevad täpsed käsud olla korjatud AOSP-st. Saate seadistada ümbritseva režiimi nii, et see peidab ainult teavitusriba või ka ainult navigeerimisriba, andes välja ühe järgmistest käskudest.

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

Muidugi ei luba AutoTools teil selliseid shellikäske otse saata, vaid selle asemel saadate käsu selle liidest kasutades. Valige lihtsalt AutoToolsi turvasätetes "Kohandatud säte", määrake sätte tüübiks "globaalne", määrake sisendi tüüp väärtuseks "String" ja nime jaoks peate sisestama "policy_control immersive.status=*" või "policy_control" immersive.navigation=*". Saate kasutada seda käsku selle käsu asemel, mida kasutasime Nougat Tile'i või rakendusepõhise juhtimise jaoks, kui eelistate ümbritsevat režiimi peita kas olekuribal või navigeerimisribal.


Laadige alla ja importige Taskerisse

Nagu alati, pakume skripti XML-faili, mille saate alla laadida ja importida. Lihtsalt laadige fail allolevalt lingilt alla ja salvestage see suvalisse kohta oma sisemällu. Avage Tasker ja keelake eelistustes algaja režiim. Seejärel minge tagasi põhiekraanile ja vajutage pikalt ülaosas olevat vahekaarti "Profiil". Peaksite nägema hüpikakent, mille üks valikutest on "Impordi". Puudutage seda ja sirvige kohta, kuhu salvestasite .prf.xml-faili, ja valige importimiseks see fail.

Kui valite teavituspaani importimise, salvestage Immersive Mode ikoon kindlasti nimega immersive.png ja salvestage see kausta /sdcard/Tasker. Kui valite rakendusepõhise profiili importimise, minge kindlasti sisse ja kohandage rakendusi, mille see käivitab, kuna minu näidis on seatud käivituma ainult Chrome'i või XDA Labsi kasutamisel.

Laadige alla teavitusplaadi ümbritseva režiimi lüliti

Laadige alla rakendusepõhise ümbritseva režiimi lülitusprofiil

Loodame, et see näpunäide on teile kasulik. Andke meile allolevates kommentaarides teada, kas see töötab teie jaoks!