Nav Bar Anpassning var gömd i lager Nougat hela tiden... och det behövde aldrig Root

click fraud protection

Android O: s navigeringsfältsanpassning var faktiskt gömd hela tiden i Android Nougat. Tja, vi visste alla det, men det visar sig att det aldrig behövde root!

Handuppräckning här: hur många av er springer faktiskt den första Android O Developer Preview? Utvecklarförhandsgranskningen är inte bara tillgänglig för en handfull Google-enheter, utan den är verkligen inte lämplig som daglig förare. Naturligtvis var det aldrig tänkt att användas av den genomsnittliga användaren, utan snarare som en testbädd för utvecklare för att säkerställa att deras applikationer fungerar när Android O officiellt släpps. Det betyder dock inte att vi inte kan ha lite kul för oss själva och ta en titt på vad som finns inuti. En av de mest spännande funktionerna som kommer till Android O-enheter är anpassning av navigeringsfältet finns i System UI Tuner. Men vad händer om vi berättade att denna fantastiska anpassning av navigeringsfältet inte bara är tillgänglig för användare på Android O Developer Preview? Det stämmer, den här funktionen faktiskt

fungerar redan på Android 7.X Nougat, och det behöver inte heller root-åtkomst.

Facepalm. När jag skrev min handledningar om att kontextuellt ändra navigeringsfältet på Android O hade jag antagit att dessa skalkommandon som jag skickade bara skulle fungera på Android O. Det visar sig att det inte är sant – dessa kommandon fungerar faktiskt alldeles utmärkt på Android Nougat. Nu, vi har känt i nästan 9 månader att anpassning av navigeringsfältet kunde aktiveras i Android Nougat, men den första upptäckten krävde användarna ändra SystemUI APK till exponera navigeringsfältets tunerinställning. Detta var helt klart ett stort hinder att övervinna för många användare eftersom det inte bara kräver root-åtkomst, utan det kräver också att SystemUI APK ska dekompileras och korrigeras för varje enskild uppdatering. Det gör du dock inte ens behöver för att ändra SystemUI för att exponera den här navigeringsfältet kan du ändra navigeringsfältet manuellt genom skalkommandon ändå!

Varning: vi hör från vissa användare att anpassning av navigeringsfältet inte fungerar på den senaste Android 7.1.2 betaversionen av Google Pixel. Prova dessa kommandon på egen risk. För säkerhets skull rekommenderar jag att du provar denna anpassning med appen utvecklad av paphonb postat nedan istället för ADB-kommandon. Om det inte fungerar med hans app, försök INTE ADB-kommandona!

Vi kan bekräfta att denna dolda navigeringsfältsanpassning i Android Nougat fungerar på följande enheter:

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

Navigeringsfältsanpassningen verkar fungera på alla enheter eller ROM som inte har tagit bort AOSP-implementeringen, så de flesta enheter som har lager, eller nära lager, firmware baserad på Android 7.X Nougat bör ha det att fungera.


Att manuellt ändra navigeringsfältet i Android Nougat fungerar mycket på samma sätt som det fungerar på Android O. Du kan antingen skicka ett ADB-skalkommando för att ändra den specifika inställningen, eller ge behörigheten WRITE_SECURE_SETTINGS till en applikation som t.ex. SecureTask eller AutoTools så att de kan styra modifiera inställningarna. Säker inställning som styr navigeringsfältets knappar. Med användning av Tasker, kan du kontextuellt ändra navigeringsfältet också.

Att bevilja WRITE_SECURE_SETTINGS till antingen SecureTask eller AutoTools är enkelt eftersom allt du behöver göra är att ange något av följande ADB-skalkommando, vilket inte kräver att du är rotad.

För SecureTask:

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

För AutoTools:

adbshellpmgrantcom.joaomgcd.autotoolsandroid.permission.WRITE_SECURE_SETTINGS

Sedan är syntaxen för att ändra navigeringsfältet som följer:

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 ordna om tangentlayouten, lägga till mellanslag till vänster eller höger för att flytta knapparna (skriva space kommer att lägga till en tom plats i navigeringsfältet) välj anpassade ikoner, ändra nyckelkoder, etc. som du vill genom att följa denna syntax. Till exempel, här är kommandot jag skulle använda för att lägga till a KEYCODE_MENU knapp och en KEYCODE_FORWARD knappen till mitt navigeringsfält för att förbättra min webbupplevelse i 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)"

Ikonvägarna som kommandot refererar till är anpassade ikoner som jag laddade ner från IkonerDB. Jag fick rätt ikonstorlek genom att slå upp enhetens skärmtäthet på Material.io sedan korrelerar den densiteten med rätt ikonstorlek med hjälp av ett referensdiagram.

Om jag vill återställa mitt navigeringsfält till standardlayouten skulle jag ange det här kommandot:

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

Om du har hängt med i mina Android O-tutorials kommer den här syntaxen att verka bekant för dig. Om inte, oroa dig inte. Det finns en app för det.


Anpassad navigeringsfält

Seniormedlem i XDA pafonb har utvecklat en applikation som heter Anpassad navigeringsfält som gör allt benarbete åt dig och ändrar navigeringsfältets knappar. Appen är mycket enkel att använda eftersom den är baserad på Android O: s navigeringsfältsanpassning. Appen har dock kodats så att du kan använda anpassade ikoner (ungefär som i min handledning), inkluderar möjligheten att skapa profiler som du snabbt kan växla mellan, och dessutom har Tasker-stöd så att du kan kontextuellt ändra navigeringsfältet baserat på vilka kriterier du än vilja.

Allt du behöver göra är att installera appen och sedan ge den WRITE_SECURE_SETTINGS behörighet genom att utfärda följande kommando i ADB:

adbshellpmgrantxyz.paphonb.systemuitunerandroid.permission.WRITE_SECURE_SETTINGS

När du sedan öppnar appen avgör appen om din enhet stöder modifiering av navigeringsfältet eller inte. Den kommer att försöka presentera en "nästa"-knapp centrerad i navigeringsfältet. Om det dyker upp kan du ändra ditt navigeringsfält. Om inte, kommer appen att berätta för dig att du inte har tur.

Ansökan är fri men kräver att du köper en proffsversion om du vill skapa fler än 2 profiler. Denna applikation gör det verkligen enklare att ändra din navigeringsfält, så jag tycker personligen att priset är värt det, men om du har kunskapen kan du utföra alla funktioner som den här appen erbjuder genom Tasker och SecureTask/AutoTools.


Anpassningsmöjligheter

Det finns många saker du kan göra med den här appen + Tasker. Jag har beskrivit många sådana fall i mina tutorials, men här är en snabb lista över några saker du kan prova:

  • Visa medieuppspelningskontroller när du spelar musik
  • Visa framåt/bakåt-knappen när du är i Gmail för att snabbt bläddra igenom e-postmeddelanden
  • Visa bläddringsknappar för sida upp/ned när du använder Chrome
  • Visa vänster/högermarkörer när tangentbordet visas
  • Visa en meny-/framåtknapp när du använder Chrome
  • Visa en kontaktgenväg och en avsluta samtalsknapp under ett telefonsamtal

Det är vad jag kom på när jag lekte med navbar-tunern i Android O, men de borde fungera lika bra med den dolda navbar-tunern i Android Nougat.

Jag är helt förvånad över att det tog så lång tid för någon att ta reda på att den här navbar-tunern fungerar i Android Nougat utan root. När man tänker tillbaka på detta är det helt logiskt att det fungerar utan rot. När allt kommer omkring exponerar SystemUI-modden bara inställningarnas fragment för att starta navbar-tuner-aktiviteten, det är inte så att modden faktiskt lägger till funktionen till SystemUI - den fanns alltid där. Skalkommandona låter oss bara ändra navigeringsfältet utan att exponera denna SystemUI-aktivitet, och paphonbs app gör det hela enklare.


Hur skulle du vilja anpassa ditt navigeringsfält? Låt oss veta i kommentarerna nedan!