Réponses:
Utilisez des applications de marché telles que Permission Watchdog ou Permissions . En outre, il en existe plusieurs autres.
Une autre application que j'ai fini par utiliser à la place des autorisations est les autorisations RL . Je préfère l'interface. En ce qui concerne celui qui fonctionne le mieux, je ne sais pas.
Les applications compatibles avec les autorisations répertorieront les applications installées par ordre d'exigences d'autorisations les plus exigeantes à les moins exigeantes. (Cependant, il ne suit pas, ne vérifie pas ou n'ajuste pas leur comportement.)
Puisqu'aucune version d'Android n'est mentionnée dans la question, je propose une réponse basée sur la ligne de commande pertinente pour la version Android 4.2.1 et supérieure. C'est idéalement une solution indépendante du système d'exploitation, OS sur PC, c'est-à-dire.
Nécessite le binaire busybox . Si l'appareil est enraciné, installez l' application Busybox . Sinon, téléchargez le binaire busybox à partir de la source officielle , renommez le binaire en busybox , définissez l' autorisation exécutable compatible Linux sur ce binaire pour tout le monde et déplacez-le dans l'appareil à l'aide
adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC
Nécessite un binaire adapté . Si vous exécutez un CM ou sa ROM dérivée, ignorez cette exigence. Sinon, pour Android 4.x, vous pouvez envisager de télécharger le binaire à partir d' ici , renommer le binaire en aapt , définir l' autorisation exécutable compatible Linux sur ce binaire pour tout le monde et le déplacer vers l'appareil en utilisant
adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC . 
Pour les utilisateurs d'Android 5.x, demandez de l'aide à Google.
Voici mon petit script qui fait la magie:
#! / system / bin / sh
# Vérifiez si le binaire busybox existe sous / data / local / tmp / ou / system / xbin. Définissez le chemin du binaire détecté dans la variable busybox ou quittez si le fichier n'existe pas ou si l'autorisation exécutable n'est pas définie
[[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[-x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf "binaire busybox introuvable ou autorisation exécutable non définie. Quitter \ n" && exit; }; }
# Vérifiez si le binaire aapt existe sous / data / local / tmp ou / system / bin ou / system / xbin. Définissez le chemin du binaire détecté dans la variable aapt ou quittez si le fichier n'existe pas ou si l'autorisation exécutable n'est pas définie
[[-x / data / local / tmp / aapt]] && aapt = / data / local / tmp / aapt || {[[-x / system / bin / aapt]] && aapt = / system / bin / aapt || {[[-x / system / xbin / aapt]] && aapt = / system / xbin / aapt || {printf "binaire aapt introuvable ou autorisation exécutable non définie. Quitter \ n" && exit; }; }; }
# Liste le nom du package de toutes les applications installées et enregistrez-les dans le fichier packages.txt sous / sdcard
pm liste des paquets | $ busybox sed 's / ^ package: // g' | $ busybox sort -o /sdcard/packages.txt
# Pour chaque nom de package dans la sortie que nous venons d'enregistrer, obtenez le libellé de l'application en utilisant $ path et $ label, imprimez une ligne, puis répertoriez enfin les autorisations accordées à l'application 
pendant la lecture de la ligne; faire
    path = $ (pm path $ line | $ busybox sed 's / ^ package: // g'); 
    label = $ ($ aapt d badging $ path | $ busybox grep 'application: label =' | $ busybox cut -d "'" -f2);  
    $ busybox printf "Autorisations pour l'étiquette $ app ayant le nom de package $ line \ n"; 
    paquet dumpsys $ line | $ busybox sed -e '1, / grantPermissions: / d' -e '/ ^ \ s * $ /, $ d' | $ busybox sort;
    $ busybox printf "\ n"; 
fait </sdcard/packages.txt
Sortie de démonstration:
Autorisations pour l'application DisableService ayant le nom de package cn.wq.disableservice
      android.permission.READ_EXTERNAL_STORAGE
      android.permission.WRITE_EXTERNAL_STORAGE
Autorisations pour l'application Indecent Xposure ayant le nom de package co.vanir.indecentxposure
      android.permission.RECEIVE_BOOT_COMPLETED
Autorisations pour les balises d'application ayant le nom de package com.android.apps.tag
      android.permission.CALL_PHONE
      android.permission.NFC
      android.permission.READ_CONTACTS
      android.permission.WAKE_LOCK
      android.permission.WRITE_SECURE_SETTINGS
...
...
Autorisations pour le fournisseur de thèmes d'application ayant le nom de package org.cyanogenmod.themes.provider
      android.permission.ACCESS_NOTIFICATIONS
      android.permission.ACCESS_THEME_MANAGER
      android.permission.INTERNET
      android.permission.READ_THEMES
      android.permission.WRITE_SECURE_SETTINGS
      android.permission.WRITE_SETTINGS
      android.permission.WRITE_THEMES
Enregistrez le script dans le PC dans un fichier nommé perm_script.shet déplacez-le dans / sdcard en utilisant
adb push LOCAL_FILE /sdcard/   # LOCAL_FILE is the  path where you saved that file into PC
Exécutez ce fichier
adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE   # OUTPUT_FILE is the path where you want to save the final output
Plus les applications installées dans le système sont grandes, plus le délai d'exécution de la commande sera long. Dans mon appareil, cela a pris environ trois minutes.