La personalización de la barra de navegación estuvo oculta en Stock Nougat todo el tiempo... y nunca necesitó Root

La personalización de la barra de navegación de Android O estuvo oculta todo el tiempo en Android Nougat. Bueno, todos lo sabíamos, ¡pero resulta que nunca necesitó root!

A mano alzada aquí: ¿cuántos de ustedes están realmente ejecutando la primera Vista previa para desarrolladores de Android O? La Vista previa del desarrollador no solo está disponible para un puñado de dispositivos de Google, sino que realmente no es adecuada como controlador diario. Por supuesto, nunca estuvo destinado a ser utilizado por el usuario promedio, sino más bien como un banco de pruebas para que los desarrolladores garanticen que sus aplicaciones funcionarán cuando Android O se lance oficialmente. Sin embargo, eso no significa que no podamos divertirnos un poco y echar un vistazo a lo que hay dentro. Una de las características más interesantes que llegarán a los dispositivos Android O es la personalización de la barra de navegación ubicado en System UI Tuner. Pero, ¿qué pasaría si te dijéramos que esta increíble personalización de la barra de navegación no solo está disponible para los usuarios en Android O Developer Preview? Así es, esta característica en realidad

ya funciona en Android 7.X Nougat y tampoco necesita acceso de root.

palma de la cara. Cuando escribí mi tutoriales sobre cómo modificar contextualmente la barra de navegación en Android O, había asumido que estos comandos de shell que estaba enviando solo funcionarían en Android O. Resulta que eso no es cierto: estos comandos funcionan bien en Android Nougat. Ahora, Lo sabemos desde hace casi 9 meses. Esa personalización de la barra de navegación podría habilitarse en Android Nougat; sin embargo, el descubrimiento inicial requirió que los usuarios modificar el APK de SystemUI a exponer la preferencia del sintonizador de la barra de navegación. Este fue claramente un obstáculo importante que superar para muchos usuarios, ya que no solo requiere acceso de root, sino que también requiere que el APK de SystemUI sea descompilado y parcheado para cada actualización. Sin embargo, ni siquiera necesidad Para modificar SystemUI para exponer esta actividad del sintonizador de la barra de navegación, ¡puedes modificar la barra de navegación manualmente a través de comandos de shell de todos modos!

Advertencia: algunos usuarios nos dicen que personalizar la barra de navegación no funciona en la última versión beta de Android 7.1.2 en Google Pixel. Pruebe estos comandos bajo su propia responsabilidad. Por seguridad, recomiendo probar esta personalización. usando la aplicación desarrollada por paphonb publicado a continuación en lugar de los comandos ADB. Si no funciona con su aplicación, ¡NO pruebe los comandos ADB!

Podemos confirmar que esta personalización de la barra de navegación oculta en Android Nougat funciona en los siguientes dispositivos:

  • Google Nexus 6
  • Nexus 5X
  • Google Nexus 6P
  • Google Píxel
  • Google Píxel XL
  • OnePlus 3
  • OnePlus 3T
  • Teléfonos Sony Xperia

El personalizador de la barra de navegación parece funcionar en cualquier dispositivo o ROM que no haya eliminado la implementación de AOSP, por lo que la mayoría de los dispositivos que tienen firmware original, o casi original, basado en Android 7.X Nougat deberían tenerlo funcionando.


La modificación manual de la barra de navegación en Android Nougat funciona de manera muy similar a cómo funciona en Android O. Puede enviar un comando de shell ADB para modificar la configuración particular o otorgar el permiso WRITE_SECURE_SETTINGS a una aplicación como tarea segura o Autoherramientas para que puedan controlar y modificar la configuración. Preferencia segura que controla los botones de la barra de navegación. Con el uso de Tasker, también puedes modificar contextualmente la barra de navegación.

Otorgar WRITE_SECURE_SETTINGS a SecureTask o AutoTools es simple ya que todo lo que necesita hacer es ingresar cualquiera de los siguientes comandos de shell ADB, que no requieren que esté rooteado.

Para tarea segura:

adbshellpmgrantcom.balda.securetaskandroid.permission.WRITE_SECURE_SETTINGS

Para herramientas automáticas:

adbshellpmgrantcom.joaomgcd.autotoolsandroid.permission.WRITE_SECURE_SETTINGS

Entonces la sintaxis para modificar la barra de navegación es la siguiente:

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

Puede reorganizar el diseño de las teclas, agregar espacios a la izquierda o a la derecha para desplazar los botones (escribiendo space agregará una ranura vacía a la barra de navegación) elija íconos personalizados, cambie los códigos clave, etc. como quieras siguiendo esta sintaxis. Por ejemplo, aquí está el comando que usaría para agregar un KEYCODE_MENU botón y un KEYCODE_FORWARD botón en mi barra de navegación para mejorar mi experiencia de navegación en 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)"

Las rutas de los íconos a las que hace referencia el comando son íconos personalizados que descargué de IconosDB. Adquirí el tamaño de icono adecuado buscando la densidad de pantalla de mi dispositivo en Material.io luego correlacionando esa densidad con la tamaño de icono adecuado utilizando una tabla de referencia.

Si quiero revertir mi barra de navegación al diseño predeterminado, ingresaría este comando:

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

Si ha seguido mis tutoriales de Android O, esta sintaxis le resultará familiar. Si no, entonces no te preocupes. Hay una aplicación para eso.


Barra de navegación personalizada

Miembro senior de XDA paphonb ha desarrollado una aplicación llamada Barra de navegación personalizada eso hace todo el trabajo preliminar por usted y cambia los botones de la barra de navegación. La aplicación es muy fácil de usar ya que se basa en el personalizador de la barra de navegación de Android O. Sin embargo, la aplicación ha sido codificada para permitirle usar íconos personalizados (muy parecido a mi tutorial), incluye la capacidad de crear perfiles entre los que puede cambiar rápidamente y, además, tiene Soporte Tasker para que puedas cambiar contextualmente la barra de navegación según cualquier criterio que desees. desear.

Todo lo que tiene que hacer es instalar la aplicación y luego otorgarle el permiso WRITE_SECURE_SETTINGS emitiendo el siguiente comando en ADB:

adbshellpmgrantxyz.paphonb.systemuitunerandroid.permission.WRITE_SECURE_SETTINGS

Luego, cuando abra la aplicación, ésta determinará si su dispositivo admite o no la modificación de la barra de navegación. Intentará presentar una tecla "siguiente" centrada en su barra de navegación. Si aparece, entonces puedes modificar tu barra de navegación. De lo contrario, la aplicación te dirá que no tienes suerte.

La aplicación es gratis pero requiere que compres una versión pro si deseas crear más de 2 perfiles. Esta aplicación ciertamente hace que sea más fácil modificar tu barra de navegación, por lo que personalmente creo que el precio vale la pena. pero si tiene el conocimiento, puede realizar todas las funciones que ofrece esta aplicación a través de Tasker y SecureTask/AutoTools.


Posibilidades de personalización

Hay muchas cosas que puedes hacer con esta aplicación + Tasker. He descrito muchos de esos casos. en mis tutoriales, pero aquí hay una lista rápida de algunas cosas que puedes probar:

  • Mostrar controles de reproducción multimedia al reproducir música
  • Mostrar la tecla de avance/retroceso cuando esté en Gmail para recorrer rápidamente los correos electrónicos
  • Mostrar las teclas de desplazamiento hacia arriba/abajo de página cuando se usa Chrome
  • Mostrar cursores izquierda/derecha cuando se muestra el teclado
  • Mostrar un botón de menú/adelante al usar Chrome
  • Mostrar un acceso directo a contactos y un botón para finalizar llamada durante una llamada telefónica

Eso es lo que se me ocurrió cuando estaba jugando con el sintonizador de la barra de navegación en Android O, pero deberían funcionar de todos modos con el sintonizador de la barra de navegación oculta en Android Nougat.

Estoy absolutamente asombrado de que alguien haya tardado tanto en darse cuenta de que este sintonizador de barra de navegación funciona en Android Nougat sin root. Pensando en esto, tiene mucho sentido que funcione sin root. Después de todo, el mod SystemUI solo expone el fragmento de preferencias para iniciar la actividad del sintonizador de la barra de navegación, no es que ese mod realmente agregue la función a SystemUI: siempre estuvo ahí. Los comandos del shell simplemente nos permiten cambiar la barra de navegación sin exponer esta actividad de SystemUI, y la aplicación de paphonb simplemente hace que todo esto sea más fácil.


¿Cómo le gustaría personalizar su barra de navegación? ¡Háganos saber en los comentarios a continuación!