3 pontos por GN⁺ 2024-03-18 | 1 comentários | Compartilhar no WhatsApp
  • 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-tools ou android-tools pelo gerenciador de pacotes da distribuição
    • No macOS, instale android-platform-tools via 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
  • A versão mais recente do UAD GUI para o sistema operacional pode ser obtida em releases
    • Use a versão opengl apenas quando a versão com backend Vulkan padrão não funcionar
  • 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

 
GN⁺ 2024-03-18
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

    • Quando usei um celular Samsung pela primeira vez, cerca de duas semanas depois descobri que todas as palavras que eu digitava em qualquer app estavam sendo coletadas e enviadas a terceiros
      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
    • Pode ser um fenômeno limitado aos EUA
      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
    • Fiquei irritado ao descobrir que o teclado padrão vinha com Grammarly embutido e enviava todas as teclas digitadas sem consentimento
      Isso é vergonhoso num aparelho flagship de 1200 dólares
    • Nos celulares da Sony, o teclado Microsoft SwiftKey vinha instalado por padrão
      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
    • Os flagships da Samsung têm o melhor hardware, e o OneUI também melhorou muito em comparação com a época do TouchWiz
      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 0
      A 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 | sort
    dpkg -r : adb shell pm uninstall -k --user 0
    Para 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 como adb shell settings put secure icon_blacklist battery,wifi,clock, ...
    Esse comando sobrescreve a lista de bloqueio existente com a nova lista

    • Há muitas configurações não documentadas acessíveis com comandos desse tipo, colocadas por desenvolvedores para as próprias necessidades
      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

    • Na prática, é difícil dizer que exista um sistema operacional de código aberto para mobile
      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
    • Por exemplo, em https://androidauthority.com/grapheneos-3287030/ aparece a frase “mesmo aceitando a exigência de ser exclusivo para Pixel”, mas eu não tenho nenhuma intenção de aceitar isso
      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

    • Fico curioso para saber se você pode compartilhar o log de quais pacotes removeu quando isso aconteceu
  • 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

    • Alguns apps pré-instalados de fabricantes não podem ser desativados pela interface de usuário do Android, mas podem ser desativados via ADB
    • Em Android TV, sem ADB não dá para desativar ou remover o launcher padrão cheio de anúncios
    • É mais rápido, pode ser executado antes da configuração inicial e também consegue apagar itens que não podem ser removidos pela interface padrão de pacotes
  • 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?

    • Em geral, isso é possível
      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
    • Por causa de drivers de dispositivo de código fechado
      O mercado de celulares se parece com o mercado de desktops dos anos 90
    • Na plataforma PC x86, o processo de boot e a detecção de hardware são bem padronizados, e dá até para sobrescrever o kernel enquanto o sistema operacional está rodando, então isso é viável
      Em computadores que não são PCs, essas coisas não são garantidas
    • Pelo que sei, dá para fazer isso em celulares Google Pixel
      Isso não quer dizer que seja fácil, mas o código-fonte está todo lá
    • Por causa do suporte de hardware
  • 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

  • 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