Az Android O navigációs sávjának testreszabása valójában végig rejtve volt az Android Nougatban. Nos, ezt mindannyian tudtuk, de kiderült, hogy soha nem kellett root!
Kézfeltartás itt: hányan vezetitek valójában az elsőt Android O fejlesztői előnézet? A Developer Preview nem csak néhány Google-eszközön érhető el, de napi illesztőprogramnak nem is alkalmas. Természetesen soha nem az átlagos felhasználóknak szánták, hanem inkább próbapadnak a fejlesztők számára, hogy megbizonyosodjanak arról, hogy alkalmazásaik működni fognak, amikor az Android O hivatalosan megjelenik. Ez azonban nem jelenti azt, hogy ne szórakozhatnánk magunknak, és ne pillanthatnánk meg, mi van belül. Az Android O készülékekre érkező egyik legizgalmasabb funkció a navigációs sáv testreszabása a System UI Tunerben található. De mi lenne, ha azt mondanánk, hogy ez a fantasztikus navigációs sáv testreszabása nem csak az Android O Developer Preview felhasználói számára érhető el? Igaz, ez a funkció tulajdonképpen már működik Android 7.X Nougat rendszeren, és nincs szüksége root hozzáférésre sem.
Facepalm. Amikor én írtam oktatóanyagok a navigációs sáv kontextus szerinti módosításáról Android O-n azt feltételeztem, hogy ezek az általam küldött shell-parancsok csak Android O-n működnek. Kiderült, hogy ez nem igaz – ezek a parancsok valóban jól működnek Android Nougat rendszeren. Most, közel 9 hónapja ismerjük hogy a navigációs sáv testreszabása engedélyezhető az Android Nougatban, azonban a kezdeti felfedezés megkövetelte a felhasználóktól módosítsa a SystemUI APK-t nak nek tegye közzé a navigációs sáv tuner beállítását. Ez nyilvánvalóan nagy akadályt jelentett sok felhasználó számára, mivel nem csak root hozzáférést igényel, hanem a SystemUI APK-t is vissza kell fordítani és javítani kell minden egyes frissítéshez. Azonban még csak nem is szükség a SystemUI módosításához, hogy felfedje ezt a navigációs sáv tuner tevékenységét, a navigációs sávot egyébként manuálisan is módosíthatja shell-parancsokkal!
Figyelmeztetés: Egyes felhasználóktól azt halljuk, hogy a navigációs sáv testreszabása nem működik a Google Pixel legújabb Android 7.1.2 béta verzióján. Próbálja ki ezeket a parancsokat saját felelősségére. A biztonság kedvéért javaslom, hogy próbálja ki ezt a testreszabást a paphonb által fejlesztett alkalmazás segítségével alább közzétett, nem pedig ADB parancsokat. Ha nem működik az alkalmazásával, akkor NE próbálja ki az ADB parancsokat!
Megerősíthetjük, hogy ez a rejtett navigációs sáv testreszabása az Android Nougatban a következő eszközökön működik:
- Google Nexus 6
- Google Nexus 5X
- Google Nexus 6P
- Google Pixel
- Google Pixel XL
- OnePlus 3
- OnePlus 3T
- Sony Xperia telefonok
Úgy tűnik, hogy a navigációs sáv testreszabása minden olyan eszközön vagy ROM-on működik, amely nem távolította el az AOSP-megvalósítást A legtöbb olyan eszközön, amelyen van raktáron vagy közel van az Android 7.X Nougat alapú firmware, működnie kell.
Az Android Nougat navigációs sávjának manuális módosítása nagyon hasonlóan működik az Android O-n. Az adott beállítás módosításához küldhet egy ADB shell parancsot, vagy megadhatja a WRITE_SECURE_SETTINGS engedélyt egy alkalmazásnak, mint pl. SecureTask vagy AutoTools így irányíthatják a Beállítások módosítását. Biztonságos beállítás, amely a navigációs sáv gombjait vezérli. Használatával Tasker, kontextus szerint módosíthatja a navigációs sávot is.
A WRITE_SECURE_SETTINGS megadása akár a SecureTask, akár az AutoTools számára egyszerű, hiszen mindössze annyit kell tennie, hogy be kell írnia a következő ADB shell-parancsok egyikét, amelyhez nem szükséges rootolni.
SecureTask esetén:
adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS
AutoTools esetén:
adbshellpmgrantcom.joaomgcd.autotoolsandroid.permission.WRITE_SECURE_SETTINGS
Ezután a navigációs sáv módosításának szintaxisa a következő:
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)"
Átrendezheti a billentyűk elrendezését, szóközt helyezhet el balra vagy jobbra a gombok eltolásához (gépelés space
egy üres helyet ad a navigációs sávhoz), válasszon egyéni ikonokat, módosítsa a billentyűkódokat stb. ahogy tetszik, követve ezt a szintaxist. Például itt van az a parancs, amelyet az a KEYCODE_MENU gombot és a KEYCODE_FORWARD gombot a navigációs sávon, hogy javítsam a Chrome-böngészési élményemet:
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)"
A parancs által hivatkozott ikonútvonalak egyéni ikonok, amelyekről letöltöttem IconsDB. A megfelelő ikonméretet úgy szereztem meg, hogy megnéztem a készülékem kijelzősűrűségét Material.io majd ezt a sűrűséget korrelálva a megfelelő ikonméret referenciatáblázat segítségével.
Ha vissza akarom állítani a navigációs sávot az alapértelmezett elrendezésre, akkor ezt a parancsot adnám be:
settings put secure sysui_nav_bar "space, back; home; recent, space"
Ha lépést tart az Android O oktatóanyagaimmal, akkor ez a szintaxis ismerősnek fog tűnni. Ha nem, akkor ne aggódj. Van erre egy alkalmazás.
Egyéni navigációs sáv
XDA vezető tag paphonb nevű alkalmazást fejlesztett ki Egyéni navigációs sáv ez elvégzi az összes munkát Ön helyett, és megváltoztatja a navigációs sáv gombjait. Az alkalmazás használata nagyon egyszerű, mivel az Android O navigációs sáv testreszabóján alapul. Az alkalmazás azonban úgy lett kódolva, hogy lehetővé tegye egyéni ikonok használatát (ugyanúgy, mint a bemutatómban), lehetővé teszi olyan profilok létrehozását, amelyek között gyorsan válthat, és még rendelkezik is Tasker-támogatás, így a navigációs sáv kontextus szerint módosítható bármilyen kritérium alapján akar.
Mindössze annyit kell tennie, hogy telepítse az alkalmazást, majd adja meg a WRITE_SECURE_SETTINGS engedélyt a következő parancs kiadásával az ADB-ben:
adbshellpmgrantxyz.paphonb.systemuitunerandroid.permission.WRITE_SECURE_SETTINGS
Ezután az alkalmazás megnyitásakor az alkalmazás meghatározza, hogy az eszköz támogatja-e a navigációs sáv módosítását. Megkísérli bemutatni a „következő” billentyűt a navigációs sáv közepén. Ha megjelenik, módosíthatja a navigációs sávot. Ha nem, az alkalmazás azt fogja mondani, hogy nincs szerencséje.
Az alkalmazás az ingyenes de ha 2-nél több profilt szeretne létrehozni, meg kell vásárolnia egy profi verziót. Ez az alkalmazás minden bizonnyal megkönnyíti a navigációs sáv módosítását, ezért személy szerint úgy gondolom, hogy az ár megéri, de ha rendelkezik a know-how-val, végrehajthatja az alkalmazás által kínált összes funkciót a Taskeren és a SecureTask/AutoTools.
Testreszabási lehetőségek
Ezzel az alkalmazással + Taskerrel sok mindent megtehet. Sok ilyen esetet felvázoltam az oktatóanyagaimban, de itt van egy gyors lista azokról, amelyeket kipróbálhat:
- A médialejátszás vezérlőinek megjelenítése zenelejátszás közben
- Az előre/vissza gomb megjelenítése a Gmailben az e-mailek gyors váltásához
- Az oldal fel/le görgetőgombjainak megjelenítése Chrome használatakor
- Bal/jobb kurzorok megjelenítése, amikor a billentyűzet látható
- Menü/továbbítás gomb megjelenítése Chrome használatakor
- Telefonhívás közben a névjegyek parancsikonja és a hívás befejezése gomb megjelenítése
Ez jutott eszembe, amikor az Android O navigációs sáv tunerével játszottam, de ugyanúgy működniük kell az Android Nougat rejtett navigációs sáv tunerével.
Teljesen megdöbbentett, hogy ilyen sokáig tartott, amíg valaki rájött, hogy ez a navigációs sáv tuner az Android Nougat rendszerben root nélkül működik. Visszagondolva erre, teljesen logikus, hogy root nélkül működik. Végül is a SystemUI mod csak a beállítások töredékét teszi közzé a navigációs sáv tuner tevékenységének elindításához, nem mintha a mod ténylegesen hozzáadná a funkciót a SystemUI-hoz – mindig is ott volt. A shell-parancsok csak lehetővé teszik, hogy módosítsuk a navigációs sávot anélkül, hogy felfednénk ezt a SystemUI-tevékenységet, a paphonb alkalmazása pedig mindezt megkönnyíti.
Hogyan szeretné személyre szabni a navigációs sávot? Tudassa velünk az alábbi megjegyzésekben!