Remoção de software desnecessário em dispositivos Android sem root
(github.com/0x192)- O Universal Android Debloater GUI é uma ferramenta que reescreve completamente em Rust o antigo projeto UAD, com o objetivo de melhorar a privacidade e o desempenho da bateria ao remover apps de sistema do Android desnecessários ou pouco conhecidos
- Permite remover/desativar e restaurar/ativar pacotes do sistema sem root, com suporte a múltiplos usuários, múltiplos dispositivos, exportação/importação de itens selecionados e logs de operações
- Os pacotes são documentados tanto quanto possível para ajudar a decidir se podem ser removidos, mas remover pacotes essenciais do sistema necessários para a inicialização pode causar bootloop
- Em dispositivos sem root, apps de sistema não podem ser realmente removidos por completo; após atualizações do OEM, alguns apps de sistema “removidos” podem ser reinstalados, exigindo executar a ferramenta novamente
- A lista de suporte inclui Google/Facebook/Amazon/Microsoft, AOSP, OEMs, operadoras, Qualcomm/Mediatek etc., com debloat lists separadas por fabricante e operadora
Objetivo do Universal Android Debloater GUI
- O Universal Android Debloater GUI é um projeto que reescreve completamente em Rust o projeto UAD
- O objetivo é melhorar a privacidade e o desempenho da bateria removendo apps de sistema desnecessários e pouco conhecidos
- A remoção de apps de sistema também pode contribuir para melhorar a segurança ao reduzir a superfície de ataque
- O projeto ainda está em estágio inicial de desenvolvimento, e recomenda-se verificar issues e contribuir
Segurança e principais alertas
- O uso é por sua conta e risco, e o projeto não se responsabiliza pelo que possa acontecer ao telefone
- Os pacotes são documentados tanto quanto possível para permitir entender melhor se podem ser removidos
- O pior problema possível é remover um pacote essencial do sistema necessário para a inicialização, causando bootloop
- Após cerca de 5 falhas de inicialização, o telefone reinicia automaticamente em modo de recuperação
- Nesse caso, será necessário fazer uma restauração de fábrica
- É preciso fazer backup antes
- O projeto afirma que não é possível deixar o dispositivo em estado de brick com este software
- Sem root, apps de sistema não podem ser realmente removidos por completo; para mais detalhes, consulte o FAQ
Recursos suportados
- Suporte a Uninstall/Disable e Restore/Enable de pacotes do sistema
- Suporte a múltiplos usuários, como apps de perfil de trabalho
- Possibilidade de exportar/importar itens selecionados em
uad_exported_selection.txt - Suporte a múltiplos dispositivos, permitindo conectar vários telefones ao mesmo tempo
- Todas as operações ficam registradas em log para que o usuário não esqueça o que executou
Escopo das listas de debloat
- As Universal Debloat Lists incluem as seguintes categorias
- GFAM: Google, Facebook, Amazon, Microsoft
- AOSP
- Fabricantes (OEM)
- Operadoras
- Qualcomm, Mediatek e outros
- A debloat list de fabricantes oferece suporte a Asus, LG, Google, Fairphone, Huawei, Motorola, Nokia, OnePlus, Oppo, Realme, Samsung, Sony, Tecno, Unihertz, Vivo/iQOO, Xiaomi, ZTE, entre outros
- Archos, Blackberry, Gionee, iQOO, HTC, TCL e Wiko ainda não foram verificados na lista de fabricantes
- A debloat list de operadoras inclui os seguintes países e operadoras
- França: Orange, SFR, Free, Bouygues
- EUA: T-Mobile, Verizon, Sprint, AT&T
- Alemanha: Telekom
- Reino Unido: EE
Procedimento de uso e limitações
- Primeiro, leia o FAQ e faça backup dos dados
- Ative as Developer Options no smartphone e habilite USB Debugging no painel de desenvolvedor
- Desvincule a conta do OEM nas configurações
- Se o pacote da conta do OEM for removido, o telefone pode deixar de conseguir associar a identidade do usuário e ficar bloqueado na tela de bloqueio
- É necessário instalar o ADB
- No Linux, instale
android-sdk-platform-toolsouandroid-toolspelo gerenciador de pacotes da distribuição - No macOS, instale
android-platform-toolsvia Homebrew - No Windows, baixe e extraia o android platform tools e adicione-o ao PATH, ou execute o UAD no mesmo diretório
- No Windows, instale os USB drivers do dispositivo e verifique a detecção com
adb devices
- No Linux, instale
- A versão mais recente do UAD GUI para o sistema operacional pode ser obtida em releases
- Use a versão
openglapenas quando a versão com backend Vulkan padrão não funcionar
- Use a versão
- Usuários de telefones chineses podem precisar da AOSP list para remover alguns apps padrão
- Especialmente porque fabricantes chineses como Xiaomi e Huawei usam nomes de pacotes AOSP em seus próprios apps modificados e de código fechado
- Quando o OEM distribui uma atualização para o telefone, alguns apps de sistema “removidos” podem ser reinstalados, sendo necessário executar este software novamente
Contribuição
- O projeto é um projeto comunitário, e as formas de contribuir estão descritas em How to contribute
1 comentários
Comentários do Hacker News
Recentemente comprei para um parente um celular Samsung intermediário pelo preço cheio, e a quantidade de apps pré-instalados era inacreditável
Havia várias redes sociais e apps de compras já instalados, além de um monte de apps da Samsung que duplicavam de forma meio desajeitada o pacote de apps do Google
Todo o processo de configuração inicial estava cheio de dark patterns projetados para extrair o máximo possível de dados, então parecia difícil para um usuário comum passar por isso sem deixar algo escapar
A política de privacidade da empresa dizia que isso era usado para inferir interesses, vida social, nível de inteligência e escolaridade, além de vender os dados para “pesquisa de mercado” e afins
É difícil para o usuário suspeitar que o teclado que vem por padrão no celular deixaria mensagens de texto e e-mails serem lidos por terceiros
Só descobri por acaso, ao manter uma tecla pressionada e abrir a janela “about samsung keyboard”, seguir até a política de privacidade e ver para qual empresa os toques de tecla eram enviados
Troquei imediatamente por um teclado open source, embora, talvez justamente por agregar a digitação de todos os usuários, a correção ortográfica e a previsão de texto do teclado da Samsung fossem realmente muito boas
Meus três aparelhos mais recentes foram Samsung da linha S vendidos na UE, e o que daria para chamar de “apps pré-instalados de terceiros” era basicamente Facebook e MS Office, ambos fáceis de remover
Os apps alternativos da Samsung são questão de gosto, e eu os achei mais agradáveis de usar do que os “originais” do Google
Pelo uso superficial que tive de celulares de outras marcas, a Samsung está entre as melhores opções Android em software e experiência do usuário
Isso é vergonhoso num aparelho flagship de 1200 dólares
Há uma explicação dizendo: “Se você não escolheu usar uma conta Microsoft SwiftKey no dispositivo Android, todos os dados pessoais e linguísticos gerados pelo Microsoft SwiftKey permanecem armazenados localmente no dispositivo e não são transmitidos”
Eu uso porque ele alterna naturalmente entre os idiomas ativados, então dá para digitar frases como “meet me at Østerport Station” com fluidez
Mas os apps pré-instalados continuam sendo o problema, então sempre que compro um celular Samsung a primeira coisa que faço é rodar
pm uninstall –k ––user 0A ferramenta do link faz a mesma coisa de forma mais amigável, mas ainda há itens como conta Samsung ou componentes ligados ao Knox que continuam impossíveis de remover sem instalar uma custom ROM
Este projeto está sem manutenção há um ano
O fork mantido mais recente pode ser visto em https://github.com/Universal-Debloater-Alliance/universal-an...
Os comandos equivalentes no Android usados neste projeto são mais ou menos assim
dpkg --get-selections:adb shell pm list packages | sortdpkg -r:adb shell pm uninstall -k --user 0Para ocultar ícones da barra de status, dependendo da versão, é possível rodar
adb shell dumpsys activity service SystemUIService, procurar por “icon slots: ” para descobrir os nomes e depois configurar algo comoadb shell settings put secure icon_blacklist battery,wifi,clock, ...Esse comando sobrescreve a lista de bloqueio existente com a nova lista
Por exemplo, a maior parte da equipe principal de Android e Pixel do Google sabe que é melhor ter controles separados para Wi‑Fi e dados móveis, mas no produto final foi exposto apenas um único tile de configurações rápidas com os dois combinados
Mesmo assim, ainda é possível restaurar o modo com dois tiles por meio de uma configuração oculta, e eu não entendo por que esse tipo de coisa acontece com tanta frequência no Google
Há algumas semanas venho pensando no que aconteceu com o desenvolvimento de sistemas operacionais de software livre e de código aberto para dispositivos móveis
Fico me perguntando por que sistemas como GrapheneOS e CalyxOS só funcionam em celulares feitos pela Alphabet Inc e não em outros aparelhos, e para onde foi aquele modelo antigo de desenvolvimento ao estilo Linux, que reunia várias variações de hardware e oferecia drivers e suporte para praticamente qualquer dispositivo
Será que a indústria de hardware de computação móvel ficou tão amedrontada e fechada que o usuário não consegue mais ser dono do próprio aparelho, usando na prática um dispositivo que pertence a outra entidade?
Ou existe outro motivo para não haver sistemas operacionais que suportem vários aparelhos, e talvez eu esteja deixando algo passar
Até mesmo GrapheneOS e CalyxOS não conseguem acessar os drivers essenciais, então pegam blobs binários da imagem original e os redistribuem junto
Por isso, esses projetos acabam cheios de drivers de kernel de código fechado e ficam presos a versões específicas do kernel para usar esses drivers binários
No fim, o máximo que a versão aberta consegue fazer é escolher um conjunto diferente de “apps do sistema”, e na prática isso mal passa de algo um pouco melhor do que trocar o tema
Para dar suporte a um aparelho X específico, basta obter os blobs binários por meio de uma vulnerabilidade de root e depois distribuir isso para aquele dispositivo
Também não consigo aceitar https://grapheneos.org/faq#supported-devices
Se bem me lembro, a Alphabet/Google recebeu financiamento para distribuir o sistema operacional Android, em certo momento lançou seus próprios celulares, depois saiu de cena e deixou outras empresas seguirem adiante, e mais tarde reapareceu parecendo avançar à frente usando o esforço de outros fabricantes
Mas se o sistema operacional só existe para celulares do Google e não para outros aparelhos, não sei se isso é normal, e parece uma apropriação covarde do trabalho dos outros
A lista de aparelhos em https://calyxos.org/#Devices cresceu um pouco em relação ao antigo http://web.archive.org/web/20230605161332/https://calyxos.or..., mas nem se compara a coisas como OpenWRT, HyperWRT, DD-WRT e Tomato
Por isso não confio em GrapheneOS nem em CalyxOS, e gostaria de ver nos celulares algo parecido com o que aconteceu nos roteadores Wi‑Fi, onde vários firmwares abertos davam suporte a muitos dispositivos
Tentei aplicar uma dessas listas em um Xiaomi restaurado de fábrica e ele quebrou logo depois da reinicialização
Ele travava imediatamente após o login e ficou inutilizável; no fim consegui consertar, mas aprendi que é preciso tomar cuidado
O que é essencial em um modelo pode ser apenas um app pré-instalado em outro
Não entendo por que isso é necessário
Dá para desativar apps diretamente nas configurações do celular, então não está claro o que essa ferramenta acrescenta em relação a isso
No FAQ fala em também “remover” no perfil do usuário e apagar cache e dados, mas não entendi bem o que isso significa exatamente
Existe uma ferramenta GUI parecida para limpar e personalizar tablets Amazon Fire sem root usando ADB
https://xdaforums.com/t/windows-linux-tool-fire-toolbox-v33-...
Fico me perguntando por que não é possível compilar um Android totalmente limpo a partir do código-fonte e instalar diretamente no celular
O que impede isso?
Só que o celular precisa permitir desbloquear o bootloader, e como o fabricante não fornece o código-fonte de muitas partes, não dá para gerar uma imagem exatamente igual à do fabricante
Se o hardware for compatível, dá para instalar um sistema mantido pela comunidade como o LineageOS
A desvantagem é que apps como Google Pay podem deixar de funcionar, porque precisam passar pela atestação do SafetyNet do Google
Existem formas de contornar isso, mas sempre pareceram hacks instáveis
O mercado de celulares se parece com o mercado de desktops dos anos 90
Em computadores que não são PCs, essas coisas não são garantidas
Isso não quer dizer que seja fácil, mas o código-fonte está todo lá
Para remover apps pré-instalados em dispositivos Android, ADB é a única opção, direta ou indiretamente
Eu tinha um tablet Mediacom barato de 10 polegadas que usava antes e não consegui root de jeito nenhum com nenhuma ferramenta, mas remover serviços e itens desnecessários ficou fácil com ADB
Ainda assim é bem arriscado, e no fim eu não consigo mais rodar os serviços do Google, mas o Whatsapp para falar com as 7 ou 8 pessoas que não consegui convencer a usar e-mail ainda funciona, e também consigo baixar coisas pelo F-Droid, então para mim já basta
https://shizuku.rikka.app/
https://github.com/samolego/Canta
Sobre os pacotes pouco claros em dispositivos Android, gostaria de saber onde encontrar uma lista atualizada que explique o que cada um realmente faz e qual é o impacto de desativá-lo ou removê-lo
Em especial, quero entender as dependências entre pacotes, no sentido de remover um pacote que aparentemente não tem relação e acabar quebrando outra coisa
[1] - https://github.com/Universal-Debloater-Alliance/universal-an...