Přizpůsobení navigačního panelu bylo po celou dobu skryto ve skladovém nugátu...a nikdy nepotřebovalo Root

Přizpůsobení navigační lišty Android O bylo ve skutečnosti v Androidu Nougat po celou dobu skryté. Všichni jsme to věděli, ale ukázalo se, že to nikdy nepotřebovalo root!

Zvednutí ruky zde: kolik z vás skutečně běží jako první Android O Developer Preview? Nejen, že je Developer Preview dostupný pouze pro hrstku zařízení Google, ale opravdu není vhodný jako denní ovladač. Samozřejmě, nikdy nebyl zamýšlen pro použití průměrným uživatelem, ale spíše jako testovací lože pro vývojáře, aby zajistili, že jejich aplikace budou fungovat, až bude Android O oficiálně uveden na trh. To však neznamená, že si nemůžeme užít trochu zábavy a podívat se, co je uvnitř. Jednou z nejzajímavějších funkcí přicházejících do zařízení Android O je přizpůsobení navigační lišty umístěný v System UI Tuner. Ale co kdybychom vám řekli, že toto úžasné přizpůsobení navigační lišty není dostupné pouze uživatelům v Android O Developer Preview? Přesně tak, tato funkce je vlastně taková již funguje na Androidu 7.X Nougat a nepotřebuje ani root přístup.

Facepalm. Když jsem napsal svůj výukové programy o kontextových úpravách navigační lišty na Androidu O jsem předpokládal, že tyto příkazy shellu, které posílám, budou fungovat pouze na Androidu O. Ukazuje se, že to není pravda – tyto příkazy ve skutečnosti na Androidu Nougat fungují dobře. Nyní, známe se skoro 9 měsíců že přizpůsobení navigačního panelu by mohlo být povoleno v Androidu Nougat, ale počáteční zjištění to od uživatelů vyžadovalo upravit soubor APK SystemUI na zobrazit předvolbu tuneru navigační lišty. To byla zjevně hlavní překážka, kterou bylo nutné překonat pro mnoho uživatelů, protože to nejen vyžaduje přístup root, ale také vyžaduje, aby byl SystemUI APK dekompilován a opraven pro každou jednotlivou aktualizaci. Ty však ani ne potřeba Chcete-li upravit SystemUI tak, aby odkryl tuto aktivitu tuneru navigační lišty, můžete navigační lištu upravit ručně pomocí příkazů shellu!

Upozornění: Od některých uživatelů se dozvídáme, že přizpůsobení navigačního panelu nefunguje na nejnovější beta verzi Androidu 7.1.2 na Google Pixel. Vyzkoušejte tyto příkazy na vlastní nebezpečí. Pro jistotu doporučuji toto přizpůsobení vyzkoušet pomocí aplikace vyvinuté společností paphonb místo příkazů ADB. Pokud to s jeho aplikací nefunguje, nezkoušejte příkazy ADB!

Můžeme potvrdit, že toto přizpůsobení skrytého navigačního panelu v Android Nougat funguje na následujících zařízeních:

  • Google Nexus 6
  • Google Nexus 5X
  • Google Nexus 6P
  • Google Pixel
  • Google Pixel XL
  • OnePlus 3
  • OnePlus 3T
  • telefony Sony Xperia

Zdá se, že přizpůsobení navigační lišty funguje na jakémkoli zařízení nebo ROM, které neodstranily implementaci AOSP, takže většina zařízení, která mají skladový nebo téměř skladový firmware založený na Androidu 7.X Nougat, by měla fungovat.


Ruční úprava navigační lišty v Androidu Nougat funguje velmi podobně jako na Androidu O. Můžete buď odeslat příkaz prostředí ADB pro úpravu konkrétního nastavení, nebo udělit oprávnění WRITE_SECURE_SETTINGS aplikaci, jako je např. SecureTask nebo AutoTools aby mohli ovládat úpravy nastavení. Zabezpečená předvolba, která ovládá tlačítka navigační lišty. S použitím Tasker, můžete také kontextově upravit navigační panel.

Udělení WRITE_SECURE_SETTINGS buď SecureTask nebo AutoTools je jednoduché, protože vše, co musíte udělat, je zadat některý z následujících příkazů prostředí ADB, což nevyžaduje, abyste byli rootovaní.

Pro SecureTask:

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

Pro AutoTools:

adbshellpmgrantcom.joaomgcd.autotoolsandroid.permission.WRITE_SECURE_SETTINGS

Syntaxe pro úpravu navigační lišty je následující:

settings put secure sysui_nav_bar "key(KEYCODE_CONSTANT: file:///path/to/icon.png),back; home; recent, key(KEYCODE_CONSTANT: file:///path/to/icon.png)"

Můžete přeuspořádat rozložení kláves, přidat mezery doleva nebo doprava a posouvat tlačítka (psaní space přidá na navigační lištu prázdný slot) vyberte si vlastní ikony, změňte kódy kláves atd. podle libosti následováním této syntaxe. Zde je například příkaz, který bych použil k přidání a KEYCODE_MENU tlačítko a a KEYCODE_FORWARD tlačítko na můj navigační panel, aby se zlepšil můj zážitek z prohlížení Chrome:

settings put secure sysui_nav_bar "key(82:file:///storage/emulated/0/NavIcons/menu.png),back; home; recent, key(125:file:///storage/emulated/0/NavIcons/forward.png)"

Cesty ikon, na které příkaz odkazuje, jsou vlastní ikony, které jsem stáhl IkonyDB. Správnou velikost ikony jsem získal vyhledáním hustoty zobrazení na svém zařízení Material.io pak korelovat tuto hustotu s správnou velikost ikony pomocí referenční tabulky.

Pokud chci vrátit svůj navigační panel zpět na výchozí rozložení, zadal bych tento příkaz:

settings put secure sysui_nav_bar "space, back; home; recent, space"

Pokud jste drželi krok s mými výukovými programy pro Android O, bude vám tato syntaxe připadat povědomá. Pokud ne, pak se nebojte. Je na to aplikace.


Vlastní navigační lišta

Senior člen XDA paphonb vyvinula aplikaci s názvem Vlastní navigační lišta to udělá veškerou práci za vás a změní tlačítka navigační lišty. Aplikace se velmi snadno používá, protože je založena na přizpůsobení navigační lišty Android O. Aplikace však byla kódována tak, aby vám umožnila používat vlastní ikony (podobně jako v mém tutoriálu), zahrnuje možnost vytvářet profily, mezi kterými můžete rychle přepínat, a navíc má Podpora Tasker, takže můžete kontextově měnit navigační lištu na základě jakýchkoli kritérií, která máte chtít.

Jediné, co musíte udělat, je nainstalovat aplikaci a poté jí udělit oprávnění WRITE_SECURE_SETTINGS vydáním následujícího příkazu v ADB:

adbshellpmgrantxyz.paphonb.systemuitunerandroid.permission.WRITE_SECURE_SETTINGS

Poté, když aplikaci otevřete, aplikace určí, zda vaše zařízení podporuje úpravu navigační lišty. Pokusí se prezentovat "další" klíč uprostřed navigační lišty. Pokud se zobrazí, můžete upravit svůj navigační panel. Pokud ne, aplikace vám řekne, že máte smůlu.

Aplikace je volný, uvolnit ale vyžaduje, abyste si zakoupili profesionální verzi, pokud chcete vytvořit více než 2 profily. Tato aplikace jistě usnadňuje úpravu vaší navigační lišty, takže si osobně myslím, že cena za to stojí, ale pokud máte know-how, můžete provádět všechny funkce, které tato aplikace nabízí, prostřednictvím aplikace Tasker a SecureTask/AutoTools.


Možnosti přizpůsobení

S touto aplikací + Tasker můžete dělat spoustu věcí. Nastínil jsem mnoho takových případů v mých tutoriálech, ale zde je stručný seznam některých věcí, které můžete vyzkoušet:

  • Při přehrávání hudby zobrazit ovládací prvky přehrávání médií
  • Zobrazte v Gmailu tlačítko vpřed/zpět, abyste mohli rychle procházet e-maily
  • Zobrazovat při používání Chrome klávesy pro posun o stránku nahoru/dolů
  • Zobrazovat levý/pravý kurzor, když je zobrazena klávesnice
  • Při používání Chromu zobrazit tlačítko nabídky/vpřed
  • Během telefonního hovoru zobrazit zástupce kontaktů a tlačítko pro ukončení hovoru

To je to, na co jsem přišel, když jsem si hrál s tunerem navigačního panelu v systému Android O, ale měly by fungovat stejně se skrytým tunerem navigačního panelu v systému Android Nougat.

Jsem naprosto ohromen, že to trvalo tak dlouho, než někdo přišel na to, že tento tuner navigačního panelu funguje v Androidu Nougat bez root. Když se nad tím zamyslím, dává celkem smysl, že to funguje bez rootu. Koneckonců, mod SystemUI odhaluje pouze fragment preferencí, aby spustil aktivitu tuneru navigační lišty, není to tak, že by mod skutečně přidal funkci do SystemUI - vždy tam byl. Příkazy shellu nám umožňují změnit navigační panel, aniž bychom odhalili tuto aktivitu SystemUI, a aplikace paphonb to vše usnadňuje.


Jak byste chtěli přizpůsobit svůj navigační panel? Dejte nám vědět v komentářích níže!