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

  • Enviando la intención de BroadcastReceiver desde adb
  • ¿Cómo transmitir la intención de BATTERY_CHANGED con extras a través del shell de ADB?
  • No se puede instalar apk con adb en un dispositivo actualizado a Android Lollipop
  • ¿Cómo encontrar la versión del procesador ARM en el dispositivo android?
  • Error de instalación de Adb: INSTALL_CANCELED_BY_USER
  • Error al ejecutar el comando adb mediante programación
  • ¿Hay una lista de dichos permisos?

  • Cómo animar el cambio de un gestor de diseño de la vista de reciclador
  • ¿Cómo solucionar este error en Android? Java.net.MalformedURLException: Protocolo no encontrado:
  • ¿Cómo devolver el valor con RxJava?
  • Elemento giratorio simple de Android
  • Cómo grabar vídeo desde el fondo de la aplicación: Android
  • Android SQLite Query - Obteniendo los últimos 10 registros
  • 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.