Como visualizar as permissões de aplicativos Android antes de instalar um APK
Quando você instala um aplicativo da Google Play Store, o Android mostra um resumo simplificado do que o aplicativo pode acessar. Faça o sideload de um APK de uma fonte que não seja do Play e você não terá essa rede de segurança, a menos que você mesmo leia o manifesto. "Será que um aplicativo de papel de parede realmente precisa de acesso a SMS e microfone?" é exatamente o tipo de pergunta que este guia o ajudará a responder.
O que se segue é o mesmo fluxo de trabalho que nossa equipe usa ao fazer a triagem de um APK desconhecido: abra-o, leia as entradas uses-permission, decodifique os níveis de proteção e compare o que o aplicativo diz precisa com o que sua categoria normalmente exige. Nosso ferramenta online de informações do APK faz a decodificação XML binária para você, então todo o processo leva cerca de dez segundos.
Por que se preocupar com permissões de auditoria?
Desenvolvedores maliciosos pegam aplicativos gratuitos populares, alteram-nos e relançam-nos em sites de terceiros. Embora o aplicativo possa parecer e funcionar normalmente, seu código oculto pode copiar sua lista de contatos ou gravar seu áudio de fundo. Ao visualizar as permissões pré-instalação, você pode identificar esses sinais de alerta de "aumento de permissão".
Como auditar qualquer arquivo APK (online)
Nosso Ferramenta de informações do APK lê o manifesto do seu arquivo inteiramente no seu navegador; o arquivo nunca é carregado em um servidor e nenhum código é executado. Veja como usá-lo:
Processo:
- Vá para Página de informações do APK.
- Selecione seu arquivo .apk.
- Aguarde a conclusão da análise (geralmente 5 segundos).
- Role para baixo até Seção de permissões.
- Procure sinalizadores de alto risco como: READ_SMS, PROCESS_OUTGOING_CALLS ou ACCESS_FINE_LOCATION.
Lista de bandeira vermelha de permissão
Se um aplicativo Calculadora ou Lanterna solicitar READ_CONTACTS ou RECORD_AUDIO, exclua o arquivo imediatamente. Não há nenhuma razão legítima para esses aplicativos terem esses dados.
Compreendendo os níveis de permissão do Android
Nem todas as permissões são criadas iguais. O Android os categoriza em três níveis:
- Normal: Permissões de baixo risco que não ameaçam diretamente a privacidade (por exemplo, SET_ALARM). O Android concede isso automaticamente.
- Perigoso: Permissões de alto risco (Contatos, Localização, Câmera). Esses deve serão confirmados por você quando o aplicativo for executado.
- Assinatura/Sistema: Risco extremamente alto. Estão disponíveis apenas para aplicativos assinados pelo fabricante do dispositivo ou pelo próprio sistema operacional.
Método manual (usando um visualizador ZIP)
Se você tiver alguma habilidade técnica, poderá auditar as permissões você mesmo:
- Renomeie app.apk para app.zip e abra-o.
- Encontre AndroidManifest.xml. (Observação: está em formato binário e parecerá algo sem sentido em um editor de texto).
- Use uma ferramenta como Impressora AXML para convertê-lo em texto legível.
- Pesquise tags começando com <uses-permission>.
Recomendação: É muito mais rápido usar nosso ferramenta on-line que decodifica isso para você instantaneamente.
Audite seus aplicativos agora
Saiba exatamente o que seus aplicativos estão pedindo. Sem segredos, sem riscos.
Verifique as permissões do APKO que está realmente armazenado em AndroidManifest.xml
O manifesto é a fonte da verdade para cada permissão, componente e recurso declarado por um aplicativo. Dentro de um APK, o arquivo está no formato XML binário, e não no texto simples que você vê no código-fonte, portanto, não pode ser lido com um editor de texto normal. Nossa ferramenta APK Info decodifica o XML binário e exibe as tags relevantes. Os mais importantes são:
- <uses-permission android:name="..."/>: todas as permissões que o aplicativo possa solicitar. A lista completo está aqui, incluindo aqueles que o aplicativo talvez nunca use em tempo de execução.
- <uses-permission-sdk-23 ... />: igual, mas solicitado apenas quando o aplicativo roda no Android 6 ou posterior. Dispositivos mais antigos são permitidos silenciosamente, sem aviso prévio.
- <uses-feature android:name="..." android:required="true|false"/>: recursos de hardware que o aplicativo usa (câmera, GPS, NFC). Quando marcada como obrigatório, a Play Store oculta o aplicativo de dispositivos que não possuem o recurso.
- <application android:debuggable="true">: uma bandeira vermelha gigante em um APK de lançamento. Um aplicativo depurável expõe sua memória e estado de processo a qualquer pessoa com acesso ADB. Rejeitar.
- <activity android:exported="true"> em atividades confidenciais: permite que outros aplicativos iniciem essa tela. Para um aplicativo de privacidade, isso geralmente sinaliza uma codificação desleixada.
Níveis de proteção de permissão: a folha de dicas
O Android atribui a cada permissão um “nível de proteção”. Saber a qual nível uma solicitação pertence informa com que seriedade o sistema operacional a tratará.
| Nível de proteção | Experiência do usuário | Exemplos |
|---|---|---|
| normal | Concedido silenciosamente no momento da instalação. Sem aviso. | INTERNET, VIBRAÇÃO, ACCESS_NETWORK_STATE, WAKE_LOCK |
| perigoso | Solicitação de tempo de execução na primeira vez que o recurso é usado. Revogável em Configurações. | CÂMERA, RECORD_AUDIO, READ_CONTACTS, ACCESS_FINE_LOCATION |
| assinatura | Concedido apenas a aplicativos assinados com o mesmo certificado do aplicativo ou sistema operacional que concede a concessão. | BIND_VPN_SERVICE, INSTALL_PACKAGES (somente sistema) |
| assinatura|privilegiado | Disponível apenas para aplicativos pré-instalados no diretório priv-app da imagem do sistema. | MANAGE_USERS, READ_LOGS (controle de sistema) |
| aplicativo/função | Requer um fluxo de configurações separado para ser ativado. | SYSTEM_ALERT_WINDOW, BIND_ACCESSIBILITY_SERVICE, MANAGE_EXTERNAL_STORAGE (acesso especial) |
O que realmente significam permissões "ocultas"
Um equívoco comum é que algumas permissões são secretas. Não são: todas as permissões que um aplicativo possa usar devem ser declaradas em AndroidManifest.xml, e o sistema operacional se recusa a conceder qualquer permissão não listada lá. O que as pessoas geralmente querem dizer com "oculto" é uma de duas coisas:
- As permissões de nível normal são silenciosas. Eles são concedidos no momento da instalação, sem qualquer interação do usuário. O resumo da Play Store nem mostra alguns deles. Eles estão “ocultos” no sentido de “fáceis de ignorar”, não no sentido de “não revelados”.
- Os aplicativos Permissões personalizadas definidas pelo aplicativo. podem declarar suas próprias tags <permission> e exigi-las em componentes internos. Eles existem para comunicação entre aplicativos e não são uma preocupação de privacidade por si só, mas podem ser abusados se um aplicativo popular declarar uma permissão personalizada com o nível de proteção errado e outro aplicativo a usar como backdoor.
De qualquer forma, a resposta é a mesma: leia o manifesto, não confie apenas na descrição da Play Store.
Exemplo resolvido: auditando um APK real
Suponha que você tenha example.apk na pasta Downloads. Aqui está o fluxo de trabalho exato:
- Abra o Ferramenta de informações do APK no seu navegador.
- Solte o APK na área de upload. O processamento acontece localmente; o arquivo não sai do seu dispositivo.
- Leia a seção Permissões. Cada entrada mostra o nome da constante (android.permission.READ_CONTACTS e uma descrição em linguagem simples do que ela permite).
- Compare a lista com a categoria do aplicativo. Aproximadamente, espere:
- CÂMERA Aplicativos de câmera:, RECORD_AUDIO (para vídeo), ARMAZENAMENTO/gravação de MÍDIA
- Aplicativos de mensagens: INTERNET, READ_CONTACTS, SEND_SMS (somente se baseado em SMS), RECORD_AUDIO (para notas de voz), CAMERA (para envio de fotos)
- Jogos: INTERNET, sometimes RECORD_AUDIO (for in-game voice chat), billing-related permissions; raramente qualquer outra coisa
- Aplicativos utilitários (calculadora, lanterna, clima): INTERNET (para anúncios), ACCESS_NETWORK_STATE, possivelmente LOCATION (somente clima). Qualquer coisa além disso é suspeita.
- Se algo na lista não se enquadrar na categoria, não instale. Não há um bom motivo para uma calculadora precisar de acesso por SMS.
A mesma lógica se aplica quer o arquivo seja um APK, um XAPK (onde lemos o APK base interno) ou um pacote APKS (onde lemos o manifesto de cada divisão).
Fazendo isso na linha de comando
Se você preferir a rota do terminal, o SDK do Android vem com aapt2, que despeja um manifesto de qualquer APK em XML simples:
aapt2 dump badging example.apk | grep "uses-permission"
Ou use apksigner para verificar o certificado de assinatura ao mesmo tempo:
apksigner verify --print-certs example.apk
A ferramenta do navegador faz o mesmo para usuários que preferem não instalar um SDK apenas para examinar um único arquivo.
Perguntas frequentes (FAQ)
Posso negar uma permissão após instalar um APK?
Sim. No Android 6.0 e superior, você pode acessar Configurações > Aplicativos > [Nome do aplicativo] > Permissões para ativar ou desativar permissões perigosas individuais.
Os arquivos XAPK têm permissões diferentes?
Um XAPK contém um ou mais APKs. Cada APK interno tem seu próprio manifesto. Nossa ferramenta analisará o APK principal dentro do pacote para mostrar as permissões relevantes.
Por que todo aplicativo pede “Acesso à rede”?
Quase todos os aplicativos precisam de acesso à Internet para análises, relatórios de bugs ou anúncios. Embora seja comum, é também a forma como os dados roubados são enviados ao servidor de um hacker.
Inspecionando as permissões do manifesto antes de tocar em Instalar
Você não pode julgar o que não pode ver. Gastar dez segundos no ver as permissões de um APK antes de fazer o sideload é a diferença entre saber o que um aplicativo pode alcançar e simplesmente esperar que ele se comporte. Leia a lista primeiro e instale depois.