Como alterar os ícones da barra de navegação ou reorganizar os botões sem Root

click fraud protection

Neste tutorial, mostraremos como alterar os ícones da barra de navegação ou reorganizar os botões se você estiver executando o Nougat. Nenhuma raiz necessária.

Aqueles de vocês que estão executando o primeiro Visualização do desenvolvedor Android O pode ter brincado com seu oculto personalizador da barra de navegação localizado no sintonizador SystemUI. Este personalizador de barra de navegação já existe no AOSP há meses, mas pensava-se que a única maneira de acessá-lo no Android Nougat era através de um modificação do APK da interface do sistema, o que, é claro, exigiria acesso root. Só esta semana descobrimos que o personalizador da barra de navegação oculta do Android Nougat poderia na verdade, ser acessado sem a necessidade de acesso root, uma ROM personalizada ou um mod de UI do sistema. Com esse recurso, podemos alterar os ícones da barra de navegação, trocar as teclas ou adicionar botões adicionais.

É isso mesmo - é possível modificar sua barra de navegação em uma ROM totalmente padrão e sem root com um bootloader bloqueado. A funcionalidade que as pessoas pensavam ser limitada ao Android O é, na verdade, acessível a qualquer pessoa que execute o Android Nougat no Nexus, Pixel, OnePlus e alguns telefones Sony, HTC e Motorola. Se o seu dispositivo estiver executando um software próximo ao software do Google (desculpe, usuários da Samsung e Huawei/Honor), é provável que o seu dispositivo tenha o personalizador da barra de navegação AOSP oculto que podemos usar. Neste tutorial, mostrarei como você pode usar o personalizador da barra de navegação para 

altere os ícones dos botões para o que quiser ou reorganize-os na ordem que desejar.

Barra de navegação do Google Pixel no Nexus 6

Barra de navegação invertida no Nexus 6

Modificando a barra de navegação - configuração

Requisitos: você precisará de um dispositivo compatível com o personalizador da barra de navegação AOSP. Consulte a seção "compatibilidade" neste tópico. (Observação: o OEM ou tipo do seu dispositivo pode não estar listado nesse tópico. A única maneira de saber com certeza se o seu aparelho é compatível é testando-o, o que mostraremos a seguir.

Existem duas maneiras de modificar nossa barra de navegação. Um é com um aplicativo e o outro é por meio de comandos shell ADB (que é como o aplicativo funciona). Mostraremos ambos para completar, mas observe que, a partir de agora, você não pode modificar os ícones da barra de navegação de estoque por meio do aplicativo até que o desenvolvedor atualize seu aplicativo para incluir esse recurso.

A primeira coisa que precisamos fazer é ter certeza de que é possível modificar a barra de navegação do seu dispositivo. Se o seu dispositivo for um dos listados como compatíveis no Tópico da barra de navegação personalizada, então é provável que seja. Podemos verificar executando o breve tutorial que acompanha este aplicativo.

instale o aplicativo da Google Play Store (e também inscreva-se para testes beta para que possamos usar seu recurso experimental para reorganizar a barra de navegação mais tarde). Em seguida, abra o aplicativo e prossiga pelas telas introdutórias. A barra de navegação personalizada solicitará que você conceda uma determinada permissão chamada WRITE_SECURE_SETTINGS para continuar usando o aplicativo. Existem duas maneiras de fazer isso, conforme indicado no aplicativo.

  1. Se você tiver um dispositivo com acesso root, abra Emulador de terminal no seu telefone e conceda acesso root digitando su. Em seguida, digite este comando: pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS
  2. Se o seu dispositivo não estiver enraizado, você precisará conceder a permissão por meio do ADB. Abra um prompt de comando/terminal em sua máquina e digite o seguinte comando: adb shell pm grant xyz.paphonb.systemuituner android.permission.WRITE_SECURE_SETTINGS

Depois de conceder essa permissão ao aplicativo por meio de um dos dois métodos acima, o aplicativo prosseguirá com um teste de compatibilidade. Se a sua barra de navegação não mudar, infelizmente você está sem sorte. Se a sua barra de navegação mudar para exibir um botão de seta para a direita, parabéns, seu dispositivo é compatível! Agora podemos modificar nossa barra de navegação.


Reorganizando os botões da barra de navegação

Método de aplicativo

Agora que você configurou o aplicativo, é muito fácil reorganizar os botões da barra de navegação. Você precisa estar na versão de teste beta do aplicativo Barra de navegação personalizada para poder fazer isso, então volte e certifique-se de estar no canal beta antes de continuar.

Se você estiver na versão beta, verá uma seção chamada ajustes experimentais na seção principal Configurações. Toque nele e você verá opções que permitem substituir as chaves anteriores, iniciais e recentes existentes. Você pode reorganizar facilmente suas chaves aqui, fazendo com que o botão Voltar mude para o botão de visão geral (recente) e fazendo com que o botão de visão geral (recente) mude para o botão Voltar. Ou altere-os da maneira que desejar, não há limitações reais aqui. Depois de trocar as teclas, você também pode brincar com as opções de layout no menu de configurações da barra de navegação.

Método ADB

E aqui está como fazer o mesmo usando comandos ADB, se você preferir. O comando que iremos modificar é a preferência de configuração segura chamada sysui_nav_bar. Esta preferência é uma string que contém o layout da barra de navegação. A estrutura padrão da preferência é a seguinte

space, back; home; recent, space

Onde espaço representa um espaço vazio que separa as teclas da barra de navegação umas das outras, e voltar, casa e recente representam os 3 botões padrão na barra de navegação. Se quisermos trocar a chave anterior e a chave recente, por exemplo, precisaríamos modificar a string da seguinte maneira

space, recent; home; back, space

Nota: se você estiver tentando inserir qualquer um dos seguintes comandos em um ambiente shell com root, como Terminal Emulator no seu telefone, então você precisará omitir "adb shell" dos comandos antes de enviar eles.

Agora, para realmente modificar esta string, precisamos usar o comando shell ADB com esta sintaxe

adb shell settings put secure sysui_nav_bar "STRING"

Portanto, o comando que enviaríamos para trocar as chaves recente e anterior ficaria assim

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

Como você pode imaginar, isso é bastante flexível. Podemos mover as chaves como quisermos, modificando o valor da string da preferência. Podemos, por exemplo, fazer com que as teclas da barra de navegação invertidas sejam justificadas à esquerda ou à direita, alterando onde os dois espaços são colocados:

Justificado à esquerda:

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

Justificado corretamente:

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

Mas também podemos alterar os botões da barra de navegação para algo totalmente diferente das teclas padrão voltar, casa ou recente, como enviar um dos muitos Eventos-chave. Aproveitaremos esse fato na próxima seção, onde mostraremos como alterar os ícones dos botões da barra de navegação.


Ícones personalizados da barra de navegação

Agora, a seção a seguir pode não parecer grande coisa devido ao fato de que existem numerososformuláriossobre a Play Store que promete mudar sua barra de navegação sem root. E eles funcionam - no entanto, muitos usuários relatam que esses aplicativos apresentam bugs em certos aplicativos como o Chrome, ao reproduzir vídeo em tela cheia ou em alguns jogos. Além disso, muitos desses aplicativos exigem que você ative um serviço de acessibilidade para monitorar os aplicativos e saber quando recolorir a barra de navegação, o que pode reduzir o desempenho. Por fim, se você confiar nesses aplicativos por muito tempo, poderá se surpreender repentinamente ao vê-los parar de funcionar quando o Android O for lançado, porque a próxima versão do Android será lançada. matando a capacidade desses aplicativos para desenhar sobre os elementos da interface do sistema.

O método que estamos usando é baseado na implementação do sintonizador da barra de navegação do Google, portanto, não apresenta nenhum desses problemas. No entanto, há um problema sobre o qual queremos ser francos: se você optar por seguir este método para modificar o botão home, então o a ação do botão home pressionado longamente não funcionará mais o que significa que você não pode mais acessar rapidamente o Google Assistente a partir do botão home. Se você concorda com isso, veja como alterar os ícones na barra de navegação.

A primeira coisa que você precisa fazer é baixar os ícones pelos quais deseja substituir os ícones das teclas da barra de navegação padrão. Fornecerei links de download para você obter os ícones da barra de navegação do Google Pixel, mas cabe a você encontrar seus próprios ícones se quiser mais alguma coisa. Você precisará dos ícones no formato PNG e, quanto ao tamanho, poderá determinar o tamanho dos ícones necessários consultando seu métricas de densidade de exibição do dispositivo no Material.io e correlacionando isso com um gráfico de referência de tamanho de ícone.

Os créditos pela extração desses ícones da barra de navegação do Google Pixel vão para o membro sênior do XDA dariomrk. Download este arquivo se você tiver um 1920x1080p exibir e este se você tiver uma tela de 2560x1440p. Extraia o conteúdo de qualquer arquivo zip em uma pasta chamada “NavIcons” no diretório raiz do seu armazenamento.

Depois de colocar os ícones no local apropriado, digite o seguinte comando shell ADB (aviso, é longo):

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"

O que este comando faz é substituir as chaves back, home e recent por KeyEvents que fazem a mesma função. Em particular, back é substituído por KEYCODE_BACK, casa é substituída por KEYCODE_HOME, e recente é substituído por KEYCODE_APP_SWITCH. Esses códigos-chave executam exatamente a mesma função, mas como estamos usando KeyEvents, podemos especificar qual ícone queremos usar para eles. Nesse caso, estamos apontando para back.png, home.png e recents.png que salvamos em /NavIcons.

No entanto, ao substituir as teclas padrão por KeyEvents, perdemos a capacidade inicial de pressionar longamente porque atualmente não há como reconhecer eventos de pressão longa de entradas de teclas simuladas.

Sei que, no momento, esse método pode não parecer ideal ou fácil de implementar, mas no momento em que este artigo foi escrito, o aplicativo Barra de navegação personalizada não foi atualizado para oferecer suporte à adição de seus próprios ícones. Por enquanto, meu método (que é exatamente como esse aplicativo funciona, e quando o aplicativo for atualizado, ele enfrentará a mesma limitação) é como você pode obter os ícones personalizados que desejar em sua barra de navegação.


É isso neste tutorial. Em tutoriais futuros, mostrarei possíveis usos práticos para alterar sua barra de navegação, especialmente de maneira contextual usando um aplicativo de automação como o Tasker. Segue o categoria de tutoriais no XDA para se manter atualizado com todas as dicas e truques mais recentes que publicamos.