O que é um ultralight apk e por que muita gente busca isso
Você já tentou instalar um app e percebeu que ele ocupa mais de 500MB só pra fazer uma coisa simples? Isso é comum nos dias de hoje. A indústria de apps virou uma máquina de empacotar bibliotecas desnecessárias, anúncios, telemetria e recursos que ninguém pede. Um ultralight apk é basicamente uma versão modificada de um aplicativo que remove tudo isso — anúncios, rastreamento, serviços inúteis — e ainda reduz o tamanho do arquivo. O resultado costuma ser um app que abre mais rápido, gasta menos bateria e não encherga seu armazenamento. Não vou mentir pra você: isso existe num espaço cinza legal. A maioria desses apps modifica o binário original ou rearranja o código-fonte aberto (como no caso de projetos FOSS). some desenvolvedores fazem isso explicitamente, outros não. Você precisa tomar sua própria decisão sobre o risco.
ultralight apk: como funciona na prática
O processo básico envolve três camadas. Primeiro, você pega um APK base — geralmente um app popular que você já usa no dia a dia. Segundo, você o descompila com ferramentas como apktool ou Androguard pra examinar o conteúdo. Terceiro, você remove os trechos indesejados: chamadas de API de anuncios, permissões extras, serviços em segundo plano, bibliotecas pesadas. Depois recompila, assina com um certificado próprio e instala. Na prática, isso leva de 20 minutos a uma hora dependendo do quão complexo é o app original. Apps como YouTube, WhatsApp e Spotify são os mais comuns. O YouTube foi um dos primeiros que eu peguei pra testar — o APK original tem uns 140MB e esconde pelo menos 12 serviços de rastreamento só na inicialização.
Aqui vai um detalhe que pouca gente explica direito: não adianta só deletar os pacotes de ads do código Java/Kotlin. O Google Play Services e muitos outros sistemas rodam em Kotlin compilado com otimizações que tornam a remoção manual problemática. Se você cortar errado, o app simplesmente trava na tela de splash ou pede uma verificação de integridade que nunca passa. A solução mais confiável que eu encontrei foi fazer o seguinte workaround: em vez de tentar reconstruir o APK do zero, usei o apktool pra desmontar, fiz uma busca por strings referenciando analytics e ads, removi apenas os blocos de código relacionados e usei um framework como Lucky Patcher ou Xposed para mascarar os checks de integridade em runtime. Isso funcionou no YouTube, mas não funciona em tudo.
Passo a passo real pra criar seu próprio ultralight apk
Vamos ao que importa. Aqui está o fluxo que eu uso, sem complicação. 1. Baixe o APK original de fonte confiável
Não baixe de sites aleatórios. Use o APKMirror ou o próprio Google Play via backup do seu dispositivo. O tamanho exato do arquivo importa — APKs oficiais têm assinaturas que coincidem com a versão do Play Store. Se o hash não bater, algo tá errado. 2. Descompile com apktool
Instale o apktool (v2.9.x ou superior) e rode: apktool d nome_do_app.apk -o pasta_de_saida
Isso vai extrair o smali code, resources, manifest e todo o resto. Leva de 30 segundos a 2 minutos dependendo do app. 3. Identifique os alvos
Aqui é onde a experiência entra. Nos arquivos smali (são os .smali dentro de /smali/), procure por: - Pacotes contendo "ads", "analytics", "firebase", "adfinc", "applovin", "ironsource"
- Chamadas para "invokestatic" que referenciam SDKs de terceiros - No AndroidManifest.xml, serviços declarados que não precisam existir pro app funcionar
- Permissões em "uses-permission" que você não vê razão pra existir Uma coisa que quase ninguém sabe: muitos apps usam ofuscação com ProGuard/R8. Os nomes originais dos pacotes de ads podem ter sido transformados em letras aleatórias como "a.b.c.d". Nesse caso, você precisa rastrear pelas strings nos recursos (res/values/strings.xml) e pelos nomes de métodos conhecidos nas docs do SDK.
4. Remova ou comente o código Em smali, pra "desativar" um método, você substitui o corpo dele por:
👉 Clique no botão abaixo para saber mais sobre o assunto!
.locals 0\nreturn-void Isso faz o método retornar vazio, o que geralmente é suficiente pra matar trackers sem quebrar o app. Em alguns casos mais, você precisa também remover as linhas que chamam esse método nos arquivos de chamada.
5. Remova do manifest No AndroidManifest.xml, apague ou comente:
- <service> tags de serviços em background - <receiver> de broadcasts que disparam analytics
- Permissões desnecessárias no <uses-permission> 6. Remaneje recursos (opcional)
Apps têm milhares de ícones, sons e assets que aumentam o tamanho. Se você quer economia real, remova pastas inteiras em res/ — como drawable-xhdpi, raw/, e assim por diante. Cuidado aqui: se você remover um recurso que o código espera, o app crasha. Teste sempre. 7. Recompila e assine
Rode: apktool b pasta_de_saida -o app_modificado.apk
Depois assine com jarsigner ou apksigner: apksigner sign --ks keystore.jks --ks-pass pass:senha app_modificado.apk
Se você não tem keystore, gere um com keytool: keytool -genkeypair -keystore keystore.jks -keyalg RSA -keysize 2048 -validity 3650 8. Instale e teste
Instale o APK modificado em um dispositivo de teste. Observe logs com adb logcat. Se houver crashes, volte e ajuste. Isso normalmente leva 2-3 iterações antes de stabilizar.
Problemas comuns e como resolver
O maior problema que eu enfrentei foi com apps que usam verificação de integridade do Google Play. O YouTube, por exemplo, detecta quando o APK foi resignado e exibe um aviso na tela ou bloqueia funcionalidades. Minha solução prática foi duas coisas combinadas: primeiro, tentei manter o hash de assinatura original usando o mesmo keystore do desenvolvedor — impossível na maioria dos casos. Segundo, apliquei um módulo Xposed chamado "Universal Android DeGoogle" junto com a modificação, que mascara a presença do Google Play Services pra app. Funciona em 80% dos casos. Nos outros 20%, o app simplesmente para de funcionar e não tem workaround. Outro problema recorrente: atualizações. Cada vez que o app original lança uma nova versão, seu trabalho de modificação fica obsoleto. Você precisa repetir todo o processo do zero. Isso é especialmente frustrante com apps que mudam frequently, como TikTok e Instagram. Eu desisti de manter mods desses — o custo-benefício não compensa.
Alternativas que vale a pena considerar
Antes de complicar sua vida modificando APKs, considere alternativas estabelecidas. Para YouTube, o NewPipe e o LibreTube são opensource, leve, e não precisam de modificação manual. Para geral, o F-Droid reúne versões modificadas e alternativas opensource de muitos apps populares. O microG substitui os Google Play Services de forma mais limpa do que qualquer patch manual. Se o objetivo é simplesmente ter menos bloat no sistema, um launchers como Niagara ou Lawnchair junto com apps FOSS resolvem 80% do problema sem tocar em binários. O ponto é: modificar APKs funciona, mas é um esforço contínuo. Se você tem horas livres e gosta de entender como as coisas funcionam por dentro, vá em frente. Se quer apenas um celular mais leve e rápido, as alternativas acima entregam o mesmo resultado com muito menos dor de cabeça.
Se você for fazer a modificação mesmo assim, baixe de fontes verificadas, use sempre um dispositivo de teste antes de instalar no principal, e mantenha backups. O processo completo — desde o download até um APK funcional — leva cerca de 45 minutos na primeira vez, e umas 10-15 minutos nas vezes seguintes quando você já conhece o padrão do app. O tamanho final costuma cair de 60-80% em relação ao original, dependendo do quanto foi removido.