Izin aplikasi audit dengan mudah di satu tempat?

28

Apakah ada untuk mendaftar semua aplikasi yang diinstal pada ponsel Anda dan izin yang mereka butuhkan semua pada satu halaman, atau mengekspor daftar sehingga dapat dengan mudah diaudit?

Mat
sumber

Jawaban:

14

Gunakan aplikasi pasar seperti Izin Watchdog atau Izin . Juga, ada beberapa yang lain.

Denis Nikolaenko
sumber
Sayangnya, aplikasi Market memiliki bug (atau fitur yang dimaksudkan?) Ketika tidak semua izin terdaftar saat menginstal aplikasi. Ini mungkin masalah kompatibilitas dengan perangkat lunak yang dirancang untuk rilis Android yang lebih lama ... code.google.com/p/android/issues/detail?id=9365
Denis Nikolaenko
2
mungkin memasukkan komentar ke dalam jawaban Anda akan lebih sederhana.
bbaja42
@Nikolaenko, tampaknya sengaja dan berubah sekarang: android.stackexchange.com/questions/605/…
BlackShift
@ BlackShift, apa yang Anda maksud dengan "berubah sekarang"? Diubah oleh Android dev. tim?
Denis Nikolaenko
@ Nikolaenko, saya pikir saya tidak jelas karena tidak jelas bagi saya. Saya menjalankan cyanogenmod 6, android 2.2, dan hampir semua aplikasi meminta izin yang klaim tautan Anda secara implisit diberikan. Jadi saya tidak tahu siapa yang mengubah ini (sianogen atau tim android).
BlackShift
4

Aplikasi lain yang akhirnya saya gunakan bukan Izin adalah RL Izin . Saya lebih suka antarmuka. Sejauh mana yang bekerja lebih baik, saya tidak tahu.

Mat
sumber
2

aSpotCat juga merupakan aplikasi yang bagus untuk audit izin.

Mengalir
sumber
0

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.)

pengguna29020
sumber
0

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.

Ketergantungan

  • Membutuhkan untuk diatur di PC.
  • 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.shdan 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.

Terkait: Apakah ada cara asli untuk menemukan semua aplikasi yang diinstal yang memiliki akses ke fitur ponsel?

Firelord
sumber