App-Berechtigungen einfach an einem Ort prüfen?

28

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 problemlos überprüft werden kann?

Matt
quelle

Antworten:

14

Verwenden Sie Marktanwendungen wie Permission Watchdog oder Permissions . Es gibt auch mehrere andere.

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

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

Fließen
quelle
0

Berechtigungsfreundliche Apps listen installierte Apps in der Reihenfolge der höchsten bis niedrigsten Berechtigungsanforderungen auf. (Ihr Verhalten wird jedoch nicht erfasst, überwacht oder angepasst.)

user29020
quelle
0

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.

Abhängigkeiten

  • Erfordert - Setup in PC sein.
  • 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.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 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?

Feuerlord
quelle