Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Qué permisos se pueden conceder a los dispositivos enraizados?

Pregunta corta y simple:

Los dispositivos con raíz pueden conceder aplicaciones con permisos adicionales durante el tiempo de ejecución (utilizando el comando "grant permission" utilizando el adb, como recuerdo). Un ejemplo de esto es la capacidad de leer los registros del sistema, que se convirtió en un permiso de usuario que comienza con API16 (enlace aquí ).

¿Hay una lista de dichos permisos?

  • ANDROID: ¿Cómo obtener acceso root en una aplicación de Android?
  • ¿Puedo deshabilitar systemui desde dentro de mi aplicación android?
  • Adb pull -> dispositivo no encontrado
  • ¿Cómo modificar AOSP para permitir que aplicaciones específicas obtengan acceso de root?
  • Privilegios raíz para una aplicación Android (aplicación completa, no sólo unos pocos comandos)
  • Habilitar depuración USB a través de Clockworkmod con adb
  • Adb shell su funciona, pero la raíz adb no
  • Bloqueo antes de que se inicie la aplicación: SecurityException: denegación de permisos: INTERACT_ACROSS_USERS_FULL
  • One Solution collect form web for “¿Qué permisos se pueden conceder a los dispositivos enraizados?”

    El comando que usted puede estar pensando es la pm grant PACKAGE PERMISSION , que puede ser enviado a un dispositivo conectado adb shell pm grant PACKAGE PERMISSION con adb shell pm grant PACKAGE PERMISSION .

    Sin embargo, solo los permisos opcionales pueden concederse o revocarse de esta manera. Si intenta otorgar un permiso no solicitado en el manifiesto de la aplicación, obtendrá Operation not allowed: java.lang.SecurityException: Package PACKAGE has not requested permission PERMISSION . Del mismo modo, si intenta revocar un permiso no considerado opcional, obtendrá Operation not allowed: java.lang.SecurityException: Can't change PERMISSION. It is required by the application Operation not allowed: java.lang.SecurityException: Can't change PERMISSION. It is required by the application . Incluso para un dispositivo enraizado o un emulador.

    Ahora, en cuanto a lo que se considera "opcional", así como obtener una lista de tales permisos, eso es un poco confuso. Sin embargo, basado en alguna experimentación, creo que estos incluyen al menos el conjunto de permisos asignados al grupo de permisos android.permission-group.DEVELOPMENT_TOOLS . Puede ver cuáles están en un dispositivo en ejecución con los pm list permissions -g . En mi emulador API 19, así como un Nexus 7 que ejecuta AOSP 4.4.4, estos son:

     group:android.permission-group.DEVELOPMENT_TOOLS permission:android.permission.ACCESS_ALL_EXTERNAL_STORAGE permission:android.permission.SIGNAL_PERSISTENT_PROCESSES permission:android.permission.READ_LOGS permission:android.permission.SET_ALWAYS_FINISH permission:android.permission.WRITE_SECURE_SETTINGS permission:android.permission.SET_PROCESS_LIMIT permission:android.permission.CHANGE_CONFIGURATION permission:android.permission.DUMP permission:android.permission.SET_DEBUG_AP 

    Si (y sólo si) se declaran en el manifiesto, puede concederlos / revocarlos utilizando el comando anterior. Tenga en cuenta que no se conceden automáticamente en la instalación; Debe emitir el comando pm grant . Fui capaz de observar y confirmar esto usando la aplicación Configuración y viendo que los permisos informados cambiaran según los concedía y revocaba.

    Puede haber otros permisos que se comporten de esta manera, pero no los he encontrado. Los permisos normales como android.permission.INTERNET no se pueden conceder o revocar de esta manera.

    Adición: Por pregunta adicional en la sección de comentarios con respecto a pm set-permission-enforced PERMISSION : Hasta donde yo sé, el único permiso que actualmente soporta esto es android.permission.READ_EXTERNAL_STORAGE . Estoy basando esta declaración en mi lectura del código fuente , que también es coherente con mis experiencias usando el comando. El propósito de la aplicación selectiva de este permiso es permitir la prueba de aplicaciones bajo condiciones pre y post API 19 como se describe aquí .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.