Nav Bar-tilpasning var skjult på lager Nougat hele tiden... og den havde aldrig brug for root

Android O's navigationslinjetilpasning var faktisk skjult hele tiden i Android Nougat. Nå, vi vidste det alle sammen, men det viser sig, at det aldrig havde brug for root!

Håndsoprækning her: hvor mange af jer løber faktisk den første Forhåndsvisning af Android O Developer? Udviklerforhåndsvisningen er ikke kun tilgængelig for en håndfuld Google-enheder, men den er virkelig ikke egnet som daglig driver. Det var selvfølgelig aldrig beregnet til at blive brugt af den gennemsnitlige bruger, men snarere som et test-bed for udviklere for at sikre, at deres applikationer vil fungere, når Android O officielt frigives. Det betyder dog ikke, at vi ikke kan have det sjovt for os selv og tage et kig på, hvad der er indeni. En af de mest spændende funktioner, der kommer til Android O-enheder, er tilpasning af nav bar placeret i System UI Tuner. Men hvad nu hvis vi fortalte dig, at denne fantastiske tilpasning af navbaren ikke kun er tilgængelig for brugere på Android O Developer Preview? Det er rigtigt, denne funktion faktisk

virker allerede på Android 7.X Nougat, og det behøver heller ikke root-adgang.

Facepalm. Da jeg skrev min tutorials om kontekstuel ændring af navigationslinjen på Android O havde jeg antaget, at disse shell-kommandoer, som jeg sendte, kun ville virke på Android O. Det viser sig, at det ikke er sandt – disse kommandoer fungerer faktisk fint på Android Nougat. Nu, vi har kendt det i næsten 9 måneder at tilpasning af navigationslinjen kunne aktiveres i Android Nougat, men den første opdagelse krævede, at brugerne gjorde det ændre SystemUI APK til eksponer navbar tuner præference. Dette var helt klart en stor hindring at overvinde for mange brugere, da det ikke kun kræver root-adgang, men det kræver også, at SystemUI APK'en dekompileres og patches for hver enkelt opdatering. Det gør du dog ikke engang brug for for at ændre SystemUI for at afsløre denne nav-bar-tuner-aktivitet, kan du ændre nav-bjælken manuelt gennem shell-kommandoer alligevel!

Advarsel: Vi hører fra nogle brugere, at tilpasning af nav-bjælken ikke virker på den seneste Android 7.1.2 beta-build på Google Pixel. Prøv disse kommandoer på eget ansvar. For en sikkerheds skyld anbefaler jeg at prøve denne tilpasning ved hjælp af appen udviklet af paphonb postet nedenfor i stedet for ADB-kommandoer. Hvis det ikke virker med hans app, så prøv IKKE ADB-kommandoerne!

Vi kan bekræfte, at denne skjulte navigationslinjetilpasning i Android Nougat fungerer på følgende enheder:

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

Navigationslinjetilpasningen ser ud til at virke på enhver enhed eller ROM, der ikke har fjernet AOSP-implementeringen, så de fleste enheder, der har lager, eller tæt på lager, firmware baseret på Android 7.X Nougat burde have det til at fungere.


Manuel ændring af navigationslinjen i Android Nougat fungerer meget på samme måde som den fungerer på Android O. Du kan enten sende en ADB-skalkommando for at ændre den bestemte indstilling eller give tilladelsen WRITE_SECURE_SETTINGS til en applikation som f.eks. SecureTask eller Autoværktøjer så de kan kontrollere ændringen af ​​indstillingerne. Sikker præference, der styrer knapperne på navigationslinjen. Med brug af Tasker, kan du også kontekstuelt ændre navigationslinjen.

At give WRITE_SECURE_SETTINGS til enten SecureTask eller AutoTools er simpelt, da alt hvad du skal gøre er at indtaste en af ​​følgende ADB-skalkommandoer, som ikke kræver, at du er rootet.

For SecureTask:

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

For AutoTools:

adbshellpmgrantcom.joaomgcd.autotoolsandroid.permission.WRITE_SECURE_SETTINGS

Derefter er syntaksen for at ændre navigationslinjen 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 omarrangere tastelayoutet, tilføje mellemrum til venstre eller højre for at flytte knapperne (indtastning space vil tilføje en tom plads til navigeringslinjen) vælge brugerdefinerede ikoner, ændre nøglekoder osv. som du vil ved at følge denne syntaks. For eksempel, her er kommandoen, jeg ville bruge til at tilføje en KEYCODE_MENU knap og en KEYCODE_FORWARD knappen til min navigationslinje for at forbedre min Chrome-browseroplevelse:

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

Ikonstierne, som kommandoen refererer til, er brugerdefinerede ikoner, som jeg downloadede fra IkonerDB. Jeg fik den rigtige ikonstørrelse ved at slå op på min enheds skærmtæthed Materiale.io derefter korrelerer denne tæthed med korrekt ikonstørrelse ved hjælp af et referencediagram.

Hvis jeg vil vende min nav-bjælke tilbage til standardlayoutet, vil jeg indtaste denne kommando:

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

Hvis du har fulgt med i mine Android O-tutorials, vil denne syntaks virke bekendt for dig. Hvis ikke, så fortvivl ikke. Det er der en app til.


Brugerdefineret navigationslinje

XDA seniormedlem pafonb har udviklet en applikation kaldet Brugerdefineret navigationslinje der udfører alt benarbejdet for dig og ændrer knapperne på navigationslinjen. Appen er meget nem at bruge, da den er baseret på Android O's navigationslinjetilpasning. Appen er dog blevet kodet, så du kan bruge brugerdefinerede ikoner (ligesom i min tutorial), inkluderer muligheden for at oprette profiler, som du hurtigt kan skifte mellem, og desuden har Tasker-understøttelse, så du kontekstuelt kan ændre navigationslinjen baseret på hvilke kriterier du end har vil have.

Alt du skal gøre er at installere appen og derefter give den WRITE_SECURE_SETTINGS tilladelse ved at udstede følgende kommando i ADB:

adbshellpmgrantxyz.paphonb.systemuitunerandroid.permission.WRITE_SECURE_SETTINGS

Når du derefter åbner appen, afgør appen, om din enhed understøtter ændring af navigationslinjen eller ej. Den vil forsøge at præsentere en "næste"-tast centreret i din navigeringslinje. Hvis det dukker op, kan du ændre din navigeringslinje. Hvis ikke, vil appen fortælle dig, at du ikke er heldig.

Ansøgningen er gratis men kræver, at du køber en pro-version, hvis du vil oprette mere end 2 profiler. Denne applikation gør det helt sikkert lettere at ændre din navigationslinje, så jeg synes personligt, at prisen er det værd, men hvis du har know-how, kan du udføre alle de funktioner, som denne app tilbyder gennem Tasker og SecureTask/AutoTools.


Tilpasningsmuligheder

Der er mange ting, du kan gøre med denne app + Tasker. Jeg har beskrevet mange sådanne tilfælde i mine tutorials, men her er en hurtig liste over nogle ting, du kan prøve:

  • Vis medieafspilningskontroller, når du afspiller musik
  • Vis frem/tilbage-tasten, når du er i Gmail, for hurtigt at bladre gennem e-mails
  • Vis side op/ned rulletaster, når du bruger Chrome
  • Vis venstre/højre markører, når tastaturet vises
  • Vis en menu/frem-knap, når du bruger Chrome
  • Vis en kontaktgenvej og en afslut opkaldsknap under et telefonopkald

Det var dem, jeg fandt på, da jeg legede med nav-bar-tuneren i Android O, men de burde fungere på samme måde med den skjulte nav-bar-tuner i Android Nougat.

Jeg er helt forbløffet over, at det tog så lang tid for nogen at finde ud af, at denne navbar-tuner fungerer i Android Nougat uden root. Når man tænker tilbage på dette, giver det fuldstændig mening, at det virker uden rod. Når alt kommer til alt, afslører SystemUI-mod'en kun præferencefragmentet for at starte navbar-tuner-aktiviteten, det er ikke sådan, at mod'en rent faktisk tilføjer funktionen til SystemUI - den har altid været der. Shell-kommandoerne giver os bare mulighed for at ændre nav-bjælken uden at afsløre denne SystemUI-aktivitet, og paphonbs app gør det hele nemmere.


Hvordan vil du tilpasse din navigationslinje? Fortæl os det i kommentarerne nedenfor!