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.

  • ¿Valgrind no puede ejecutar la herramienta memcheck en el sistema operativo Android?
  • Vista previa de Android M: la actividad se recrea después de la concesión del permiso
  • Permiso: INJECT_EVENTS para Instrumenation a otras aplicaciones
  • Enumeración usb Android
  • Solicitud de permiso de cámara con Android SDK 23
  • Cómo verificar correctamente el permiso de Android dinámicamente
  • Todavía el permiso denegado después de agregar "WRITE_EXTERNAL_STORAGE" en AndroidManifest.xml
  • Android: Crear nuevo permiso del sistema a través del código fuente de AOSP.
  • Captura de imagen sin permiso con Android 6.0
  • Bypass android usb host permiso diálogo de confirmación
  • java.lang.SecurityException: Ni el usuario 10032 ni el proceso actual tiene android.permission.MODIFY_PHONE_STATE
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.