android permissions code-injection keyevent

android - Permiso: INJECT_EVENTS para instrumentar a otras aplicaciones



permissions code-injection (1)

Sé que este no es el primer hilo acerca de este permiso, sin embargo, los otros no están terminados o no me ayudan.

Lo que necesito es inflar KeyEvents usando Instrumentation. Eso funciona muy bien y es increíblemente más rápido que el método shell ("input keyevent"). Pero si quiero inyectar a otras aplicaciones, veo una SecurityException. Eso no me sorprendió demasiado, así que agregué <uses-permission android:name="android.permission.INJECT_EVENTS" /> a mi manifiesto. Eclipse se detiene para depurar esto diciéndome que solo las aplicaciones del sistema pueden usar este permiso. Así que compilé usando la herramienta apk firmada y empujé ese apk a / system / app. Reiniciado, y adivina qué

W/PackageManager( 3499): Not granting permission android.permission.INJECT_EVENTS to package com.<....> (protectionLevel=2 flags=0x8be45)

La aplicación está dirigida solo a un dispositivo especial. Entonces conozco todas las especificaciones y está rooteado. Pero su comandos de inyección tardan mucho y se requiere SuperUser. Me encantaría hacer eso con Instrumentation o tal vez hay algo más que debería probar?

El firmware no está escrito por mí, así que no tengo la clave de la plataforma.

¡Gracias por tu ayuda!

EDITAR: Obtuve las claves de la plataforma (el desarrollador usó las normales de Google), firmó y alineó, luego empujó la aplicación a / system / app. También se agregó android:sharedUserId="android.uid.system" a mi manifiesto. En Boot, ya no existe el mensaje de logcat. Sin embargo, cuando quiero enviar el keysync sigo capturando 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


Actualizar

Use la herramienta de señalización que se encuentra aquí , luego continúe y lea en mi blog.

Ok, obtuve las claves de plataforma adecuadas y funciona como un encanto ahora! Firmé usando http://forum.xda-developers.com/showthread.php?t=1125626 y reemplacé (renombré el signo .... por la tecla de prueba ....) las claves de prueba 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 .apk de la manera normal NO es posible, ya que está marcado como aplicación del sistema.