Revogar permissões de aplicativos sem raiz?

8

Eu tenho alguns aplicativos que solicitam permissões desnecessárias. Gostaria de revogá-los, mas li que isso não é possível sem o enraizamento.

Existe alguma maneira de fazer isso sem ter que torcer?

RR
fonte

Respostas:

9

Sim, existe, embora não seja muito elegante e é uma REALMENTE má idéia para fazê-lo.
O aplicativo para o qual você faz isso provavelmente será interrompido se você revogar uma permissão e tentar usá-lo. Se isso não bastasse, você perderá os dados do aplicativo e não poderá atualizar a partir da Play Store. Com isso dito, não é tão difícil de fazer.

Você precisa do apktool . Consulte este guia sobre como usá-lo (você precisará dos comandos de descompilação e compilação). E isso ao assinar o apk depois que terminar. Você precisa modificar o AndroidManifest.xmlarquivo. Procure linhas como esta:

<uses-permission android:name="android.permission.CAMERA" />

e remova-o se o incomodar.

Depois de concluir, recompile o aplicativo e assine-o. Agora você pode desinstalar o aplicativo original e instalar o novo usando um gerenciador de arquivos ou no adb usando

adb install /local/path

Para descobrir o que cada permissão permite, você pode consultar a documentação incompleta ou tentar procurar seu nome.

RR
fonte
Ótimo, obrigado por seu esforço em escrever isso. Como programador, desconfio da ideia de que é compreensível que isso resultará em exceções não tratadas - uma conexão com a Internet nem sempre pode estar disponível, e mesmo os aplicativos do sistema precisam codificar essa falha em potencial. (Para ser justo, suponho que a API geraria uma exceção não permitida em vez de uma exceção de tempo limite, que teria que ser tratada de maneira diferente. Mas sempre deve haver uma exceção geral para todos os tipos não tratados, imo).
halfer
Quando você diz que não poderá atualizar a partir da Play Store , você quer dizer apenas aplicativos que são atualizados dessa maneira ou, quando esse processo é feito em um único aplicativo, nenhum aplicativo pode ser atualizado na Loja? Eu presumiria que, se um aplicativo modificado precisasse ser atualizado, era possível desinstalá-lo, baixá-lo novamente da loja e modificá-lo novamente com esta ferramenta?
halfer
Suponho que uma boa estratégia para tentar isso (especialmente em aplicativos do sistema como o Calendar) seja remover uma permissão de cada vez e, em seguida, tentar o novo binário por algumas semanas e depois enxaguar e repetir. Pode-se ter a sensação de que as permissões ausentes causam mais problemas e decidir sobre uma troca de segurança / estabilidade.
halfer
Vi aplicativos travarem quando as permissões foram removidas. Eu acho que foi acessar contatos ou algo assim. Isso é principalmente um problema para desenvolvedores inexperientes - uma grande equipe com uma equipe de controle de qualidade deve lidar com esse tipo de coisa. Eu quis dizer que o aplicativo específico não pode ser atualizado porque, no processo, você altera as chaves usadas para assinar o aplicativo. Você não pode fazer isso com o calendário padrão, pois não pode desinstalá-lo, pois é um aplicativo do sistema. Além disso, se você tiver um acidente, um lolcat diria que permissão está faltando (IIRC)
RR
é possível obter o APK de um aplicativo que você instalou no mercado, se você não está enraizado?
Kidburla