Antworten:
Verwenden Sie Marktanwendungen wie Permission Watchdog oder Permissions . Es gibt auch mehrere andere.
Eine andere App, die ich anstelle von Permissions verwendet habe, ist RL Permissions . Ich bevorzuge die Schnittstelle. Was besser funktioniert, weiß ich nicht.
Berechtigungsfreundliche Apps listen installierte Apps in der Reihenfolge der höchsten bis niedrigsten Berechtigungsanforderungen auf. (Ihr Verhalten wird jedoch nicht erfasst, überwacht oder angepasst.)
Da in der Frage keine Android-Version erwähnt wird, schlage ich eine befehlszeilenbasierte Antwort vor, die für Android-Version 4.2.1 und höher relevant ist. Dies ist idealerweise eine OS-unabhängige Lösung, also OS on PC.
Benötigt Busybox Binary. Wenn das Gerät gerootet ist, installieren Sie die Busybox- App. Andernfalls laden Sie die Binärdatei von busybox von der offiziellen Quelle herunter , benennen Sie die Binärdatei in busybox um , legen Sie die Linux-kompatible ausführbare Berechtigung für diese Binärdatei für alle fest und verschieben Sie sie mit auf das Gerät
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC
Benötigt aapt Binary. Wenn Sie ein CM oder ein davon abgeleitetes ROM ausführen, ignorieren Sie diese Anforderung. Andernfalls können Sie für Android 4.x in Betracht ziehen, die Binärdatei von hier herunterzuladen , sie in aapt umzubenennen , die Linux-kompatible ausführbare Berechtigung für diese Binärdatei für alle Benutzer festzulegen und sie mit auf das Gerät zu verschieben
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC .
Bitten Sie für Benutzer von Android 5.x Google um Unterstützung.
Hier ist mein kleines Skript, das die Magie macht:
#! / system / bin / sh # Überprüfen Sie, ob die Busybox-Binärdatei unter / data / local / tmp / oder / system / xbin vorhanden ist. Legen Sie den Pfad der erkannten Binärdatei in der Variablen busybox fest oder beenden Sie das Programm, wenn keine Datei vorhanden ist oder keine ausführbare Berechtigung festgelegt wurde [[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[-x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf "busybox-Binärdatei nicht gefunden oder ausführbare Berechtigung nicht festgelegt. Beenden \ n" && exit; }; } # Überprüfen Sie, ob die aapt-Binärdatei unter / data / local / tmp oder / system / bin oder / system / xbin vorhanden ist. Setzen Sie den Pfad der erkannten Binärdatei in die Variable aapt oder exit, wenn die Datei nicht existiert oder die Berechtigung zur Ausführung nicht gesetzt ist [[-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 "aapt-Binärdatei nicht gefunden oder ausführbare Berechtigung nicht gesetzt. Beenden \ n" && exit; }; }; } # Paketnamen aller installierten Apps auflisten und in der Datei packages.txt unter / sdcard speichern pm list pakete | $ busybox sed 's / ^ Paket: // g' | $ busybox sort -o /sdcard/packages.txt # Rufen Sie für jeden Paketnamen in der soeben gespeicherten Ausgabe die Bezeichnung der App mit $ path und $ label ab, drucken Sie eine Zeile aus und listen Sie schließlich die der App erteilten Berechtigungen auf während die Zeile gelesen wird; machen path = $ (pm path $ line | $ busybox sed 's / ^ package: // g'); label = $ ($ aapt d badging $ path | $ busybox grep 'application: label =' | $ busybox cut -d "'" -f2); $ busybox printf "Berechtigungen für App $ label mit dem Paketnamen $ line \ n"; dumpsys-Paket $ line | $ busybox sed -e '1, / grantPermissions: / d' -e '/ ^ \ s * $ /, $ d' | $ busybox sort; $ busybox printf "\ n"; fertig </sdcard/packages.txt
Demo-Ausgabe:
Berechtigungen für die App DisableService mit dem Paketnamen cn.wq.disableservice android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE Berechtigungen für die App Indecent Xposure mit dem Paketnamen co.vanir.indecentxposure android.permission.RECEIVE_BOOT_COMPLETED Berechtigungen für App-Tags mit dem Paketnamen com.android.apps.tag android.permission.CALL_PHONE android.permission.NFC android.permission.READ_CONTACTS android.permission.WAKE_LOCK android.permission.WRITE_SECURE_SETTINGS ... ... Berechtigungen für App-Themes Anbieter mit Paketname 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
Speichern Sie das Skript auf dem PC in einer Datei mit dem Namen perm_script.sh
und verschieben Sie es mit in / sdcard
adb push LOCAL_FILE /sdcard/ # LOCAL_FILE is the path where you saved that file into PC
Führen Sie diese Datei aus
adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE # OUTPUT_FILE is the path where you want to save the final output
Je mehr Apps auf dem System installiert sind, desto länger dauert es, bis der Befehl ausgeführt wird. Bei meinem Gerät dauerte es ungefähr drei Minuten.
Verwandte Themen: Gibt es eine native Möglichkeit, alle installierten Apps zu finden, die Zugriff auf eine Telefonfunktion haben?