Jawaban:
Gunakan aplikasi pasar seperti Izin Watchdog atau Izin . Juga, ada beberapa yang lain.
Aplikasi Ramah Izin akan mencantumkan aplikasi yang diinstal berdasarkan urutan persyaratan izin yang paling banyak dituntut. (Tapi sebenarnya tidak melacak atau mengaudit atau menyesuaikan perilaku mereka.)
Karena tidak ada versi Android yang disebutkan dalam pertanyaan, saya mengusulkan jawaban berbasis baris perintah yang relevan dengan Android versi 4.2.1 ke atas. Ini idealnya adalah solusi OS-independen, OS pada PC, yaitu.
Membutuhkan busybox binary. Jika perangkat di-root, instal aplikasi Busybox . Selain itu, unduh binary busybox dari sumber resmi , ubah nama biner menjadi busybox , atur izin yang dapat dieksekusi yang kompatibel dengan Linux pada biner itu untuk semua orang dan pindahkan ke perangkat menggunakan
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC
Membutuhkan biner aapt . Jika Anda menjalankan CM atau ROM turunannya maka abaikan persyaratan ini. Jika tidak, untuk Android 4.x, Anda dapat mempertimbangkan mengunduh biner dari sini , mengganti nama biner menjadi aapt , mengatur izin yang dapat dieksekusi yang kompatibel dengan Linux pada biner itu untuk semua orang dan memindahkannya ke perangkat menggunakan
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC .
Untuk pengguna Android 5.x, minta bantuan Google.
Inilah skrip kecil saya yang melakukan keajaiban:
#! / system / bin / sh # Periksa apakah binary busybox ada di bawah / data / local / tmp / atau / system / xbin. Tetapkan jalur biner yang terdeteksi ke dalam busybox variabel atau keluar jika file tidak ada atau izin yang dapat dieksekusi tidak ditetapkan [[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[-x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf "busybox binary tidak ditemukan atau izin yang dapat dieksekusi tidak disetel. Keluar \ n" && keluar; }; } # Periksa apakah ada binari aapt di bawah / data / local / tmp atau / system / bin atau / system / xbin. Tetapkan jalur biner yang terdeteksi ke dalam variabel aapt atau exit jika file tidak ada atau izin yang dapat dieksekusi tidak ditetapkan [[-x / data / local / tmp / aapt]] && aapt = / data / lokal / tmp / aapt || {[[-x / system / bin / aapt]] && aapt = / system / bin / aapt || {[[-x / system / xbin / aapt]] && aapt = / system / xbin / aapt || {printf "aapt biner tidak ditemukan atau izin yang dapat dieksekusi tidak disetel. Keluar \ n" && keluar; }; }; } # Cantumkan nama paket semua aplikasi yang terinstal dan simpan di file paket.txt di bawah / sdcard paket daftar pm | $ busybox sed 's / ^ package: // g' | $ busybox sort -o /sdcard/packages.txt # Untuk setiap nama paket dalam output yang baru saja kita simpan, dapatkan label aplikasi menggunakan $ path dan $ label, cetak baris dan akhirnya daftarkan izin yang diberikan ke aplikasi saat membaca baris; melakukan path = $ (pm path $ line | $ busybox sed 's / ^ package: // g'); label = $ ($ aapt d badging $ path | $ busybox grep 'application: label =' | $ busybox cut -d "'" -f2); $ busybox printf "Izin untuk aplikasi $ label yang memiliki nama paket $ line \ n"; paket dumpsys $ line | $ busybox sed -e '1, / diberikanPermisi: / d' -e '/ ^ \ * * $ /, $ d' | $ busybox sort; $ busybox printf "\ n"; dilakukan </sdcard/packages.txt
Output demo:
Izin untuk aplikasi DisableService memiliki nama paket cn.wq.disableservice android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE Izin untuk aplikasi Indecent Xposure memiliki nama paket co.vanir.indecentxposure android.permission.RECEIVE_BOOT_COMPLETED Izin untuk Tag aplikasi yang memiliki nama paket com.android.apps.tag android.permission.CALL_PHONE android.permission.NFC android.permission.READ_CONTACTS android.permission.WAKE_LOCK android.permission.WRITE_SECURE_SETTINGS ... ... Izin untuk Penyedia Tema aplikasi yang memiliki nama paket 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
Simpan skrip di PC ke file bernama perm_script.sh
dan pindahkan ke / sdcard menggunakan
adb push LOCAL_FILE /sdcard/ # LOCAL_FILE is the path where you saved that file into PC
Jalankan file itu
adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE # OUTPUT_FILE is the path where you want to save the final output
Semakin besar aplikasi yang diinstal dalam sistem, semakin besar waktu bagi perintah untuk menyelesaikan eksekusi. Di perangkat saya, butuh sekitar tiga menit.