App-Berechtigungen einfach an einem Ort prüfen?

Gibt es eine Möglichkeit, alle auf Ihrem Telefon installierten Anwendungen und die erforderlichen Berechtigungen auf einer Seite aufzulisten oder die Liste zu exportieren, damit sie leicht geprüft werden kann?

Antworten (5)

Verwenden Sie Marktanwendungen wie Permission Watchdog oder Permissions . Außerdem gibt es mehrere andere.

Leider hat die Market-Anwendung einen Fehler (oder eine beabsichtigte Funktion?), wenn bei der Installation der Anwendung nicht alle Berechtigungen aufgelistet werden. Dies kann ein Kompatibilitätsproblem mit Software sein, die für ältere Android-Versionen entwickelt wurde... code.google.com/p/android/issues/detail?id=9365
Vielleicht wäre es einfacher, einen Kommentar in Ihre Antwort aufzunehmen.
@Nikolaenko, anscheinend ist es Absicht und wurde jetzt geändert: android.stackexchange.com/questions/605/…
@BlackShift, was meinst du mit "jetzt geändert"? Geändert von Android-Entwickler. Team?
@Nikolaenko, ich glaube, ich war unklar, weil es mir unklar ist. Ich verwende Cyanogenmod 6, Android 2.2, und fast alle Apps fragen nach den Berechtigungen, die Ihren Linkansprüchen implizit gewährt werden. Ich weiß also nicht, wer das geändert hat (Cyanogen- oder Android-Team).

Eine andere App, die ich anstelle von Permissions verwendet habe, ist RL Permissions . Ich bevorzuge die Schnittstelle. Inwiefern das besser funktioniert, weiß ich nicht.

aSpotCat ist auch eine nette App für die Berechtigungsprüfung.

Permission Friendly Apps listet installierte Apps in der Reihenfolge der anspruchsvollsten bis zu den am wenigsten anspruchsvollen Berechtigungsanforderungen auf. (Es verfolgt oder überwacht oder passt ihr Verhalten jedoch nicht wirklich an.)

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. Idealerweise ist dies eine OS-unabhängige Lösung, also OS on PC.

Abhängigkeiten

  • Erfordert die Einrichtung von auf dem PC.
  • Benötigt Busybox- Binärdatei. Wenn das Gerät gerootet ist, installieren Sie die Busybox - App. Andernfalls laden Sie die busybox-Binärdatei von der offiziellen Quelle herunter , benennen Sie die Binärdatei in busybox um, legen Sie für alle die Linux-kompatible Ausführungsberechtigung für diese Binärdatei 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
    
  • Erfordert eine aapt- Binärdatei. 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, die Binärdatei in aapt umzubenennen , die Linux-kompatible Ausführungsberechtigung für diese Binärdatei für alle 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 existiert. Setzen Sie den Pfad der erkannten Binärdatei in die Variable busybox oder beenden Sie, wenn die Datei nicht existiert oder die Ausführungsberechtigung nicht gesetzt ist
[[ -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ührungsberechtigung nicht gesetzt. Beenden\n" && exit; }; }
# Überprüfen Sie, ob die aapt-Binärdatei unter /data/local/tmp oder /system/bin oder /system/xbin existiert. Setzen Sie den Pfad der erkannten Binärdatei in die Variable aapt oder beenden Sie, wenn die Datei nicht existiert oder die Ausführungsberechtigung 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ührungsberechtigung nicht gesetzt. Beenden\n" && exit; }; }; }

# Paketnamen aller installierten Apps auflisten und in der Datei packages.txt unter /sdcard speichern
pm-Listenpakete | $busybox sed 's/^Paket://g' | $busybox sort -o /sdcard/packages.txt

# Holen Sie sich für jeden Paketnamen in der gerade gespeicherten Ausgabe das Label der App mit $path und $label, drucken Sie eine Zeile und listen Sie dann schließlich die Berechtigungen auf, die der App gewährt wurden
während Lesezeile; tun
    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 die App $label mit dem Paketnamen $line\n";
    dumpsys-Paket $line | $busybox sed -e '1,/grantedPermissions:/d' -e '/^\s*$/,$d' | $busybox sortieren;
    $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 den App-Designanbieter mit dem Paketnamen 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.shund 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 im System installiert sind, desto länger dauert es, bis der Befehl vollständig ausgeführt wird. Bei meinem Gerät dauerte es etwa drei Minuten.

Verwandte: Gibt es eine native Möglichkeit, alle installierten Apps zu finden, die Zugriff auf eine Telefonfunktion haben?