Nav Bar-tilpasning var skjult på lager Nougat hele tiden... og den trengte aldri Root

Android Os navigasjonslinjetilpasning var faktisk skjult hele tiden i Android Nougat. Vel, vi visste det alle, men det viser seg at det aldri trengte root!

Håndsopprekning her: hvor mange av dere løper faktisk den første Android O-utviklerforhåndsvisning? Ikke bare er utviklerforhåndsvisningen bare tilgjengelig for en håndfull Google-enheter, men den er virkelig ikke egnet som daglig driver. Selvfølgelig var det aldri ment å brukes av den gjennomsnittlige brukeren, men snarere som en testseng for utviklere for å sikre at applikasjonene deres vil fungere når Android O offisielt lanseres. Det betyr imidlertid ikke at vi ikke kan ha det gøy for oss selv og ta en titt på hva som er inni. En av de mest spennende funksjonene som kommer til Android O-enheter er tilpasning av navigasjonslinjen plassert i System UI Tuner. Men hva om vi fortalte deg at denne fantastiske tilpasningen av navigasjonslinjen ikke bare er tilgjengelig for brukere på Android O Developer Preview? Det stemmer, denne funksjonen faktisk fungerer allerede på Android 7.X Nougat, og den trenger heller ikke root-tilgang.

Facepalm. Da jeg skrev min veiledninger om kontekstuell endring av navigasjonslinjen på Android O hadde jeg antatt at disse skallkommandoene jeg sendte bare ville fungere på Android O. Det viser seg at det ikke er sant – disse kommandoene fungerer faktisk helt fint på Android Nougat. Nå, vi har kjent i nesten 9 måneder at tilpasning av navigasjonslinjen kunne aktiveres i Android Nougat, men den første oppdagelsen krevde brukere endre SystemUI APK til eksponer navigasjonsbar-tuner-preferansen. Dette var helt klart et stort hinder å overvinne for mange brukere, da det ikke bare krever root-tilgang, men det krever også at SystemUI APK dekompileres og lappes for hver enkelt oppdatering. Det gjør du imidlertid ikke engang trenge for å modifisere SystemUI for å avsløre denne nav-bar-tuner-aktiviteten, kan du endre nav-linjen manuelt gjennom shell-kommandoer uansett!

Advarsel: Vi hører fra noen brukere at tilpasning av navigasjonslinjen ikke fungerer på den nyeste Android 7.1.2 beta-konstruksjonen på Google Pixel. Prøv disse kommandoene på egen risiko. For sikkerhets skyld anbefaler jeg å prøve denne tilpasningen ved å bruke appen utviklet av paphonb postet nedenfor i stedet for ADB-kommandoer. Hvis det ikke fungerer med appen hans, så IKKE prøv ADB-kommandoene!

Vi kan bekrefte at denne skjulte navigasjonslinjen i Android Nougat fungerer på følgende enheter:

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

Navigasjonslinjetilpasningen ser ut til å fungere på enhver enhet eller ROM som ikke har fjernet AOSP-implementeringen, så de fleste enheter som har lager, eller nær lager, firmware basert på Android 7.X Nougat bør ha det til å fungere.


Manuell endring av navigasjonslinjen i Android Nougat fungerer veldig likt hvordan det fungerer på Android O. Du kan enten sende en ADB-skallkommando for å endre den bestemte innstillingen, eller gi tillatelsen WRITE_SECURE_SETTINGS til en applikasjon som f.eks. SecureTask eller Autoverktøy slik at de kan kontrollere endre innstillingene. Sikker preferanse som kontrollerer navigasjonslinjeknappene. Med bruk av Tasker, kan du også endre navigasjonslinjen i kontekst.

Å gi WRITE_SECURE_SETTINGS til enten SecureTask eller AutoTools er enkelt ettersom alt du trenger å gjøre er å skrive inn en av følgende ADB-shell-kommandoer, som ikke krever at du er forankret.

For SecureTask:

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

For AutoTools:

adbshellpmgrantcom.joaomgcd.autotoolsandroid.permission.WRITE_SECURE_SETTINGS

Deretter er syntaksen for å endre navigasjonslinjen som følger:

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

Du kan omorganisere tasteoppsettet, legge til mellomrom til venstre eller høyre for å flytte knappene (skriving space vil legge til et tomt spor i navigasjonslinjen) velge egendefinerte ikoner, endre nøkkelkodene osv. som du vil ved å følge denne syntaksen. For eksempel, her er kommandoen jeg ville brukt for å legge til en KEYCODE_MENU knapp og en KEYCODE_FORWARD knappen til navigasjonslinjen for å forbedre Chrome-nettleseropplevelsen:

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

Ikonbanene som kommandoen refererer til, er tilpassede ikoner som jeg lastet ned fra IkonerDB. Jeg fikk riktig ikonstørrelse ved å slå opp enhetens skjermtetthet på Material.io deretter korrelerer den tettheten med riktig ikonstørrelse ved hjelp av et referansediagram.

Hvis jeg vil tilbakestille navigasjonslinjen til standardoppsettet, vil jeg skrive inn denne kommandoen:

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

Hvis du har fulgt med på Android O-veiledningene mine, vil denne syntaksen virke kjent for deg. Hvis ikke, så ikke bekymre deg. Det finnes en app for det.


Tilpasset navigasjonslinje

XDA seniormedlem pafonb har utviklet en applikasjon som heter Tilpasset navigasjonslinje som gjør alt av legwork for deg og endrer navigasjonslinjeknappene. Appen er veldig enkel å bruke ettersom den er basert på Android Os navigasjonslinjetilpasning. Imidlertid er appen kodet slik at du kan bruke egendefinerte ikoner (omtrent som i veiledningen min), inkluderer muligheten til å lage profiler som du raskt kan bytte mellom, og dessuten har Tasker-støtte, slik at du kan kontekstuelt endre navigasjonslinjen basert på hvilke kriterier du måtte ha ønsker.

Alt du trenger å gjøre er å installere appen og deretter gi den WRITE_SECURE_SETTINGS tillatelse ved å utstede følgende kommando i ADB:

adbshellpmgrantxyz.paphonb.systemuitunerandroid.permission.WRITE_SECURE_SETTINGS

Når du åpner appen, avgjør appen om enheten din støtter endring av navigasjonslinjen eller ikke. Den vil forsøke å presentere en "neste"-tast sentrert i navigasjonslinjen. Hvis den dukker opp, kan du endre navigasjonslinjen. Hvis ikke, vil appen fortelle deg at du ikke er heldig.

Søknaden er gratis men krever at du kjøper en pro-versjon hvis du vil opprette mer enn 2 profiler. Denne applikasjonen gjør det absolutt lettere å endre navigasjonslinjen, så jeg personlig synes prisen er verdt det, men hvis du har kunnskapen, kan du utføre alle funksjonene som denne appen tilbyr gjennom Tasker og SecureTask/AutoTools.


Tilpasningsmuligheter

Det er mange ting du kan gjøre med denne appen + Tasker. Jeg har skissert mange slike tilfeller i veiledningene mine, men her er en rask liste over noen ting du kan prøve:

  • Vis medieavspillingskontroller når du spiller musikk
  • Vis frem/tilbake-tasten når du er i Gmail for raskt å bla gjennom e-poster
  • Vis rulletastene for side opp/ned når du bruker Chrome
  • Vis venstre/høyre markører når tastaturet vises
  • Vis en meny-/fremsendknapp når du bruker Chrome
  • Vis en snarvei for kontakter og en avslutt samtaleknapp mens du er i en telefonsamtale

Det var disse jeg kom på da jeg lekte med nav-bar-tuneren i Android O, men de burde fungere på samme måte med den skjulte nav-bar-tuneren i Android Nougat.

Jeg er helt forbløffet over at det tok så lang tid for noen å finne ut at denne navbar-tuneren fungerer i Android Nougat uten root. Når man tenker tilbake på dette, er det fornuftig at det fungerer uten rot. Tross alt avslører SystemUI-moden bare preferansefragmentet for å starte navbar-tuner-aktiviteten, det er ikke slik at modden faktisk legger til funksjonen til SystemUI - den var alltid der. Skallkommandoene lar oss bare endre navigasjonslinjen uten å avsløre denne SystemUI-aktiviteten, og paphonbs app gjør dette enklere.


Hvordan vil du tilpasse navigasjonslinjen? Gi oss beskjed i kommentarene nedenfor!