Come cambiare le icone della barra di navigazione o riorganizzare i pulsanti senza root

In questo tutorial ti mostreremo come cambiare le icone sulla barra di navigazione o riorganizzare i pulsanti se stai utilizzando Nougat. Non è necessaria alcuna radice.

Quelli di voi che corrono per primi Anteprima per sviluppatori Android O potrebbe aver giocato con il suo nascosto personalizzazione della barra di navigazione situato nel sintonizzatore SystemUI. Questo personalizzatore della barra di navigazione è in realtà presente in AOSP da mesi, ma si pensava che l'unico modo per accedervi su Android Nougat fosse tramite un modifica dell'APK dell'interfaccia utente di sistema, che, ovviamente, richiederebbe l'accesso root. Solo questa settimana abbiamo scoperto che il personalizzatore nascosto della barra di navigazione di Android Nougat poteva farlo è effettivamente possibile accedervi senza bisogno dell'accesso root, di una ROM personalizzata o di un mod dell'interfaccia utente di sistema. Con questa funzionalità possiamo modificare le icone della barra di navigazione, scambiare i tasti o aggiungere pulsanti aggiuntivi.

Esatto: è possibile modificare la barra di navigazione su una ROM completamente originale, senza root e con bootloader bloccato. Le funzionalità che le persone pensavano fossero limitate ad Android O sono in realtà accessibili a chiunque utilizzi Android Nougat su Nexus, Pixel, OnePlus e alcuni telefoni Sony, HTC e Motorola. Se sul tuo dispositivo è in esecuzione un software simile a quello di Google (mi spiace per gli utenti Samsung e Huawei/Honor), è probabile che il tuo dispositivo abbia il personalizzatore nascosto della barra di navigazione AOSP che possiamo utilizzare. In questo tutorial, ti mostrerò come utilizzare il personalizzatore della barra di navigazione cambia le icone dei pulsanti come preferisci o riorganizzale nell'ordine che preferisci.

Barra di navigazione Google Pixel sul Nexus 6

Barra di navigazione invertita sul Nexus 6

Modifica della barra di navigazione - Configurazione

Requisiti: Avrai bisogno di un dispositivo compatibile con il personalizzatore della barra di navigazione AOSP. Consulta la sezione "compatibilità". in questo thread. (Nota: l'OEM o il tipo del tuo dispositivo potrebbero non essere elencati in quella discussione. L'unico modo per sapere con certezza se il tuo dispositivo è compatibile è provarlo, cosa che ti mostreremo come fare di seguito.

Esistono due modi per modificare la nostra barra di navigazione. Uno è con un'app e l'altro tramite i comandi della shell ADB (che è il modo in cui funziona l'app). Ti mostreremo entrambi per completezza, ma tieni presente che al momento non puoi modificare le icone della barra di navigazione di serie tramite l'app finché lo sviluppatore non aggiorna la sua app per includere questa funzionalità.

La prima cosa che dobbiamo fare è assicurarci che sia possibile modificare anche la barra di navigazione del tuo dispositivo. Se il tuo dispositivo è uno di quelli elencati come compatibili nel file Discussione personalizzata sulla barra di navigazione, allora è probabile che lo sarà. Possiamo verificarlo eseguendo il breve tutorial che accompagna questa app.

Installa l'applicazione dal Google Play Store (e anche iscriviti al beta testing quindi possiamo usare la sua funzionalità sperimentale per riorganizzare la barra di navigazione in seguito). Successivamente, apri l'app e procedi attraverso le schermate introduttive. La barra di navigazione personalizzata ti chiederà di concederle una determinata autorizzazione chiamata WRITE_SECURE_SETTINGS per procedere con l'utilizzo dell'app. Esistono due modi per farlo, come indicato nella domanda.

  1. Se hai un dispositivo rootato, aprilo Emulatore di terminale sul tuo telefono e concedigli l'accesso root digitando su. Quindi, inserisci questo comando: pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS
  2. Se il tuo dispositivo non è rootato, dovrai concedere l'autorizzazione tramite ADB. Apri un prompt dei comandi/terminale sul tuo computer, quindi inserisci il seguente comando: adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

Una volta concessa all'app questa autorizzazione tramite uno dei due metodi sopra indicati, l'app procederà con un test di compatibilità. Se la barra di navigazione non cambia, purtroppo sei sfortunato. Se la barra di navigazione cambia per visualizzare un pulsante freccia destra, congratulazioni, il tuo dispositivo è supportato! Ora possiamo passare alla modifica della nostra barra di navigazione.


Riorganizzare i pulsanti della barra di navigazione

Metodo dell'app

Ora che hai configurato l'app, è molto, molto semplice riorganizzare i pulsanti della barra di navigazione. Per poterlo fare devi essere sulla versione beta testing dell'app Custom Navigation Bar, quindi torna indietro e assicurati di essere sul canale beta prima di procedere.

Se utilizzi la versione beta, vedrai una sezione chiamata modifiche sperimentali nella sezione Impostazioni principale. Toccalo e vedrai le opzioni che ti consentono di sostituire i tasti Indietro, Home e Recenti esistenti. Puoi facilmente riorganizzare i tuoi tasti qui facendo cambiare il pulsante Indietro nel pulsante Panoramica (recente) e facendo in modo che il pulsante Panoramica (recente) cambi nel pulsante Indietro. Oppure cambiali nel modo che preferisci, non ci sono limiti reali qui. Dopo aver scambiato i tasti, puoi anche giocare con le opzioni di layout nel menu delle impostazioni della barra di navigazione.

Metodo ADB

Ed ecco come fare lo stesso usando i comandi ADB, se lo preferisci. Il comando che modificheremo è la preferenza di impostazione sicura chiamata sysui_nav_bar. Questa preferenza è una stringa che contiene il layout della barra di navigazione. La struttura predefinita della preferenza è la seguente

space, back; home; recent, space

Dove spazio rappresenta uno spazio vuoto che separa i tasti della barra di navigazione l'uno dall'altro e Indietro, Home e Recenti rappresentano i 3 pulsanti predefiniti nella barra di navigazione. Se vogliamo scambiare la chiave precedente e quella recente, ad esempio, dovremmo modificare la stringa come segue

space, recent; home; back, space

Nota: se stai tentando di inserire uno dei seguenti comandi da un ambiente shell rootato come Terminal Emulator sul tuo telefono, quindi dovrai omettere "adb shell" dai comandi prima dell'invio loro.

Ora, per modificare effettivamente questa stringa, dobbiamo utilizzare il comando della shell ADB con questa sintassi

adb shell settings put secure sysui_nav_bar "STRING"

Pertanto, il comando che invieremo per scambiare i tasti Recente e Indietro sarebbe simile a questo

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

Come puoi immaginare, questo è abbastanza flessibile. Possiamo spostare le chiavi come vogliamo modificando il valore della stringa della preferenza. Possiamo, ad esempio, rendere i tasti della barra di navigazione invertiti giustificati a sinistra o a destra modificando la posizione dei due spazi:

Giustificato a sinistra:

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

Giustificato a destra:

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

Ma possiamo anche cambiare i pulsanti della barra di navigazione in qualcosa di completamente diverso dai tasti standard Indietro, Home o Recenti, ad esempio inviando uno dei tanti tasti Eventi chiave. Trarremo vantaggio da questo fatto nella sezione successiva, dove ti mostreremo come cambiare le icone sui pulsanti della barra di navigazione.


Icone personalizzate della barra di navigazione

Ora, la sezione seguente potrebbe non sembrare un grosso problema perché ce ne sono numeroseapplicazioniSU il Play Store che promette di cambiare la barra di navigazione senza root. E funzionano, tuttavia molti utenti segnalano che queste app presentano bug in alcune app come Chrome, durante la riproduzione di video a schermo intero o in alcuni giochi. Inoltre, molte di queste app richiedono l'abilitazione di un servizio di accessibilità per monitorare le app per sapere quando ricolorare la barra di navigazione, che potrebbe ridurre le prestazioni. Infine, se fai affidamento su queste app per troppo tempo, potresti essere improvvisamente sorpreso di vederle smettere di funzionare quando Android O verrà lanciato perché la prossima versione di Android è uccidendo la capacità di queste app per attingere agli elementi dell'interfaccia utente del sistema.

Il metodo che stiamo utilizzando si basa sull'implementazione di Google del sintonizzatore della barra di navigazione, quindi non presenta nessuno di questi problemi. Tuttavia, al momento c'è un problema su cui vogliamo essere chiari: se scegli di seguire questo metodo per modificare il pulsante Home, l'azione prolungata del pulsante Home non funzionerà più il che significa che non puoi più accedere rapidamente all'Assistente Google dal pulsante Home. Se sei d'accordo, ecco come cambiare le icone sulla barra di navigazione.

La prima cosa che dovrai fare è scaricare le icone con cui desideri sostituire le icone dei tasti predefiniti della barra di navigazione. Ti fornirò i collegamenti per il download per prendere le icone della barra di navigazione di Google Pixel, ma spetta a te trovare le tue icone se desideri qualcos'altro. Avrai bisogno delle icone nel formato PNG e, per quanto riguarda la dimensione, puoi determinare la dimensione delle icone che ti servono cercando nel tuo i parametri di densità di visualizzazione del dispositivo su Material.io e correlandolo con an tabella di riferimento delle dimensioni delle icone.

I crediti per l'estrazione di queste icone della barra di navigazione di Google Pixel vanno al membro senior XDA dariomrk. Scaricamento questo archivio se hai un file 1920x1080p visualizzazione e questo se hai uno schermo 2560x1440p. Estrai il contenuto di uno dei file zip in una cartella denominata "NavIcons" nella directory principale del tuo dispositivo di archiviazione.

Una volta che hai le icone nella posizione appropriata, inserisci il seguente comando della shell ADB (attenzione, è lungo):

adb shell settings put secure sysui_nav_bar "space, key(4:file:///storage/emulated/0/NavIcons/back.png);key(3:file:///storage/emulated/0/NavIcons/home.png);key(187:file:///storage/emulated/0/NavIcons/recents.png),space"

Ciò che fa questo comando è sostituire i tasti Indietro, Home e Recenti con KeyEvents che svolgono la stessa funzione. In particolare, il retro viene sostituito con KEYCODE_BACK, la casa viene sostituita con CODICECHIAVE_HOMEe recente viene sostituito con KEYCODE_APP_SWITCH. Questi codici chiave svolgono esattamente la stessa funzione, ma poiché stiamo utilizzando KeyEvents, possiamo specificare quale icona vogliamo utilizzare per loro. In questo caso, stiamo puntando verso back.png, home.png e latest.png che abbiamo salvato in /NavIcons.

Tuttavia, sostituendo i tasti standard con KeyEvents, perdiamo la capacità di premere a lungo Home perché attualmente non c'è modo di riconoscere gli eventi di pressione prolungata degli input di tasti simulati.

Mi rendo conto che in questo momento questo metodo potrebbe non sembrare ideale o facile da implementare, ma al momento in cui scrivo l'app della barra di navigazione personalizzata non è stata aggiornata per supportare l'aggiunta delle tue icone. Per ora, il mio metodo (che è esattamente il modo in cui funziona l'app e, quando l'app verrà aggiornata, dovrà affrontare la stessa limitazione) è come ottenere le icone personalizzate che desideri sulla barra di navigazione.


Per questo tutorial è tutto. Nei tutorial futuri mostrerò i potenziali usi pratici della modifica della barra di navigazione, soprattutto in modo contestuale utilizzando un'app di automazione come Tasker. Segui il categoria tutorial su XDA per rimanere aggiornato con tutti gli ultimi suggerimenti e trucchi che pubblichiamo.