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.sh
et 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.