Можно ли как-то перечислить все приложения, установленные на вашем телефоне, и разрешения, которые им требуются, на одной странице или экспортировать список, чтобы его можно было легко проверить?
Используйте рыночные приложения, такие как Permission Watchdog или Permissions . Кроме того, есть несколько других.
Другое приложение, которое я использовал вместо Permissions , — это RL Permissions . Я предпочитаю интерфейс. Насчет того, какой из них работает лучше, я не знаю.
aSpotCat также является хорошим приложением для аудита разрешений.
Приложения, дружественные к разрешениям , будут отображать установленные приложения в порядке от наиболее требовательных к наименее требовательным требованиям к разрешениям. (Однако на самом деле он не отслеживает, не проверяет и не корректирует их поведение.)
Поскольку в вопросе не упоминается версия Android, я предлагаю ответ на основе командной строки, относящийся к версии Android 4.2.1 и выше. В идеале это независимое от ОС решение, то есть ОС на ПК.
Требуется бинарный файл busybox . Если устройство рутировано, установите приложение Busybox . В противном случае загрузите двоичный файл busybox из официального источника , переименуйте двоичный файл в busybox , установите совместимое с Linux разрешение на выполнение этого двоичного файла для всех и переместите его на устройство с помощью
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC
Требуется aapt двоичный файл. Если вы используете CM или его производное ПЗУ, игнорируйте это требование. В противном случае для Android 4.x вы можете рассмотреть возможность загрузки двоичного файла отсюда , переименовать двоичный файл в aapt , установить совместимое с Linux разрешение на выполнение этого двоичного файла для всех и переместить его на устройство с помощью
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC .
Для пользователей Android 5.x обратитесь за помощью в Google.
Вот мой маленький скрипт, который творит чудеса:
#!/система/бин/ш # Проверяем, существует ли бинарный файл busybox в /data/local/tmp/ или /system/xbin. Установите путь к обнаруженному двоичному файлу в переменную busybox или выйдите, если файл не существует или разрешение на выполнение не установлено. [[ -x /data/local/tmp/busybox ]] && busybox=/data/local/tmp/busybox || { [[ -x /system/xbin/busybox ]] && busybox=/system/xbin/busybox || { printf "Двоичный файл busybox не найден или права на выполнение не установлены. Выход\n" && exit; }; } # Проверьте, существует ли двоичный файл aapt в /data/local/tmp или /system/bin или /system/xbin. Установите путь к обнаруженному двоичному файлу в переменную aapt или выйдите, если файл не существует или разрешение на выполнение не установлено. [[ -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 не найден или права на выполнение не установлены. Выход\n" && exit; }; }; } # Перечислите имена пакетов всех установленных приложений и сохраните их в файле packages.txt в папке /sdcard. пакеты списка pm | $busybox sed 's/^package://g' | $busybox sort -o /sdcard/packages.txt # Для каждого имени пакета в выходных данных, которые мы только что сохранили, получите метку приложения, используя $path и $label, напечатайте строку и, наконец, перечислите разрешения, предоставленные приложению при чтении строки; делать path=$(pm path $line | $busybox sed 's/^package://g'); label=$($aapt d бейджинг $path | $busybox grep 'application: label=' | $busybox cut -d "'" -f2); $busybox printf "Разрешения для приложения $label с именем пакета $line\n"; пакет dumpsys $line | $busybox sed -e '1,/предоставлены разрешения:/d' -e '/^\s*$/,$d' | сортировка $busybox; $busybox printf "\n"; сделано < /sdcard/packages.txt
Демонстрационный вывод:
Разрешения для приложения DisableService с именем пакета cn.wq.disableservice android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE Разрешения для приложения Indecent Xposure с именем пакета co.vanir.indecentxposure android.permission.RECEIVE_BOOT_COMPLETED Разрешения для тегов приложений с именем пакета com.android.apps.tag android.permission.CALL_PHONE android.permission.NFC android.permission.READ_CONTACTS android.permission.WAKE_LOCK android.permission.WRITE_SECURE_SETTINGS ... ... Разрешения для приложения Themes Provider с именем пакета org.cyanogenmod.themes.provider android.permission.ACCESS_NOTIFICATIONS android.permission.ACCESS_THEME_MANAGER android.permission.ИНТЕРНЕТ android.permission.READ_THEMES android.permission.WRITE_SECURE_SETTINGS android.permission.WRITE_SETTINGS android.permission.WRITE_THEMES
Сохраните скрипт на ПК в файл с именем perm_script.sh
и переместите его в /sdcard с помощью
adb push LOCAL_FILE /sdcard/ # LOCAL_FILE is the path where you saved that file into PC
Запустите этот файл
adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE # OUTPUT_FILE is the path where you want to save the final output
Чем больше приложений установлено в системе, тем больше времени потребуется для завершения выполнения команды. В моем устройстве это заняло около трех минут.
Денис Николаенко
bbaja42
Блэкшифт
Денис Николаенко
Блэкшифт