Permiso: INJECT_EVENTS para Instrumenation a otras aplicaciones
Sé que este no es el primer hilo sobre este permiso, sin embargo los otros no están terminados o no me ayudan.
Lo que necesito es inflar KeyEvents usando Instrumentación. Que funciona muy bien y es increíblemente más rápido que el shell ("input keyevent") método. Pero si quiero inyectarme a otras aplicaciones atraparé una excepción de seguridad. Eso no me sorprendió mucho, así que añadí <uses-permission android:name="android.permission.INJECT_EVENTS" />
a mi manifiesto. Eclipse se detiene para depurar esto diciéndome que sólo las aplicaciones del sistema pueden usar este permiso. Así que compilé usando la herramienta firmada apk y empujé ese apk a / system / app. Reiniciado, y adivina qué
- Permiso de negación: apertura del proveedor com.android.providers.contacts.ContactsProvider2 de ProcessRecord en Android Studio
- ¿Por qué mi aplicación tiene el permiso READ_PHONE_STATE aunque no se ha declarado en el manifiesto?
- Android: Buscar llamadas de la API que requieren permisos
- ¿Cómo dar permisos / dev / bus / usb para aplicaciones libusb android?
- BroadcastReceiver permiso para el shell de adb
W/PackageManager( 3499): Not granting permission android.permission.INJECT_EVENTS to package com.<....> (protectionLevel=2 flags=0x8be45)
La aplicación sólo está destinada a un dispositivo especial. Así que sé todas las especificaciones y está enraizada. Pero los comandos de inyección de su
toman mucho tiempo y SuperUser es necesario. Me encantaría hacer eso con Instrumentación o tal vez hay algo más que debo probar?
El firmware no está escrito por mí, así que no tengo la clave de la plataforma.
¡Gracias por tu ayuda!
EDIT: Consiguió las llaves de la plataforma (el dev utilizó las normales de Google), firmado y alineado, luego empujó el apk a / system / app. También se agregó android:sharedUserId="android.uid.system"
a mi manifiesto. En Boot ya no existe el mensaje logcat. Sin embargo, cuando quiero enviar el keysync todavía catche la SecurityException
. ¿Algunas ideas?
EDIT2: Aquí hay un extracto de ps
. Parece que el paquete no está listado como sistema
u0_a108 5241 2399 492044 48968 ffffffff 40113ab0 S com.mypackage
- Android 6.0 necesita reiniciar después de conceder permiso de usuario en tiempo de ejecución
- Los teléfonos de Redmi no piden permisos de SMS y por lo tanto no leen sms
- Captura de imagen sin permiso con Android 6.0
- Funciones de Android y permisos de archivo
- Algunas preguntas sobre el permiso "USE_CREDENTIALS"
- No se puede mover una aplicación a la tarjeta SD
- Cómo verificar correctamente el permiso de Android dinámicamente
- Vista web de Android: descarga archivos como los navegadores
One Solution collect form web for “Permiso: INJECT_EVENTS para Instrumenation a otras aplicaciones”
Actualizar
Utilice el signtool que se encuentra aquí , luego siga adelante y siga leyendo en mi blog.
Ok, tengo las llaves de la plataforma derecha y funciona como un encanto ahora! Firmé usando http://forum.xda-developers.com/showthread.php?t=1125626 y reemplazado (renombrado el signo …. a testkey ….) los trykeys dentro de la carpeta signare con
signapk-key.platform.x509.pem signapk-key.platform.pk8
(Google para ellos)
También asegúrese de zipalign y luego copiar a / system / app. Instalar el .apk de la manera normal NO es posible ya que se marca como aplicación del sistema.
- No hay ningún menú Ejecutar o botón de barra de herramientas en Eclipse Juno
- DispatchKeyEvent desde Service