Jak povolit celosystémový imerzivní režim bez roota

Výukový program, jak povolit imerzivní režim v celém systému (nebo na základě jednotlivých aplikací) bez nutnosti přístupu root. Funguje na všech zařízeních Android 4.4+.

Vzhledem k tomu, že obrazovky telefonů jsou stále větší a větší, někdy chceme skrýt stavový a navigační panel, abychom si mohli prohlížet náš obsah pomocí celé ostré a krásné obrazovky HD.

Počínaje Androidem 4.4 by aplikace mohly implementovat Imerzní režim skutečně přinést koncovému uživateli zážitek z celé obrazovky. Google a OEM bohužel nikdy nezveřejnili možnost, aby uživatelé mohli ručně ovládat, kdy chtějí povolit Immersive Mode. Nazvaná aplikace třetí strany Imerzivní režim GMD na celou obrazovku poskytuje řešení již několik let, ale největším problémem při používání této aplikace je to, že narušuje softwarovou klávesnici.

Uživatelé se už nějakou dobu vznášeli kolem příkazu ADB, který spouští celosystémový imerzivní režim, ale léta se věřilo, že použití tohoto příkazu po odpojení od terminálu ADB bude vyžadovat root přístup. Koncem minulého roku však uživatelé zjistili, že některé příkazy ADB mohou být ve skutečnosti na zařízení spouštěny 

bez přístupu rootza předpokladu, že aplikace má určité oprávnění. To znamená, že můžete povolit celosystémový imerzivní režim na požádání. Můžete například vytvořit dlaždici Nougat pro přepínání pohlcujícího režimu, nebo dokonce nastavit pohlcující režim pro jednotlivé aplikace.


Přepnout imerzivní režim bez kořene

Jak můžete vidět na videu výše, vytvořil jsem dlaždici Nougat, která po stisknutí přepíná pohlcující režim. Toto je na mém nerootovaném Huawei Mate 9, ale mělo by to fungovat téměř každé zařízení se systémem Android 4.4+. K tomu, aby to fungovalo, potřebujete pouze dvě aplikace: Tasker a AutoTools Beta. Budete také muset nainstalovat Automatické upozornění pokud z toho chcete udělat nugátovou dlaždici, ale není to nutné.

Jakmile nainstalujete obě aplikace, budete muset udělit WRITE_SECURE_SETTINGS povolení AutoTools, abyste mohli přepínat Immersive Mode (mezi dalšími úžasnými nastaveními, kterým se budeme věnovat později). Důvodem je, že příkaz pro imerzivní režim je definován pod Nastavení. Globální třídy, ačkoli přesná syntaxe příkazu je skryta v AOSP. Nejprve se podíváme na to, jak udělit potřebná oprávnění AutoTools, a pak na to, jak používat příkaz v Taskeru.


V systému správy oprávnění systému Android aplikace definují oprávnění, která chtějí udělit v souboru Manifest. Uživatelé pak mohou udělit nebo odepřít oprávnění k instalaci (před Marshmallow) nebo na vyžádání (Marshmallow+). Existují však určitá oprávnění, která nelze aplikacím udělit, i když o to v Manifestu požádají, jako např WRITE_SECURE_SETTINGS. Je to proto, že udělení oprávnění jakékoli aplikaci tak silného jako toto by této aplikaci poskytlo spoustu kontroly nad vaším zařízením.

Existuje však jedno řešení, které můžeme použít k udělení oprávnění WRITE_SECURE_SETTINGS jakékoli aplikaci, kterou chceme. Pomocí ADB správce balíčků (pm) můžeme udělit libovolné oprávnění libovolné aplikaci, kterou chceme (za předpokladu, že aplikace toto oprávnění požaduje v souboru Manifest).

První věc, kterou budete muset udělat, je nainstalujte binární soubor ADB do vašeho počítače a následně správný ovladač pro vaše zařízení. Poté povolte ladění USB v možnostech vývojáře (přejděte do Nastavení --> O telefonu a 7krát klepněte na Číslo sestavení, pokud jste tak ještě neučinili) a připojte telefon k počítači. Nakonec odešlete následující příkaz, jakmile otevřete terminál:

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

Nyní budou mít AutoTools možnost změnit jakékoli globální, zabezpečené nebo systémové nastavení na vašem zařízení. S těmito nastaveními a seznamem dostupných nastavení si můžete pohrát různými způsoby každá kategorie zcela závisí na vašem zařízení a sestavení softwaru, ale tato diskuse je pro jinou čas. V každém případě vám ukážeme, jak pomocí AutoTools přepínat imerzivní režim.


Použití Taskeru k přepínání pohlcujícího režimu prostřednictvím dlaždice Nougat

Přepínání pohlcujícího režimu prostřednictvím dlaždice samozřejmě vyžaduje Android Nougat, takže pokud Nougat nemáte, přeskočte tuto část a dozvíte se, jak jej přepínat pro jednotlivé aplikace. Pokud jste to ještě neudělali, stáhněte si Automatické upozornění z Obchodu Google Play a udělte mu přístup k upozorněním. Tento zásuvný modul Tasker je to, co použijeme k vytvoření naší vlastní dlaždice oznámení.

Zde je popis profilu pro ty z vás, kteří znají Tasker. Pokud nejste s Taskerem tak obeznámeni, přečtěte si podrobné pokyny.

Přepínač pohlcujícího režimu nugátových dlaždic

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 ]

Přečtěte si více

Otevřete Tasker a stiskněte + tlačítko v pravém dolním rohu. Vytvořit událost kontextu a vyberte Plugin --> Automatické upozornění. Klepnutím na ikonu tužky otevřete konfigurační stránku pro automatické upozornění. Pod Filtr příkazů vstoupit imerzivní režim. Toto je přesný příkaz, který bude odeslán, když klepneme na dlaždici Nugát.

Nyní vytvořte nový úkol (s libovolným názvem) připojený k tomuto profilu a pro první akci přejděte na Plugin --> Automatické upozornění --> Dlaždice. Pro číslo dlaždice vyberte 1. dlaždici. Pro Příkaz vstoupit imerzivní režim přesně jak je napsáno. The označení je to, co se zobrazí pod dlaždicí, takže to pojmenujte jako „Immersive Mode“. Pro Ikona, uložte si ikonu, kterou jsem připojil na začátku této části, do svého interního úložiště a použijte ji. Konečně pro Stát vybrat Přepnout na aktivní/neaktivní.

Až budete hotovi, spusťte úkol jednou (stiskněte tlačítko přehrávání v levé dolní části obrazovky vytváření úkolu), aby se dlaždice vyplnila. Jakmile nyní rozbalíte seznam dostupných dlaždic oznámení, měli byste vidět nový přepínač Imersive Mode.


Použití Taskeru k přepínání imerzního režimu na základě jednotlivých aplikací

Přepínání imerzivního režimu pro jednotlivé aplikace je poměrně jednoduché, vše, co musíme udělat, je vytvořit kontext aplikace v Tasker, který se spustí při spuštění nebo zavření aplikace, a když se tak stane, je to Imerzní režim přepnuto. Aby Tasker mohl sledovat aplikace, musíte jej povolit Služba usnadnění.

Zde je popis profilu pro ty z vás, kteří znají Tasker. Pokud nejste s Taskerem tak obeznámeni, přečtěte si podrobné pokyny.

Imerzivní režim pro jednotlivé aplikace

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 ]

Přečtěte si více

Nejprve budete chtít otevřít Tasker, protože vytvoříme profil pro spuštění Imerzivního režimu, když jsou otevřené určité aplikace. Otevřete Tasker a stiskněte + tlačítko v pravém dolním rohu pro vytvoření nového profilu. Jako typ kontextu vyberte aplikace a vyberte všechny aplikace, ve kterých chcete, aby byl Imerzní režim aktivní.

Až budete hotovi, stiskněte zpět a Tasker vás požádá o vytvoření úkolu. Úkol není třeba pojmenovávat, takže stačí stisknout zaškrtávací políčko a začít vytvářet úkol. Jakmile vstoupíte na obrazovku vytvoření úkolu, musíte přidat pouze jednu akci. zmáčkni + tlačítko dole a přejděte na Plugin --> AutoTools --> Zabezpečené nastavení. Stiskněte ikonu tužky pro konfiguraci AutoTools. Tady, přejděte na Zobrazit potom klepněte na Imerzní režim a vyberte si "Přepnout."

Je tu poslední věc, kterou musíme udělat, a to deaktivovat imerzivní režim při ukončení aplikace. Vraťte se na hlavní obrazovku Taskeru a dlouhý stisk na úkolu, který jste právě vytvořili, abyste mohli vytvořit soubor Ukončit úlohu. Když vytvoříte výstupní úlohu, jednoduše přidejte stejnou akci, kterou jste přidali v prvním úkolu – tím přepnete Imerzní režim.


Jemné doladění ponorného režimu

Jak jsem již zmínil, přesné příkazy dostupné pro vynucení Imerzivního režimu mohou být získané z AOSP. Imerzní režim můžete nastavit tak, aby skryl pouze oznamovací lištu nebo pouze skryl navigační lištu, a to zadáním některého z následujících příkazů:

settings put global policy_control immersive.status=*

settings put global policy_control immersive.navigation=*

AutoTools vám samozřejmě ve skutečnosti neumožňují přímo odesílat příkazy shellu, jako je tento, ale místo toho příkaz odešlete pomocí jeho rozhraní. Stačí vybrat „Custom Setting“ v AutoTools Secure Settings, nastavit Typ nastavení na „globální“, nastavit „Typ vstupu“ na "String" a pro Název musíte zadat "policy_control immersive.status=*" nebo "policy_control immersive.navigation=*". Tento příkaz můžete použít místo toho, který jsme použili pro dlaždici Nougat nebo ovládání pro jednotlivé aplikace, pokud dáváte přednost pohlcujícímu režimu, který skrývá buď stavový řádek nebo navigační řádek.


Stáhnout a importovat do Taskeru

Jako vždy poskytujeme soubor XML skriptu, který si můžete stáhnout a importovat. Jednoduše si stáhněte soubor z níže uvedeného odkazu a uložte jej kamkoli na své interní úložiště. Otevřete Tasker a deaktivujte režim pro začátečníky v Předvolbách. Poté se vraťte na hlavní obrazovku a dlouze stiskněte nahoře záložku „Profil“. Měli byste vidět vyskakovací okno s jednou z možností „Importovat“. Klepněte na to a vyhledejte místo, kam jste uložili soubor .prf.xml, a vyberte soubor k importu.

Pokud se rozhodnete importovat dlaždici oznámení, ujistěte se, že jste uložili ikonu Immersive Mode jako immersive.png a uložili ji do /sdcard/Tasker. Pokud se rozhodnete importovat profil Per-App, ujistěte se, že vstoupíte a přizpůsobíte si aplikace, ve kterých se bude spouštět, protože můj vzorek je nastaven tak, aby se spouštěl pouze při použití Chrome nebo XDA Labs.

Stáhněte si přepínač Imerzivního režimu oznamovací dlaždice

Stáhněte si profil přepínání pohlcujícího režimu pro jednotlivé aplikace

Doufáme, že vám tento tip bude užitečný. Dejte nám vědět v komentářích níže, zda to funguje pro vás!