Come modificare le icone della barra di navigazione o Riorganizzare i pulsanti senza radice

Quelli di voi che stanno eseguendo la prima anteprima per sviluppatori Android O potrebbero aver giocato con la sua barra di personalizzazione nascosta che si trova nel Sintonizzatore SystemUI. Questo personalizzatore della barra di navigazione è in circolazione in AOSP da mesi, ma si pensava che l'unico modo per accedervi su Android Nougat fosse attraverso una modifica dell'APK dell'interfaccia utente di sistema, che, ovviamente, avrebbe richiesto l'accesso come root. Non è stato solo questa settimana che abbiamo scoperto che il personalizzatore della barra di navigazione nascosta di Android Nougat poteva effettivamente essere accessibile senza bisogno di accesso root, una ROM personalizzata o una mod UI di sistema. Con questa funzione, possiamo cambiare le icone della barra di navigazione, scambiare i tasti o aggiungere pulsanti aggiuntivi.

Esatto: è possibile modificare la barra di navigazione su una ROM completamente esaurita e non root con un bootloader bloccato. La funzionalità che la gente pensava fosse limitata ad Android O è in realtà accessibile a chiunque esegua Android Nougat su Nexus, Pixel, OnePlus e alcuni telefoni Sony, HTC e Motorola. Se sul tuo dispositivo è in esecuzione un software vicino al software di Google (mi dispiace per gli utenti Samsung e Huawei / Honor), è probabile che il tuo dispositivo abbia il personalizzatore della barra di navigazione AOSP nascosto che possiamo usare. In questo tutorial, ti mostrerò come è possibile utilizzare il personalizzatore della barra di navigazione per modificare le icone dei pulsanti come desiderato o riorganizzarle nell'ordine desiderato.

Google Pixel Nav Bar sul Nexus 6

Barra di navigazione invertita su Nexus 6


Modifica della barra di navigazione - Impostazione

Requisiti : è necessario un dispositivo compatibile con il personalizzatore della barra di navigazione AOSP. Vedi la sezione "compatibilità" in questo thread. (Nota: il tuo dispositivo OEM o tipo potrebbe non essere elencato in quel thread. L'unico modo per sapere con certezza se il tuo dispositivo è compatibile è provarlo, 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 è come funziona l'app). Ti mostreremo entrambi per completezza, ma tieni presente che al momento non è possibile modificare le icone della barra di spostamento stock tramite l'app fino a quando lo sviluppatore non aggiorna la sua app per includere questa funzionalità.

La prima cosa che dobbiamo fare è assicurarsi che sia persino possibile modificare la barra di navigazione sul dispositivo. Se il tuo dispositivo è uno di quelli elencati come compatibili nella discussione sulla barra di navigazione personalizzata, è probabile che lo siano. Possiamo verificare eseguendo il breve tutorial che accompagna questa app.

Installa l'app dal Google Play Store (e iscriviti anche al beta test in modo da poter utilizzare la sua funzione sperimentale per riorganizzare la barra di navigazione in seguito). Quindi, 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 nell'applicazione.

  1. Se disponi di un dispositivo rooted, apri Terminal Emulator sul telefono e concedi 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. Aprire un prompt dei comandi / terminale sul computer, quindi immettere il seguente comando: adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

Dopo aver concesso 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, sei sfortunatamente sfortunato. Se la barra di navigazione cambia per visualizzare un pulsante freccia a destra, allora il tuo dispositivo è supportato! Ora possiamo passare alla modifica della nostra barra di navigazione.


Riorganizzazione dei pulsanti della barra di navigazione

Metodo app

Ora che hai configurato l'app, è molto, molto facile riorganizzare i pulsanti della barra di navigazione. Devi essere sulla versione beta test dell'app della barra di navigazione personalizzata per poterlo fare, quindi torna indietro e assicurati di essere sul canale beta prima di procedere.

Se sei nella versione beta, vedrai una sezione chiamata tweaks sperimentali nella sezione Impostazioni principale. Toccalo e vedrai le opzioni che ti consentono di sostituire i tasti indietro, home e recenti esistenti. Puoi riorganizzare facilmente i tuoi tasti qui facendo cambiare il pulsante Indietro al pulsante Panoramica (recente) e facendo cambiare il pulsante Panoramica (recente) al pulsante Indietro. O modificali nel modo che preferisci, qui non ci sono limiti reali. 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 denominata 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 space rappresenta uno spazio vuoto che separa le chiavi della barra di navigazione l'una dall'altra e back, home e recent rappresentano i 3 pulsanti predefiniti nella barra di navigazione. Se vogliamo scambiare la parte posteriore e la chiave recente, ad esempio, dovremmo modificare la stringa come segue

 space, recent;home;back, space 

Nota: se si sta tentando di immettere uno dei seguenti comandi da un ambiente shell rooted come Terminal Emulator sul telefono, è necessario omettere "adb shell" dai comandi prima di inviarli.

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

 adb shell settings put secure sysui_nav_bar "STRING" 

Quindi, il comando che invieremmo per scambiare i tasti recenti e precedenti sarebbe simile al seguente

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

Come puoi immaginare, questo è abbastanza flessibile. Possiamo spostare le chiavi come preferiamo modificando il valore di stringa della preferenza. Ad esempio, possiamo rendere i nostri tasti della barra di navigazione capovolti giustificati a sinistra o giustificati a destra modificando la posizione in cui sono posizionati i due spazi:

Giustificato a sinistra:

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

Allineato 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 modo che siano completamente diversi dai tasti standard back, home o recenti, come l'invio di uno dei tanti KeyEvent. Ne trarremo vantaggio nella prossima sezione, 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 a causa del fatto che ci sono numerose applicazioni sul Play Store che promettono di cambiare la barra di navigazione senza root. E funzionano, tuttavia, molti utenti segnalano che queste app sono buggy in alcune app come Chrome, durante la riproduzione di video a schermo intero o alcuni giochi. Inoltre, molte di queste app richiedono di abilitare un servizio di accessibilità per monitorare le app per sapere quando ricolorare la barra di navigazione, il che può 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 viene lanciato perché la prossima versione di Android sta uccidendo la capacità di queste app di 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 esiste un problema su cui vogliamo essere anticipati: se scegli di seguire questo metodo per modificare il tuo pulsante Home, l' azione del pulsante Home a pressione prolungata non funzionerà più, il che significa che non puoi accedere rapidamente all'Assistente Google da il pulsante home più. Se stai bene, ecco come cambiare le icone sulla barra di navigazione.

La prima cosa che dovrai fare è scaricare le icone con cui vuoi sostituire le icone dei tasti della barra di navigazione predefinite. Ti fornirò i link per il download per prendere le icone della barra di navigazione di Google Pixel, ma spetta a te trovare le tue icone se vuoi qualcos'altro. Avrai bisogno delle icone nel formato PNG e, per quanto riguarda le dimensioni, puoi determinare la dimensione delle icone di cui hai bisogno cercando le metriche di densità di visualizzazione del tuo dispositivo su Material.io e correlandole con una tabella di riferimento delle dimensioni dell'icona.

I crediti per l'estrazione di queste icone della barra di navigazione di Google Pixel vanno al membro senior dariomrk. Scarica questo archivio se hai un display 1920x1080p e questo se hai un display 2560x1440p. Estrarre il contenuto di entrambi i file zip in una cartella denominata "NavIcons" nella directory principale della memoria.

Una volta che hai le icone nella posizione appropriata, inserisci il seguente comando 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" 

Quello che fa questo comando è sostituire le chiavi back, home e recenti con KeyEvents che svolgono la stessa funzione. In particolare, back viene sostituito con KEYCODE_BACK, home viene sostituita con KEYCODE_HOME e recenti viene sostituito con KEYCODE_APP_SWITCH. Questi codici chiave svolgono esattamente la stessa funzione, ma poiché stiamo usando KeyEvents, possiamo specificare quale icona vogliamo usare per loro. In questo caso, stiamo puntando verso back.png, home.png e recents.png che abbiamo salvato in / NavIcons.

Tuttavia, sostituendo i tasti stock con KeyEvents, perdiamo l'abilità home a pressione prolungata perché al momento non è possibile riconoscere eventi a pressione prolungata di input di tasti simulati.

Mi rendo conto che in questo momento, questo metodo potrebbe non sembrare ideale o facile da implementare, ma al momento della stesura di questo app la barra di navigazione personalizzata non è stata aggiornata per supportare l'aggiunta delle proprie icone. Per ora, il mio metodo (che è esattamente come funziona quell'app, e quando l'app viene aggiornata, dovrà affrontare la stessa limitazione) è come puoi ottenere qualsiasi icona personalizzata che desideri sulla tua barra di navigazione.


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