La documentation Android Android contient la description suivante des commandes adb grant et adb revoke.
grant <PACKAGE_PERMISSION>
Accordez des autorisations aux applications. Seules les autorisations facultatives déclarées par l'application peuvent être accordées.
revoke <PACKAGE_PERMISSION>
Révoquer les autorisations sur les applications. Seules les autorisations facultatives déclarées par l'application peuvent être révoquées.
Quelqu'un peut-il donner un exemple de la syntaxe correcte pour les utiliser?
Je suppose que ce serait une autorisation comme Android.permission.WRITE_EXTERNAL_STORAGE
, ou peut-être simplement WRITE_EXTERNAL_STORAGE
. Eh bien, j'ai essayé ceux-ci et plusieurs autres et je ne peux pas le faire fonctionner.
J'ai également essayé (en vain) plusieurs combinaisons de package et d'autorisation, ce qui est plus logique pour moi (cela ressemble à une commande qui modifierait une autorisation sur un package, pas tous)
Ajouter:
adb Shell pm grant com.name.app Android.permission.READ_PROFILE
Ôter:
adb Shell pm revoke com.name.app Android.permission.READ_PROFILE
Cela a changé à la sortie de Android M, donc dans Lollipop (au moment de la rédaction de la réponse), vous deviez faire adb Shell
première.
adb Shell
pm grant com.name.app Android.permission.READ_PROFILE
Une liste complète des autorisations peut être trouvée ici . Si vous avez outils de construction Android configuré, vous pouvez voir les autorisations que l'application utilise. Première utilisation
adb Shell pm list packages -f
Copiez ensuite le package sur votre ordinateur:
adb pull /path/to/package/from/previous/step.apk
Obtenez ensuite les autorisations:
aapt d permissions path/to/app/on/computer.apk
Si vous ne connaissez pas le nom de l'autorisation ou si vous souhaitez effacer toutes les autorisations que vous pouvez utiliser
adb Shell pm reset-permissions your.package.name
Voici donc une petite ligne de commande (mac/linux) pour accorder à votre application toutes les autorisations dont elle a besoin depuis la ligne de commande.
aapt d permissions ./path/to/your.apk \
| sed -n \
-e "s/'//g" \
-e "/^uses-permission: name=Android.permission\./s/^[^=]*=//p" \
| xargs -n 1 adb Shell pm grant com.your.package