Comment modifier les icônes de votre barre de navigation ou réorganiser les boutons sans racine

Dans ce didacticiel, nous allons vous montrer comment modifier les icônes de votre barre de navigation ou réorganiser les boutons si vous utilisez Nougat. Aucune racine nécessaire.

Ceux d'entre vous qui courent en premier Aperçu du développeur Android O peut avoir joué avec son caché personnalisateur de barre de navigation situé dans le tuner SystemUI. Ce personnalisateur de barre de navigation existe en fait dans AOSP depuis des mois, mais on pensait que le seul moyen d'y accéder sur Android Nougat était via un modification de l'APK de l'interface utilisateur du système, ce qui nécessiterait bien sûr un accès root. Ce n'est que cette semaine que nous avons découvert que le personnalisateur de barre de navigation cachée d'Android Nougat pouvait être réellement accessible sans avoir besoin d'un accès root, d'une ROM personnalisée ou d'un mod de l'interface utilisateur système. Avec cette fonctionnalité, nous pouvons modifier les icônes de la barre de navigation, échanger les touches ou ajouter des boutons supplémentaires.

C'est vrai - il est possible de modifier votre barre de navigation sur une ROM entièrement stockée et non rootée avec un chargeur de démarrage verrouillé. Les fonctionnalités que les gens pensaient limitées à Android O sont en réalité accessibles à toute personne exécutant Android Nougat sur Nexus, Pixel, OnePlus et certains téléphones Sony, HTC et Motorola. Si votre appareil exécute un logiciel proche du logiciel de Google (désolé les utilisateurs de Samsung et Huawei/Honor), il est probable que votre appareil dispose du personnalisateur de barre de navigation AOSP caché que nous pouvons utiliser. Dans ce didacticiel, je vais vous montrer comment utiliser le personnalisateur de la barre de navigation pour changez les icônes des boutons comme vous le souhaitez ou réorganisez-les dans l'ordre de votre choix.

Barre de navigation Google Pixel sur le Nexus 6

Barre de navigation inversée sur Nexus 6

Modification de la barre de navigation - Configuration

Exigences: Vous aurez besoin d'un appareil compatible avec le personnalisateur de barre de navigation AOSP. Voir la rubrique "compatibilité" dans ce fil. (Remarque: l'OEM ou le type de votre appareil peut ne pas être répertorié dans ce fil de discussion. La seule façon de savoir avec certitude si votre appareil est compatible est de l’essayer, ce que nous vous montrerons comment faire ci-dessous.

Il existe deux façons de modifier notre barre de navigation. L’un est avec une application et l’autre via les commandes shell ADB (c’est ainsi que fonctionne l’application). Nous allons vous montrer les deux par souci d'exhaustivité, mais notez que pour le moment, vous ne pouvez pas modifier les icônes de la barre de navigation boursière via l'application jusqu'à ce que le développeur mette à jour son application pour inclure cette fonctionnalité.

La première chose que nous devons faire est de nous assurer qu'il est même possible de modifier la barre de navigation sur votre appareil. Si votre appareil fait partie de ceux répertoriés comme compatibles dans le Fil de discussion de la barre de navigation personnalisée, alors il y a de fortes chances que ce soit le cas. Nous pouvons vérifier en parcourant le bref tutoriel qui accompagne cette application.

Installez l'application depuis le Google Play Store (et aussi inscrivez-vous pour les tests bêta afin que nous puissions utiliser sa fonctionnalité expérimentale pour réorganiser la barre de navigation plus tard). Ensuite, ouvrez l'application et parcourez les écrans d'introduction. La barre de navigation personnalisée vous demandera de lui accorder une certaine autorisation appelée WRITE_SECURE_SETTINGS afin de continuer à utiliser l'application. Vous pouvez procéder de deux manières, comme indiqué dans la candidature.

  1. Si vous avez un appareil rooté, ouvrez Émulateur de terminal sur votre téléphone et accordez-lui un accès root en tapant su. Ensuite, entrez cette commande: pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS
  2. Si votre appareil n'est pas rooté, vous devrez alors accorder l'autorisation via ADB. Ouvrez une invite de commande/un terminal sur votre ordinateur, puis entrez la commande suivante: adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

Une fois que vous avez accordé cette autorisation à l'application via l'une des deux méthodes ci-dessus, l'application procédera à un test de compatibilité. Si votre barre de navigation ne change pas, vous n'avez malheureusement pas de chance. Si votre barre de navigation change pour afficher un bouton fléché vers la droite, alors félicitations, votre appareil est pris en charge! Nous pouvons maintenant passer à la modification de notre barre de navigation.


Réorganisation des boutons de la barre de navigation

Méthode d'application

Maintenant que vous avez configuré l'application, il est très, très simple de réorganiser les boutons de la barre de navigation. Vous devez être sur la version de test bêta de l'application Custom Navigation Bar pour pouvoir le faire, alors revenez en arrière et assurez-vous que vous êtes sur le canal bêta avant de continuer.

Si vous utilisez la version bêta, vous verrez une section intitulée ajustements expérimentaux dans la section principale Paramètres. Appuyez dessus et vous verrez des options qui vous permettent de remplacer les clés précédentes, d'accueil et récentes existantes. Vous pouvez facilement réorganiser vos touches ici en faisant en sorte que le bouton de retour se transforme en bouton d'aperçu (récent) et en faisant en sorte que le bouton d'aperçu (récent) se transforme en bouton de retour. Ou modifiez-les comme vous le souhaitez, il n’y a pas de réelles limitations ici. Après avoir échangé vos clés, vous pouvez également jouer avec les options de disposition dans le menu des paramètres de la barre de navigation.

Méthode BAD

Et voici comment faire de même en utilisant les commandes ADB, si vous préférez. La commande que nous allons modifier est la préférence de paramètre Secure appelée sysui_nav_bar. Cette préférence est une chaîne qui contient la disposition de la barre de navigation. La structure par défaut de la préférence est la suivante

space, back; home; recent, space

Où l'espace représente un espace vide qui sépare les touches de la barre de navigation les unes des autres, et retour, accueil et récent représentent les 3 boutons par défaut de la barre de navigation. Si nous voulons échanger la clé précédente et la clé récente, par exemple, nous devrons modifier la chaîne comme suit

space, recent; home; back, space

Remarque: si vous essayez d'entrer l'une des commandes suivantes à partir d'un environnement shell rooté tel que Émulateur de terminal sur votre téléphone, vous devrez alors omettre "adb shell" des commandes avant d'envoyer eux.

Maintenant, afin de modifier réellement cette chaîne, nous devons utiliser la commande shell ADB avec cette syntaxe

adb shell settings put secure sysui_nav_bar "STRING"

Par conséquent, la commande que nous enverrions pour échanger les clés récentes et précédentes ressemblerait à ceci

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

Comme vous pouvez le deviner, c'est assez flexible. Nous pouvons déplacer les clés comme bon nous semble en modifiant la valeur de chaîne de la préférence. Nous pouvons, par exemple, aligner les touches de la barre de navigation inversée à gauche ou à droite en modifiant l'emplacement des deux espaces :

Justifié à gauche :

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

Justifié à droite :

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

Mais nous pouvons également modifier les boutons de la barre de navigation pour qu'ils soient complètement différents des touches standard de retour, d'accueil ou récentes, comme l'envoi d'un des nombreux Les évènements clés. Nous profiterons de ce fait dans la section suivante, où nous vous montrerons comment modifier les icônes sur les boutons de la barre de navigation.


Icônes de barre de navigation personnalisées

Maintenant, la section suivante peut ne pas sembler très grave en raison du fait qu'il y a nombreuxapplicationssur le Play Store qui promet de changer votre barre de navigation sans root. Et ils fonctionnent - cependant, de nombreux utilisateurs signalent que ces applications présentent des bugs dans certaines applications comme Chrome, lors de la lecture de vidéos en plein écran ou de certains jeux. De plus, bon nombre de ces applications nécessitent que vous activiez un service d'accessibilité pour surveiller les applications afin de savoir quand recolorer la barre de navigation, ce qui peut réduire les performances. Enfin, si vous comptez trop longtemps sur ces applications, vous pourriez être soudainement surpris de les voir cesser de fonctionner lors du déploiement d'Android O, car la prochaine version d'Android est tuer la capacité de ces applications pour dessiner au-dessus des éléments de l'interface utilisateur du système.

La méthode que nous utilisons est basée sur l'implémentation par Google du tuner de la barre de navigation, elle ne présente donc aucun de ces problèmes. Cependant, il y a actuellement un problème sur lequel nous voulons être francs: si vous choisissez de suivre cette méthode pour modifier votre bouton d'accueil, alors le l'action d'un appui long sur le bouton d'accueil ne fonctionnera plus ce qui signifie que vous ne pouvez plus accéder rapidement à Google Assistant à partir du bouton d'accueil. Si cela vous convient, voici comment modifier les icônes de la barre de navigation.

La première chose que vous devrez faire est de télécharger les icônes par lesquelles vous souhaitez remplacer les icônes des touches de votre barre de navigation par défaut. Je vous fournirai des liens de téléchargement pour récupérer les icônes de la barre de navigation de Google Pixel, mais c'est à vous de trouver vos propres icônes si vous voulez autre chose. Vous aurez besoin des icônes au format PNG, et en ce qui concerne la taille, vous pouvez déterminer la taille des icônes dont vous avez besoin en recherchant votre métriques de densité d'affichage de l'appareil sur Material.io et corréler cela avec un tableau de référence de la taille des icônes.

Les crédits pour l'extraction de ces icônes de la barre de navigation Google Pixel reviennent au membre senior XDA dariomrk. Télécharger cette archive si vous avez un 1920x1080p afficher et celui-ci si vous avez un écran 2560x1440p. Extrayez le contenu de l'un ou l'autre fichier zip dans un dossier appelé "NavIcons" dans le répertoire racine de votre stockage.

Une fois que vous avez les icônes à l'endroit approprié, entrez la commande shell ADB suivante (attention, elle est longue) :

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"

Cette commande remplace les touches back, home et recent par des KeyEvents qui remplissent la même fonction. En particulier, back est remplacé par KEYCODE_BACK, la maison est remplacée par KEYCODE_HOME, et recent est remplacé par KEYCODE_APP_SWITCH. Ces codes clés remplissent exactement la même fonction, mais comme nous utilisons KeyEvents, nous pouvons spécifier quelle icône nous voulons utiliser pour eux. Dans ce cas, nous pointons vers les back.png, home.png et recents.png que nous avons enregistrés dans /NavIcons.

Cependant, en remplaçant les touches de stock par KeyEvents, nous perdons la capacité d'accueil d'appuis longs car il n'existe actuellement aucun moyen de reconnaître les événements d'appuis longs des entrées de touches simulées.

Je me rends compte qu'à l'heure actuelle, cette méthode peut ne pas sembler idéale ou facile à mettre en œuvre, mais au moment d'écrire ces lignes, l'application Custom Navigation Bar n'a pas été mise à jour pour prendre en charge l'ajout de vos propres icônes. Pour l'instant, ma méthode (qui correspond exactement à la manière dont cette application fonctionne, et lorsque l'application sera mise à jour, elle sera confrontée à la même limitation) consiste à savoir comment vous pouvez obtenir les icônes personnalisées de votre choix sur votre barre de navigation.


C'est tout pour ce tutoriel. Dans les prochains didacticiels, je montrerai les utilisations pratiques potentielles de la modification de votre barre de navigation, notamment de manière contextuelle à l'aide d'une application d'automatisation telle que Tasker. Suivre la catégorie de tutoriels sur XDA pour vous tenir au courant de tous les derniers trucs et astuces que nous publions.