Cómo cambiar los íconos de la barra de navegación o reorganizar los botones sin Root

En este tutorial, le mostraremos cómo cambiar los íconos en su barra de navegación o reorganizar los botones si está ejecutando Nougat. No se necesita raíz.

Aquellos de ustedes que están ejecutando el primero. Vista previa para desarrolladores de Android O puede haber jugado con su oculto personalizador de la barra de navegación ubicado en SystemUI Tuner. Este personalizador de la barra de navegación existe en AOSP desde hace meses, pero se pensaba que la única forma de acceder a él en Android Nougat era a través de un modificación del APK de la interfaz de usuario del sistema, que, por supuesto, requeriría acceso de root. No fue hasta esta semana que descubrimos que el personalizador de la barra de navegación oculta de Android Nougat podía en realidad se puede acceder sin necesidad de acceso de root, una ROM personalizada o un mod de interfaz de usuario del sistema. Con esta función, podemos cambiar los íconos de la barra de navegación, intercambiar las teclas o agregar botones adicionales.

Así es: es posible modificar la barra de navegación en una ROM completamente original y sin raíz con un gestor de arranque bloqueado. La funcionalidad que la gente pensaba que estaba limitada a Android O en realidad es accesible para cualquiera que ejecute Android Nougat en Nexus, Pixel, OnePlus y algunos teléfonos Sony, HTC y Motorola. Si su dispositivo ejecuta un software similar al software de Google (lo siento, usuarios de Samsung y Huawei/Honor), entonces es probable que su dispositivo tenga el personalizador de barra de navegación AOSP oculto que podemos usar. En este tutorial, te mostraré cómo puedes usar el personalizador de la barra de navegación para cambie los íconos de los botones a lo que desee o reorganícelos en el orden que desee.

Barra de navegación de Google Pixel en el Nexus 6

Barra de navegación invertida en Nexus 6

Modificar la barra de navegación - Configuración

Requisitos: Necesitará un dispositivo compatible con el personalizador de la barra de navegación de AOSP. Ver la sección "compatibilidad" en este hilo. (Nota: es posible que el OEM o el tipo de su dispositivo no aparezca en ese hilo. La única forma de saber con certeza si su dispositivo es compatible es probarlo, lo cual le mostraremos cómo hacerlo a continuación.

Hay dos formas de modificar nuestra barra de navegación. Uno es con una aplicación y el otro es a través de comandos de shell ADB (que es como funciona la aplicación). Le mostraremos ambos para que estén completos, pero tenga en cuenta que a partir de ahora, no puede modificar los íconos de la barra de navegación estándar a través de la aplicación hasta que el desarrollador actualice su aplicación para incluir esta función.

Lo primero que debemos hacer es asegurarnos de que incluso sea posible modificar la barra de navegación de su dispositivo. Si su dispositivo es uno de los que figuran como compatibles en la Hilo de barra de navegación personalizada, entonces es probable que así sea. Podemos verificarlo siguiendo el breve tutorial que acompaña a esta aplicación.

Instala la aplicación desde la tienda Google Play (y también regístrate para la prueba beta para que podamos usar su función experimental para reorganizar la barra de navegación más adelante). A continuación, abra la aplicación y avance por las pantallas introductorias. La barra de navegación personalizada le pedirá que le otorgue un determinado permiso llamado WRITE_SECURE_SETTINGS para poder continuar con el uso de la aplicación. Hay dos formas de hacerlo, como se indica en la solicitud.

  1. Si tienes un dispositivo rooteado, ábrelo Emulador de terminales en su teléfono y concédale acceso de root escribiendo su. Luego, ingrese este comando: pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS
  2. Si su dispositivo no está rooteado, deberá otorgar el permiso a través de ADB. Abra un símbolo del sistema/terminal en su máquina y luego ingrese el siguiente comando: adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

Una vez que haya otorgado este permiso a la aplicación mediante cualquiera de los dos métodos anteriores, la aplicación procederá con una prueba de compatibilidad. Si su barra de navegación no cambia, lamentablemente no tendrá suerte. Si su barra de navegación cambia para mostrar un botón de flecha hacia la derecha, ¡felicidades, su dispositivo es compatible! Ahora podemos pasar a modificar nuestra barra de navegación.


Reorganizar los botones de la barra de navegación

Método de aplicación

Ahora que ha configurado la aplicación, es muy, muy fácil reorganizar los botones de la barra de navegación. Debes estar en la versión de prueba beta de la aplicación Barra de navegación personalizada para poder hacer esto, así que regresa y asegúrate de estar en el canal beta antes de continuar.

Si estás en la versión beta, verás una sección llamada ajustes experimentales en la sección principal de Configuración. Toque eso y verá opciones que le permitirán reemplazar las claves anteriores, de inicio y recientes existentes. Puede reorganizar fácilmente sus teclas aquí haciendo que el botón Atrás cambie al botón de descripción general (reciente) y que el botón de descripción general (reciente) cambie al botón Atrás. O cámbielos de la forma que desee, aquí no hay limitaciones reales. Después de intercambiar las claves, también puedes jugar con las opciones de diseño en el menú de configuración de la barra de navegación.

Método BAD

Y aquí le mostramos cómo hacer lo mismo usando los comandos ADB, si así lo prefiere. El comando que modificaremos es la preferencia de configuración segura llamada sysui_nav_bar. Esta preferencia es una cadena que contiene el diseño de la barra de navegación. La estructura predeterminada de la preferencia es la siguiente

space, back; home; recent, space

Donde el espacio representa un espacio vacío que separa las teclas de la barra de navegación entre sí, y atrás, inicio y reciente representan los 3 botones predeterminados en la barra de navegación. Si queremos intercambiar la clave anterior y reciente, por ejemplo, necesitaríamos modificar la cadena de la siguiente manera

space, recent; home; back, space

Nota: si está intentando ingresar cualquiera de los siguientes comandos desde un entorno de shell rooteado, como Terminal Emulator en su teléfono, entonces deberá omitir "adb shell" de los comandos antes de enviar a ellos.

Ahora, para modificar realmente esta cadena, necesitamos usar el comando de shell ADB con esta sintaxis

adb shell settings put secure sysui_nav_bar "STRING"

Por lo tanto, el comando que enviaríamos para intercambiar las claves reciente y anterior se vería así

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

Como puedes imaginar, esto es bastante flexible. Podemos mover las claves como queramos modificando el valor de cadena de la preferencia. Podemos, por ejemplo, hacer que las teclas de la barra de navegación invertidas estén justificadas a la izquierda o a la derecha cambiando la ubicación de los dos espacios:

Justificado a la izquierda:

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

Justificado a la derecha:

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

Pero también podemos cambiar los botones de la barra de navegación para que sean algo completamente diferente a las teclas estándar Atrás, Inicio o Recientes, como enviar una de las muchas Eventos clave. Aprovecharemos este hecho en la siguiente sección, donde le mostraremos cómo cambiar los íconos en los botones de la barra de navegación.


Iconos personalizados de la barra de navegación

Ahora bien, la siguiente sección puede no parecer gran cosa debido al hecho de que hay numerosoaplicacionesen Play Store que prometen cambiar tu barra de navegación sin root. Y funcionan; sin embargo, muchos usuarios informan que estas aplicaciones tienen errores en ciertas aplicaciones como Chrome, al reproducir videos en pantalla completa o en algunos juegos. Además, muchas de estas aplicaciones requieren que habilites un Servicio de Accesibilidad para monitorear las aplicaciones y saber cuándo cambiar el color de la barra de navegación, lo que puede reducir el rendimiento. Finalmente, si confía en estas aplicaciones durante demasiado tiempo, es posible que de repente se sorprenda al ver que dejan de funcionar cuando se lanza Android O porque la próxima versión de Android es matando la capacidad de estas aplicaciones para dibujar encima de los elementos de la interfaz de usuario del sistema.

El método que estamos utilizando se basa en la implementación del sintonizador de barra de navegación de Google, por lo que no tiene ninguno de estos problemas. Sin embargo, actualmente hay un problema sobre el que queremos ser sinceros: si elige seguir este método para modificar su botón de inicio, entonces el La acción de mantener presionado el botón de inicio ya no funcionará. lo que significa que ya no puedes acceder rápidamente al Asistente de Google desde el botón de inicio. Si está de acuerdo con eso, aquí le mostramos cómo cambiar los íconos en la barra de navegación.

Lo primero que deberá hacer es descargar los íconos con los que desea reemplazar los íconos predeterminados de las teclas de la barra de navegación. Le proporcionaré enlaces de descarga para que pueda obtener los íconos de la barra de navegación de Google Pixel, pero depende de usted encontrar sus propios íconos si desea algo más. Necesitará los íconos en formato PNG y, en cuanto al tamaño, puede determinar el tamaño de los íconos que necesita buscando su métricas de densidad de visualización del dispositivo en Material.io y correlacionando eso con un tabla de referencia del tamaño del icono.

Los créditos por extraer estos íconos de la barra de navegación de Google Pixel son para el miembro senior de XDA dariomrk. Descargar este archivo si tienes una resolución de 1920x1080p visualización y este si tienes una pantalla de 2560x1440p. Extraiga el contenido de cualquiera de los archivos zip en una carpeta llamada "NavIcons" en el directorio raíz de su almacenamiento.

Una vez que tenga los íconos en el lugar apropiado, ingrese el siguiente comando de shell ADB (advertencia, es largo):

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"

Lo que hace este comando es reemplazar las teclas Atrás, Inicio y Recientes con KeyEvents que hacen la misma función. En particular, la espalda se reemplaza con CÓDIGO CLAVE_VOLVER, el hogar es reemplazado por CÓDIGO CLAVE_INICIO, y reciente se reemplaza con KEYCODE_APP_SWITCH. Estos códigos clave realizan exactamente la misma función, pero como usamos KeyEvents, podemos especificar qué ícono queremos usar para ellos. En este caso, apuntamos hacia back.png, home.png y Recents.png que guardamos en /NavIcons.

Sin embargo, al reemplazar las teclas estándar con KeyEvents, perdemos la capacidad de presionar prolongadamente el inicio porque actualmente no hay forma de reconocer eventos de pulsación prolongada de entradas de teclas simuladas.

Me doy cuenta de que en este momento este método puede no parecer ideal o fácil de implementar, pero al momento de escribir este artículo, la aplicación de la barra de navegación personalizada no se ha actualizado para admitir la adición de sus propios íconos. Por ahora, mi método (que es exactamente cómo funciona esa aplicación, y cuando la aplicación se actualice, enfrentará la misma limitación) es cómo puedes obtener los íconos personalizados que quieras en tu barra de navegación.


Eso es todo por este tutorial. En futuros tutoriales mostraré posibles usos prácticos de cambiar la barra de navegación, especialmente de manera contextual usando una aplicación de automatización como Tasker. Siga el categoría de tutoriales en XDA para mantenerte al día con los últimos consejos y trucos que publicamos.