Odpowiedzi:
Korzystaj z aplikacji rynkowych, takich jak Watchdog uprawnień lub Uprawnienia . Jest też kilka innych.
Inną aplikacją, której używałem zamiast uprawnień, są uprawnienia RL . Wolę interfejs. Jeśli chodzi o to, który z nich działa lepiej, nie wiem.
Aplikacje przyjazne dla uprawnień wyświetlą listę zainstalowanych aplikacji według kolejności od najbardziej wymagających do najmniej wymagających wymagań dotyczących uprawnień. (Jednak tak naprawdę nie śledzi ani nie kontroluje ich zachowania.)
Ponieważ w pytaniu nie wymieniono żadnej wersji Androida, proponuję odpowiedź opartą na wierszu polecenia, dotyczącą wersji Android 4.2.1 i nowszych. Idealnie jest to rozwiązanie niezależne od systemu operacyjnego, czyli OS na PC.
Wymaga pliku binarnego busybox . Jeśli urządzenie jest zrootowane , zainstaluj aplikację Busybox . W przeciwnym razie pobierz plik binarny busybox z oficjalnego źródła , zmień nazwę pliku binarnego na zajęty , ustaw dla wszystkich plików binarnych uprawnienia do wykonywania tych plików i przenieś je na urządzenie za pomocą
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC
Wymaga aapt binary. Jeśli korzystasz z CM lub pochodnej pamięci ROM, zignoruj to wymaganie. W przeciwnym razie dla Androida 4.x możesz rozważyć pobranie pliku binarnego z tego miejsca , zmianę nazwy pliku binarnego na aapt , ustawienie dla wszystkich plików binarnych uprawnień do wykonywania tego pliku binarnego dla wszystkich i przeniesienie go na urządzenie za pomocą
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC .
W przypadku użytkowników Androida 5.x poproś Google o pomoc.
Oto mój mały skrypt, który robi magię:
#! / system / bin / sh # Sprawdź, czy plik binarny busybox istnieje w / data / local / tmp / lub / system / xbin. Ustaw ścieżkę wykrytego pliku binarnego do zmiennej busybox lub zakończ, jeśli plik nie istnieje lub nie ustawiono uprawnień do wykonywania [[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[-x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf "nie znaleziono pliku binarnego busybox lub nie ustawiono uprawnień do wykonywania. Wyjście \ n" && exit; }; } # Sprawdź, czy plik binarny Aapt istnieje w katalogu / data / local / tmp lub / system / bin lub / system / xbin. Ustaw ścieżkę wykrytego pliku binarnego w zmiennej aapt lub zakończ, jeśli plik nie istnieje lub nie ustawiono uprawnień do wykonywania [[-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 "nie znaleziono pliku binarnego aapt lub nie ustawiono uprawnień do wykonywania. Wyjście \ n" && exit; }; }; } # Wyświetl nazwę pakietu wszystkich zainstalowanych aplikacji i zapisz je w pliku packages.txt w / sdcard pakiety listy pm | $ busybox sed 's / ^ package: // g' | $ busybox sort -o /sdcard/packages.txt # Dla każdej nazwy pakietu w zapisanym właśnie wyjściu, pobierz etykietę aplikacji za pomocą $ path i $ label, wydrukuj linię, a następnie na końcu wypisz uprawnienia przyznane aplikacji podczas odczytu linii; robić ścieżka = $ (pm ścieżka $ linia | $ busybox sed 's / ^ pakiet: // g'); label = $ ($ aapt d znaczenie $ path | $ busybox grep 'aplikacja: label =' | $ busybox cut -d "'" -f2); $ busybox printf "Uprawnienia do aplikacji $ label o nazwie pakietu $ line \ n"; pakiet dumpsys $ line | $ busybox sed -e '1, / grantPermissions: / d' -e '/ ^ \ s * $ /, $ d' | $ busybox sort; $ busybox printf "\ n"; gotowe </sdcard/packages.txt
Wyjście demo:
Uprawnienia dla aplikacji DisableService o nazwie pakietu cn.wq.disableservice android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE Uprawnienia dla aplikacji Indecent Xposure o nazwie pakietu co.vanir.indecentxposure android.permission.RECEIVE_BOOT_COMPLETED Uprawnienia do tagów aplikacji o nazwie pakietu com.android.apps.tag android.permission.CALL_PHONE android.permission.NFC android.permission.READ_CONTACTS android.permission.WAKE_LOCK android.permission.WRITE_SECURE_SETTINGS ... ... Uprawnienia dla aplikacji Motywy aplikacji o nazwie pakietu 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
Zapisz skrypt na PC w pliku o nazwie perm_script.sh
i przenieś go do / sdcard za pomocą
adb push LOCAL_FILE /sdcard/ # LOCAL_FILE is the path where you saved that file into PC
Uruchom ten plik
adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE # OUTPUT_FILE is the path where you want to save the final output
Im więcej aplikacji zainstalowanych w systemie, tym dłuższy będzie czas na wykonanie polecenia. W moim urządzeniu zajęło to około trzech minut.