Personalizarea barei de navigare a fost ascunsă în Stock Nougat tot timpul... și nu a avut niciodată nevoie de Root

Personalizarea barei de navigare a Android O a fost de fapt ascunsă tot timpul în Android Nougat. Ei bine, știam cu toții asta, dar se pare că nu a avut nevoie niciodată de root!

Aruncarea mâinii aici: câți dintre voi alergați primii Previzualizare pentru dezvoltatori Android O? Nu numai că Previzualizarea dezvoltatorului este disponibilă doar pentru o mână de dispozitive Google, dar chiar nu este potrivită ca driver zilnic. Desigur, nu a fost niciodată intenționat să fie folosit de utilizatorul obișnuit, ci mai degrabă ca un banc de testare pentru dezvoltatori pentru a se asigura că aplicațiile lor vor funcționa atunci când Android O va lansa oficial. Cu toate acestea, asta nu înseamnă că nu putem să ne distrăm și să aruncăm o privire la ceea ce este înăuntru. Una dintre cele mai interesante caracteristici care vin pe dispozitivele Android O este personalizarea barei de navigare situat în System UI Tuner. Dar ce se întâmplă dacă ți-am spune că această personalizare minunată a barei de navigare nu este disponibilă numai pentru utilizatorii din Android O Developer Preview? Așa este, această caracteristică de fapt

funcționează deja pe Android 7.X Nougat și nici nu are nevoie de acces root.

Palma peste fata. Când mi-am scris tutoriale despre modificarea contextuală a barei de navigare pe Android O, am presupus că aceste comenzi shell pe care le trimiteam vor funcționa numai pe Android O. Se pare că nu este adevărat - aceste comenzi funcționează foarte bine pe Android Nougat. Acum, știm de aproape 9 luni că personalizarea barei de navigare ar putea fi activată în Android Nougat, cu toate acestea, descoperirea inițială a cerut utilizatorilor să o facă modificați APK-ul SystemUI la expuneți preferința tunerului barei de navigare. Acesta a fost în mod clar un obstacol major de depășit pentru mulți utilizatori, deoarece nu numai că necesită acces root, dar necesită și ca APK-ul SystemUI să fie decompilat și corectat pentru fiecare actualizare. Cu toate acestea, nici măcar nu nevoie pentru a modifica SystemUI pentru a expune această activitate de tuner a barei de navigare, puteți modifica manual bara de navigare prin comenzile shell oricum!

Avertisment: auzim de la unii utilizatori că personalizarea barei de navigare nu funcționează la cea mai recentă versiune beta Android 7.1.2 pe Google Pixel. Încercați aceste comenzi pe propriul risc. Pentru siguranță, vă recomand să încercați această personalizare folosind aplicația dezvoltată de paphonb postate mai jos, mai degrabă decât comenzile ADB. Dacă nu funcționează cu aplicația lui, atunci NU încercați comenzile ADB!

Putem confirma că această personalizare ascunsă a barei de navigare în Android Nougat funcționează pe următoarele dispozitive:

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

Personalizatorul barei de navigare pare să funcționeze pe orice dispozitiv sau ROM care nu a eliminat implementarea AOSP, deci majoritatea dispozitivelor care au firmware stoc, sau aproape de stoc, bazat pe Android 7.X Nougat, ar trebui să funcționeze.


Modificarea manuală a barei de navigare în Android Nougat funcționează foarte asemănător cu modul în care funcționează pe Android O. Puteți fie să trimiteți o comandă shell ADB pentru a modifica o anumită setare, fie să acordați permisiunea WRITE_SECURE_SETTINGS unei aplicații precum SecureTask sau AutoTools astfel încât să poată controla modificarea Setărilor. Preferință sigură care controlează butoanele barei de navigare. Cu utilizarea de Tasker, puteți modifica în mod contextual și bara de navigare.

Acordarea WRITE_SECURE_SETTINGS fie la SecureTask, fie la AutoTools este simplă, deoarece tot ce trebuie să faceți este să introduceți oricare dintre următoarele comenzi shell ADB, care nu necesită să fiți rootat.

Pentru SecureTask:

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

Pentru AutoTools:

adbshellpmgrantcom.joaomgcd.autotoolsandroid.permission.WRITE_SECURE_SETTINGS

Apoi sintaxa pentru modificarea barei de navigare este următoarea:

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)"

Puteți rearanja aspectul tastelor, puteți adăuga spații la stânga sau la dreapta pentru a muta butoanele (tastând space va adăuga un slot gol la bara de navigare) alege pictograme personalizate, schimbă codurile de cheie etc. după cum doriți, urmând această sintaxă. De exemplu, iată comanda pe care aș folosi-o pentru a adăuga un KEYCODE_MENU butonul și a KEYCODE_FORWARD butonul din bara mea de navigare pentru a-mi îmbunătăți experiența de navigare 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)"

Căile pentru pictograme la care face referire comanda sunt pictograme personalizate de pe care le-am descărcat IconsDB. Am obținut dimensiunea adecvată a pictogramei căutând densitatea de afișare a dispozitivului meu Material.io corelând apoi acea densitate cu cea dimensiunea corectă a pictogramei folosind o diagramă de referință.

Dacă vreau să-mi revin bara de navigare înapoi la aspectul implicit, aș introduce această comandă:

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

Dacă ați ținut pasul cu tutorialele mele Android O, atunci această sintaxă vă va părea familiară. Dacă nu, atunci nu-ți face griji. Există o aplicație pentru asta.


Bară de navigare personalizată

Membru senior XDA paphonb a dezvoltat o aplicație numită Bară de navigare personalizată care face toată treaba pentru tine și schimbă butoanele barei de navigare. Aplicația este foarte ușor de utilizat, deoarece se bazează pe personalizarea barei de navigare Android O. Cu toate acestea, aplicația a fost codificată pentru a vă permite să utilizați pictograme personalizate (la fel ca în tutorialul meu), include posibilitatea de a crea Profiluri pe care le puteți comuta rapid și, în plus, le are Suport pentru Tasker, astfel încât să puteți schimba contextual bara de navigare în funcție de criteriile dvs vrei.

Tot ce trebuie să faceți este să instalați aplicația, apoi să îi acordați permisiunea WRITE_SECURE_SETTINGS lansând următoarea comandă în ADB:

adbshellpmgrantxyz.paphonb.systemuitunerandroid.permission.WRITE_SECURE_SETTINGS

Apoi, când deschideți aplicația, aceasta va determina dacă dispozitivul dvs. acceptă sau nu modificarea barei de navigare. Va încerca să prezinte o cheie „următoarea” centrată în bara de navigare. Dacă apare, puteți modifica bara de navigare. Dacă nu, aplicația îți va spune că nu ai noroc.

Aplicația este gratuit dar necesită să achiziționați o versiune pro dacă doriți să creați mai mult de 2 profiluri. Această aplicație cu siguranță ușurează modificarea barei de navigare, așa că personal cred că prețul merită, dar dacă aveți cunoștințele, puteți efectua toate funcțiile pe care această aplicație le oferă prin Tasker și SecureTask/AutoTools.


Posibilitati de personalizare

Există o mulțime de lucruri pe care le puteți face cu această aplicație + Tasker. Am subliniat multe astfel de cazuri în tutorialele mele, dar iată o listă rapidă cu câteva lucruri pe care le puteți încerca:

  • Afișați comenzile de redare media când redați muzică
  • Afișați tasta înainte/înapoi când sunteți în Gmail pentru a parcurge rapid e-mailurile
  • Afișați tastele de parcurgere în sus/în jos când utilizați Chrome
  • Afișați cursoarele stânga/dreapta când se afișează tastatura
  • Afișează un meniu/buton de redirecționare când folosești Chrome
  • Afișați o comandă rapidă pentru contacte și un buton de terminare a apelului în timpul unui apel telefonic

Acestea sunt ceea ce mi-am propus când mă jucam cu tunerul barei de navigare din Android O, dar ar trebui să funcționeze la fel cu tunerul barei de navigare ascunse din Android Nougat.

Sunt absolut uimit că a durat atât de mult pentru ca cineva să-și dea seama că acest tuner de bară de navigare funcționează în Android Nougat fără root. Gândindu-mă la asta, este logic că funcționează fără root. La urma urmei, modul SystemUI expune doar fragmentul de preferințe pentru a lansa activitatea tunerului barei de navigare, nu este ca și cum acel mod adaugă de fapt funcția la SystemUI - a fost întotdeauna acolo. Comenzile shell ne permit doar să schimbăm bara de navigare fără a expune această activitate SystemUI, iar aplicația lui paphonb face totul mai ușor.


Cum ați dori să vă personalizați bara de navigare? Spune-ne în comentariile de mai jos!