Jak změnit ikony navigační lišty nebo přeuspořádat tlačítka bez kořene

V tomto tutoriálu vám ukážeme, jak změnit ikony na navigační liště nebo přeuspořádat tlačítka, pokud používáte Nougat. Není potřeba žádný root.

Ti z vás, kteří běží první Android O Developer Preview možná si pohrával s jeho skrytým přizpůsobení navigační lišty umístěný v SystemUI Tuner. Tento přizpůsobení navigační lišty je ve skutečnosti v AOSP již několik měsíců, ale myslelo se, že jediný způsob, jak k němu získat přístup na Android Nougat, je úprava souboru APK uživatelského rozhraní systému, což by samozřejmě vyžadovalo přístup root. Teprve tento týden jsme zjistili, že skrytý personalizátor navigační lišty Android Nougat to dokáže skutečně přístupné bez nutnosti přístupu root, vlastní paměti ROM nebo modu uživatelského rozhraní systému. Pomocí této funkce můžeme změnit ikony navigační lišty, zaměnit klávesy nebo přidat další tlačítka.

Je to tak - je možné upravit navigační lištu na zcela standardní, nerootované ROM s uzamčeným bootloaderem. Funkčnost, o níž si lidé mysleli, že je omezena na Android O, je ve skutečnosti přístupná každému, kdo používá Android Nougat na Nexus, Pixel, OnePlus a některých telefonech Sony, HTC a Motorola. Pokud na vašem zařízení běží software, který je blízký softwaru Google (omlouváme se uživatelům Samsung a Huawei/Honor), je pravděpodobné, že vaše zařízení má skrytý přizpůsobení navigační lišty AOSP, který můžeme použít. V tomto tutoriálu vám ukážu, jak můžete použít přizpůsobení navigační lišty 

změňte ikony tlačítek na cokoli chcete nebo je přeuspořádejte v libovolném pořadí.

Google Pixel Nav Bar na Nexus 6

Obrácená navigační lišta na Nexus 6

Úprava navigační lišty – nastavení

Požadavky: Budete potřebovat zařízení kompatibilní s přizpůsobením navigační lišty AOSP. Viz část "kompatibilita". v tomto vlákně. (Poznámka: OEM nebo typ vašeho zařízení nemusí být v tomto vláknu uveden. Jediný způsob, jak s jistotou zjistit, zda je vaše zařízení kompatibilní, je vyzkoušet jej, což vám ukážeme níže.

Existují dva způsoby, jak upravit náš navigační panel. Jeden je s aplikací a druhý je prostřednictvím příkazů prostředí ADB (takto aplikace funguje). Pro úplnost vám ukážeme oba, ale povšimněte si, že od této chvíle nemůžete upravovat ikony základního navigačního panelu prostřednictvím aplikace, dokud vývojář neaktualizuje svou aplikaci, aby tuto funkci obsahovala.

První věc, kterou musíme udělat, je ujistit se, že je vůbec možné upravit navigační panel na vašem zařízení. Pokud je vaše zařízení jedním z těch, které jsou uvedeny jako kompatibilní v Vlastní vlákno navigační lišty, pak je pravděpodobné, že to bude. Můžeme to ověřit tím, že si projdeme stručný návod, který je k této aplikaci připojen.

Nainstalujte aplikaci z obchodu Google Play (a také přihlásit se k beta testování takže můžeme později použít jeho experimentální funkci k přeuspořádání navigační lišty). Dále otevřete aplikaci a pokračujte přes úvodní obrazovky. Vlastní navigační panel vás požádá, abyste mu udělili určité oprávnění s názvem WRITE_SECURE_SETTINGS, aby bylo možné pokračovat v používání aplikace. Můžete to udělat dvěma způsoby, jak je uvedeno v žádosti.

  1. Pokud máte rootované zařízení, otevřete Terminálový emulátor v telefonu a udělte mu přístup root zadáním su. Poté zadejte tento příkaz: pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS
  2. Pokud vaše zařízení není rootované, budete muset udělit oprávnění prostřednictvím ADB. Otevřete na svém počítači příkazový řádek/terminál a zadejte následující příkaz: adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

Jakmile aplikaci udělíte toto oprávnění některou ze dvou výše uvedených metod, bude aplikace pokračovat v testu kompatibility. Pokud se vaše navigační lišta nezmění, máte bohužel smůlu. Pokud se váš navigační panel změní na tlačítko se šipkou vpravo, gratulujeme, že je vaše zařízení podporováno! Nyní můžeme přejít k úpravě naší navigační lišty.


Přeuspořádání tlačítek navigační lišty

Metoda aplikace

Nyní, když jste aplikaci nastavili, je velmi, velmi snadné znovu uspořádat tlačítka navigační lišty. Chcete-li to provést, musíte mít verzi beta testování aplikace Custom Navigation Bar, takže se vraťte a ujistěte se, že jste na beta kanálu, než budete pokračovat.

Pokud používáte beta verzi, uvidíte sekci s názvem experimentální vychytávky v hlavní části Nastavení. Klepněte na to a uvidíte možnosti, které vám umožní nahradit stávající klávesy zpět, domů a poslední. Zde můžete snadno přeuspořádat své klíče tak, že se tlačítko zpět změní na tlačítko přehledu (poslední) a tlačítko přehledu (poslední) se změní na tlačítko zpět. Nebo je změňte, jak chcete, zde neexistují žádná skutečná omezení. Po výměně kláves si také můžete pohrát s možnostmi rozvržení v nabídce nastavení navigační lišty.

Metoda ADB

A zde je návod, jak udělat totéž pomocí příkazů ADB, pokud to chcete. Příkaz, který budeme upravovat, je předvolba zabezpečeného nastavení s názvem sysui_nav_bar. Tato předvolba je řetězec, který obsahuje rozložení navigační lišty. Výchozí struktura předvolby je následující

space, back; home; recent, space

Kde mezera představuje prázdné místo, které odděluje klávesy navigační lišty od sebe, a zpět, domů a poslední představují 3 výchozí tlačítka na navigační liště. Pokud chceme například zaměnit zadní a poslední klíč, museli bychom upravit řetězec následovně

space, recent; home; back, space

Poznámka: Pokud se pokoušíte zadat některý z následujících příkazů z prostředí rootovaného prostředí, jako je např Emulátor terminálu na vašem telefonu, pak budete muset před odesláním vynechat „adb shell“ z příkazů jim.

Nyní, abychom skutečně upravili tento řetězec, musíme použít příkaz ADB shell s touto syntaxí

adb shell settings put secure sysui_nav_bar "STRING"

Příkaz, který bychom poslali k prohození posledních a zpětných klíčů, by tedy vypadal takto

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

Jak asi tušíte, je to poměrně flexibilní. Můžeme posouvat klávesy, jak chceme, úpravou hodnoty řetězce předvolby. Můžeme například zarovnat naše překlopené klávesy navigační lišty doleva nebo doprava tím, že změníme umístění dvou mezer:

Zarovnáno doleva:

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

Zarovnáno zprava:

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

Ale můžeme také změnit tlačítka navigační lišty tak, aby byla něčím úplně jiným než standardní klávesy zpět, domů nebo poslední klávesy, například odeslání jednoho z mnoha Klíčové události. Této skutečnosti využijeme v další části, kde vám ukážeme, jak změnit ikony na tlačítkách navigační lišty.


Vlastní ikony navigační lišty

Nyní se následující část nemusí zdát jako velký problém, protože existuje četnéaplikacína Obchod Play, který slibuje změnu navigační lišty bez root. A fungují – mnoho uživatelů však uvádí, že tyto aplikace jsou chybné v určitých aplikacích, jako je Chrome, při přehrávání videa na celé obrazovce nebo v některých hrách. Mnoho z těchto aplikací navíc vyžaduje, abyste povolili službu usnadnění přístupu ke sledování aplikací, abyste věděli, kdy je třeba změnit barvu navigační lišty, což může snížit výkon. A konečně, pokud se na tyto aplikace spoléháte příliš dlouho, můžete být náhle překvapeni, když uvidíte, že přestanou fungovat, když bude spuštěn Android O, protože další verze Androidu je zabíjení schopností těchto aplikací kreslit nad prvky uživatelského rozhraní systému.

Metoda, kterou používáme, je založena na implementaci tuneru navigační lišty společnosti Google, takže nemá žádný z těchto problémů. V současnosti však existuje jeden problém, na který bychom rádi upozornili: pokud se rozhodnete použít tuto metodu a upravit své domovské tlačítko, Dlouhé stisknutí tlačítka Domů již nebude fungovat což znamená, že již nemůžete rychle přistupovat k Asistentovi Google z tlačítka Domů. Pokud jste s tím v pořádku, pak zde je návod, jak změnit ikony na navigační liště.

První věc, kterou budete muset udělat, je stáhnout si ikony, kterými chcete nahradit ikony výchozích kláves navigační lišty. Poskytnu vám odkazy ke stažení, abyste si mohli chytit ikony navigační lišty Google Pixel, ale je na vás, abyste si našli své vlastní ikony, pokud chcete něco jiného. Budete potřebovat ikony ve formátu PNG, a pokud jde o velikost, velikost ikon, které potřebujete, můžete určit vyhledáním metriky hustoty zobrazení zařízení na Material.io a korelovat to s an referenční tabulka velikosti ikony.

Poděkování za extrahování těchto ikon navigační lišty Google Pixel patří seniorovi XDA dariomrk. Stažení tento archiv, pokud máte 1920x1080p displej a toto, pokud máte displej 2560x1440p. Extrahujte obsah obou souborů zip do složky s názvem „NavIcons“ v kořenovém adresáři vašeho úložiště.

Jakmile budete mít ikony na příslušném místě, zadejte následující příkaz prostředí ADB (pozor, je dlouhý):

adb shell settings put secure sysui_nav_bar "space, key(4:file:///storage/emulated/0/NavIcons/back.png);key(3:file:///storage/emulated/0/NavIcons/home.png);key(187:file:///storage/emulated/0/NavIcons/recents.png),space"

Tento příkaz nahradí klávesy zpět, domů a poslední klíčovými událostmi, které mají stejnou funkci. Zejména zadní je nahrazena KEYCODE_BACK, domov je nahrazen KEYCODE_HOMEa poslední je nahrazeno výrazem KEYCODE_APP_SWITCH. Tyto kódy kláves vykonávají přesně stejnou funkci, ale protože používáme KeyEvents, můžeme určit, jakou ikonu pro ně chceme použít. V tomto případě ukazujeme na back.png, home.png a recents.png, které jsme uložili do /NavIcons.

Nahrazením skladových klíčů KeyEvents však ztrácíme schopnost dlouhého stisknutí home, protože v současné době neexistuje způsob, jak rozpoznat události dlouhého stisknutí simulovaných klávesových vstupů.

Uvědomuji si, že právě teď se tato metoda nemusí zdát ideální nebo snadno implementovatelná, ale v době psaní tohoto článku nebyla aplikace Custom Navigation Bar aktualizována, aby podporovala přidávání vlastních ikon. Moje metoda (což je přesně to, jak tato aplikace funguje, a když se aplikace aktualizuje, bude čelit stejnému omezení) je způsob, jak můžete na navigační liště získat jakékoli vlastní ikony, které chcete.


To je pro tento tutoriál vše. V budoucích tutoriálech ukážu potenciální praktické využití změny navigační lišty, zejména kontextovým způsobem pomocí automatizační aplikace, jako je Tasker. Následuj kategorie tutoriálů na XDA abychom byli v obraze se všemi nejnovějšími tipy a triky, které zveřejňujeme.