BroadcastReceiver permiso para el shell de adb

Considere una herramienta sencilla utilizando un BroadcastReceiver para lograr un objetivo simple. Debido a que esto no debe ser utilizado por otras aplicaciones, define un permiso con un protectionLevel de signature o signatureOrSystem :

 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="any.test"> <permission android:name="any.test.PERMISSION" android:protectionLevel="signatureOrSystem" /> <application android:label="AnyTest"> <receiver android:name=".Receiver" android:exported="true" android:permission="any.test.PERMISSION" /> </application> </manifest> 

Ahora me gustaría probar esto enviando emisiones vía

 adb shell am broadcast -n any.test/.Receiver 

desde mi computadora. Si bien esto funciona perfectamente bien en un emulador, no funciona en absoluto en un dispositivo real cuando se establece este permiso. Si el permiso no está establecido, todo funciona según lo previsto.

Entonces, ¿cómo puedo definir o conceder el permiso para que pueda probar todo esto en un dispositivo real con ADB ?

Quiero hacer este receptor exportado un poco más seguro en el modo de depuración, así que si hay un permiso especial para el uso de ADB o una prueba en tiempo de ejecución para permitir sólo llamadas de ADB puedo implementar en Receiver.onReceive(Context, Intent) ayudaría también. El receptor no tiene que trabajar para ADB y otras aplicaciones al mismo tiempo.

One Solution collect form web for “BroadcastReceiver permiso para el shell de adb”

Un shell raíz puede enviar cualquier transmisión protegida por cualquier permiso.
Un shell normal también se ha concedido un montón de permisos, compruebe este archivo en el código AOSP souce: frameworks \ base \ packages \ Shell \ AndroidManifest.xml .

Reemplace su any.test.PERMISSION con un permiso en este archivo que protectionLevel sea signatureOrSystem , como android.permission.REAL_GET_TASKS . Después de eso, puede enviar emisión a este receptor en shell, pero la tercera aplicación no puede.

  • Todavía el permiso denegado después de agregar "WRITE_EXTERNAL_STORAGE" en AndroidManifest.xml
  • ¿Tengo que declarar WRITE_EXTERNAL_STORAGE y READ_EXTERNAL_STORAGE?
  • ¿Están gradle tools: selector for permissions works ever?
  • ¿Cómo eliminar el permiso específico al crear una aplicación para Android con gradle?
  • Ejecutar comandos shell desde el programa android
  • Enumeración usb Android
  • Android 6.0 necesita reiniciar después de conceder permiso de usuario en tiempo de ejecución
  • ¿Cómo puede la aplicación del sistema ubicada en / system / app tener permiso del sistema en Android 4.4 KitKat construir?
  • Unidad de pruebas de Android y permisos
  • ¿Por qué mi aplicación tiene el permiso READ_PHONE_STATE aunque no se ha declarado en el manifiesto?
  • El permiso ACCESS_COARSE_LOCATION da una precisión de torre celular en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.