Yanıtlar:
İzin Bekçisi veya İzinler gibi piyasa uygulamalarını kullanın . Ayrıca, birkaç tane daha var.
Ben yerine kullanarak sona erdi o başka uygulama İzinleri olan RL izinler . Arayüzü tercih ederim. Hangisinin daha iyi çalıştığını bilmiyorum.
İzin Dostu Uygulamalar , yüklü uygulamaları en az talep gerektiren izin gereksinimlerine en çok talep eden sıralarına göre listeler. (Yine de aslında davranışlarını izlemiyor, denetlemiyor veya davranışlarını değiştirmiyor.)
Soruda hiçbir Android sürümü belirtilmediğinden, Android sürüm 4.2.1 ve daha üstü ile ilgili bir komut satırı tabanlı cevap öneririm. Bu ideal, işletim sisteminden bağımsız bir çözümdür, yani PC'de işletim sistemi.
Meşgul kutusu ikili gerektirir . Cihaz köklü ise, Busybox uygulamasını yükleyin . Aksi halde, resmi kaynaktan meşgul kutusu ikili dosyasını indirin , ikili dosyayı meşgul kutusu olarak yeniden adlandırın, herkes için Linux uyumlu çalıştırılabilir izinler ayarlayın ve bunları kullanarak cihaza taşıyın.
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC
Aapt ikili dosyası gerektirir . Bir CM veya türev ROM'unu çalıştırıyorsanız, bu gereksinimi dikkate almayın. Aksi halde, Android 4.x için, buradan ikili dosyayı indirmeyi düşünebilir, ikiliyi aapt olarak yeniden adlandırabilir, Linux uyumlu yürütülebilir izinleri herkes için kullanabilir.
adb push LOCAL_FILE /data/local/tmp/ # LOCAL_FILE is the file path where busybox binary is located in PC .
Android 5.x kullanıcıları için Google'dan yardım isteyin.
İşte sihri yapan benim küçük senaryom:
#! / Sistem / bin / sh # Meşgul kutusu ikilisinin / data / local / tmp / veya / system / xbin altında olup olmadığını kontrol edin. Algılanan ikilinin yolunu busybox değişkenine ayarlayın veya dosya yoksa veya çalıştırılabilir izin ayarlanmadıysa çıkın [[-x / data / yerel / tmp / busybox]] && busybox = / veri / yerel / tmp / busybox || {[[-x / sistem / xbin / busybox]] && busybox = / sistem / xbin / busybox || {printf "meşgul kutusu ikili dosyası bulunamadı veya çalıştırılabilir izin ayarlanmadı. \ n" Çıkılıyor && exit; }; } # Aapt binary'in / data / local / tmp veya / system / bin veya / system / xbin altında olup olmadığını kontrol edin. Algılanan ikili dosya yolunu aapt değişkenine ayarlayın veya dosya yoksa veya çalıştırılabilir izin ayarlanmadıysa çıkın [[-x / data / yerel / tmp / aapt]] && aapt = / veri / yerel / tmp / aapt || {[[-x / sistem / bin / aapt]] && aapt = / sistem / bin / aapt || {[[-x / sistem / xbin / aapt]] && aapt = / sistem / xbin / aapt || {printf "aapt binary bulunamadı veya çalıştırılabilir izin ayarlanmadı. \ n" çıkılıyor && exit; }; }; } # Yüklü tüm uygulamaların paket adını listele ve onları / sdcard altındaki package.txt dosyasına kaydet. pm list paketleri | $ busybox sed 's / ^ paketi: // g' | $ busybox sort -o /sdcard/packages.txt # Yeni kaydettiğimiz çıktıdaki her paket adı için, uygulamanın etiketini $ path ve $ label kullanarak alın, bir satır yazdırın ve son olarak uygulamaya verilen izinleri listeleyin satır okunurken; yap path = $ (pm path $ satır | $ busybox sed 's / ^ paketi: // g'); label = $ ($ aapt d $ yolunu gösteriyor $ $ | $ busybox grep 'application: label =' | $ busybox cut -d "'" -f2); $ busybox printf "Paket adı $ line \ n olan uygulama $ etiketinin izinleri \ n"; Dumpsys paketi $ satır | $ busybox sed -e '1, / grantedPermissions: / d' -e '/ ^ \ s * $ /, $ d' | $ busybox sıralaması; $ busybox printf "\ n"; </sdcard/packages.txt yapıldı
Demo çıkışı:
Paket adı cn.wq.disableservice olan uygulama DisableService için izinler android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE Co.vanir.indecentxposure paket adına sahip uygulama Indecent Xposure için izinler android.permission.RECEIVE_BOOT_COMPLETED Paketin com.android.apps.tag adındaki uygulama etiketlerinin izinleri android.permission.CALL_PHONE android.permission.NFC android.permission.READ_CONTACTS android.permission.WAKE_LOCK android.permission.WRITE_SECURE_SETTINGS ... ... Org.cyanogenmod.themes.provider paket adına sahip uygulama Temaları Sağlayıcı izinleri 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
Komut dosyasını PC'de bir dosyaya kaydedin ve perm_script.sh
/ sdcard kullanarak
adb push LOCAL_FILE /sdcard/ # LOCAL_FILE is the path where you saved that file into PC
Bu dosyayı çalıştır
adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE # OUTPUT_FILE is the path where you want to save the final output
Sistemde yüklü olan uygulamalar arttıkça, komutun yürütülmesi için gereken süre de o kadar artar. Cihazımda, yaklaşık üç dakika sürdü.
İlgili: Bir telefon özelliğine erişimi olan yüklü tüm uygulamaları bulmanın yerel bir yolu var mı?