¿Hay alguna forma de enumerar todas las aplicaciones instaladas en su teléfono y los permisos que requieren en una sola página, o exportar la lista para que pueda ser auditada fácilmente?
28
¿Hay alguna forma de enumerar todas las aplicaciones instaladas en su teléfono y los permisos que requieren en una sola página, o exportar la lista para que pueda ser auditada fácilmente?
Use aplicaciones de mercado como Permission Watchdog o Permissions . Además, hay varios otros.
Otra aplicación que terminé usando en lugar de Permisos es Permisos RL . Prefiero la interfaz En cuanto a cuál funciona mejor, no lo sé.
fuente
aSpotCat también es una buena aplicación para la auditoría de permisos.
fuente
Las aplicaciones compatibles con permisos enumerarán las aplicaciones instaladas por orden de los requisitos de permisos más exigentes a los menos exigentes. (Sin embargo, en realidad no rastrea ni audita ni ajusta su comportamiento).
fuente
Dado que no se menciona ninguna versión de Android en la pregunta, propongo una respuesta basada en la línea de comandos relevante para la versión de Android 4.2.1 y superior. Idealmente, es una solución independiente del sistema operativo, sistema operativo en PC, es decir.
Dependencias
Requiere busybox binario. Si el dispositivo está rooteado, instale la aplicación Busybox . De lo contrario, descargue el binario busybox de la fuente oficial , cambie el nombre del binario a busybox , configure el permiso ejecutable compatible con Linux en ese binario para todos y muévalo al dispositivo usando
Requiere aapt binary. Si está ejecutando un CM o su ROM derivada, ignore este requisito. De lo contrario, para Android 4.x, puede considerar descargar el binario desde aquí , cambiar el nombre del binario a aapt , configurar el permiso ejecutable compatible con Linux en ese binario para todos y moverlo al dispositivo usando
Para usuarios de Android 5.x, solicite ayuda a Google.
Aquí está mi pequeño guión que hace la magia:
#! / system / bin / sh # Compruebe si el binario busybox existe en / data / local / tmp / o / system / xbin. Establezca la ruta del binario detectado en la variable busybox o salga si el archivo no existe o el permiso ejecutable no está configurado [[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[-x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf "binario busybox no encontrado o permiso ejecutable no establecido. Saliendo \ n" && salir; }; } # Compruebe si el binario aapt existe en / data / local / tmp o / system / bin o / system / xbin. Establezca la ruta del binario detectado en la variable aapt o salga si el archivo no existe o el permiso ejecutable no está establecido [[-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 binario no encontrado o permiso ejecutable no establecido. Saliendo \ n" && exit; }; }; } # Enumere el nombre del paquete de todas las aplicaciones instaladas y guárdelas en el archivo packages.txt en / sdcard pm lista de paquetes | $ busybox sed 's / ^ paquete: // g' | $ busybox sort -o /sdcard/packages.txt # Para cada nombre de paquete en la salida que acabamos de guardar, obtenga la etiqueta de la aplicación usando $ path y $ label, imprima una línea y finalmente enumere los permisos otorgados a la aplicación mientras lee la línea; hacer ruta = $ (pm ruta $ línea | $ busybox sed 's / ^ paquete: // g'); etiqueta = $ ($ aapt d badging $ ruta | $ busybox grep 'aplicación: etiqueta =' | $ busybox corte -d "'" -f2); $ busybox printf "Permisos para la aplicación $ label que tiene el nombre del paquete $ line \ n"; paquete dumpsys $ line | $ busybox sed -e '1, / grantPermissions: / d' -e '/ ^ \ s * $ /, $ d' | $ busybox sort; $ busybox printf "\ n"; hecho </sdcard/packages.txtSalida de demostración:
Permisos para la aplicación DisableService que tiene el nombre del paquete cn.wq.disableservice android.permission.READ_EXTERNAL_STORAGE android.permission.WRITE_EXTERNAL_STORAGE Permisos para la aplicación Indecent Xposure que tiene el nombre del paquete co.vanir.indecentxposure android.permission.RECEIVE_BOOT_COMPLETED Permisos para etiquetas de aplicaciones que tienen el nombre del paquete com.android.apps.tag android.permission.CALL_PHONE android.permission.NFC android.permission.READ_CONTACTS android.permission.WAKE_LOCK android.permission.WRITE_SECURE_SETTINGS ... ... Permisos para el proveedor de temas de aplicaciones que tiene el nombre del paquete 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_THEMESGuarde el script en la PC en un archivo llamado
perm_script.shy muévalo a / sdcard usandoEjecute ese archivo
Cuanto mayores sean las aplicaciones instaladas en el sistema, mayor será el tiempo para que el comando complete la ejecución. En mi dispositivo, me llevó unos tres minutos.
Relacionado: ¿Existe una forma nativa de encontrar todas las aplicaciones instaladas que tienen acceso a una función del teléfono?
fuente