Відповіді:
Інший додаток, який я закінчив використовувати замість дозволів, - це дозволи RL . Я віддаю перевагу інтерфейс. Наскільки це краще працює, я не знаю.
Програми, що мають дозвіл на дозвіл, перелічать встановлені додатки за їхнім замовленням найвибагливіших до найменш вимогливих дозволів. (Однак він насправді не відстежує і не перевіряє чи коригує їх поведінку.)
Оскільки в питанні не згадується жодна версія Android, я пропоную відповідь на основі командного рядка, що стосується версії Android 4.2.1 і вище. Ідеально це рішення, незалежне від ОС, ОС на ПК, тобто.
Потрібен бінарний файл зайнятості . Якщо пристрій вкорінено, встановіть програму Busybox . Крім того, завантажте двійковий файл зайнятої скриньки з офіційного джерела , перейменуйте бінарний файл на зайнятий , встановіть для цього сумісного Linux дозвільний дозвіл для всіх і перемістіть його на пристрій за допомогою
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC
Потрібен aapt бінарний. Якщо ви використовуєте CM або його похідний ROM, ігноруйте цю вимогу. В іншому випадку для Android 4.x ви можете розглянути можливість завантаження бінарного файлу звідси , перейменувати бінарний файл на автоматичний , встановити сумісний з 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.
Ось мій маленький сценарій, який робить магію:
#! / система / бін / ш # Перевірте, чи існує бінарний файл зайнятості в / data / local / tmp / або / system / xbin. Встановіть шлях виявленого бінарного файлу до змінної зайнятої скриньки або виходу, якщо файл не існує, або дозвіл на виконання не встановлено [[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[-x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf "Бінарний файл для завантажених файлів не знайдено, або дозвіл на виконання не встановлено. Вихід \ 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 = / система / bin / aapt || {[[-x / system / xbin / aapt]] && aapt = / system / xbin / aapt || {printf "aapt binary не знайдено, або дозвіл на виконання не встановлено. Вихід \ n" && exit; }; }; } # Перелічіть назву пакета всіх встановлених програм та збережіть їх у файлі пакети.txt під / sdcard пп список пакетів | Пакет $ busybox sed '^ / ^: // g' | $ busybox sort -o /sdcard/packages.txt # Для кожного найменування пакета у вихідному файлі, який ми щойно зберегли, отримаємо мітку додатка за допомогою $ path та $ label, надрукуйте рядок і, нарешті, перерахуйте дозволи, надані додатку під час читання рядка; робити path = $ (pm path $ line | $ packagebox sed 's / ^ пакет: // g'); label = $ ($ aapt d badging $ 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 printf "\ n"; зроблено </sdcard/packages.txt
Демонстраційний вихід:
Дозволи для програми DisableService із назвою пакета cn.wq.disableservice android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE Дозволи на додаток Непристойний 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 ... ... Дозволи для постачальника тем тем програми, що мають ім'я пакета 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
Збережіть сценарій на ПК у файлі з іменем 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
Чим більше програм, встановлених у системі, тим більше часу буде для команди для завершення виконання. На моєму пристрої пройшло близько трьох хвилин.
Пов’язано: чи існує рідний спосіб знайти усі встановлені додатки, які мають доступ до функції телефону?