2010-08-30 19 views
21

Necesito compilar una aplicación con permisos del sistema para utilizar la aplicación de destino com.android.settings. Por ahora, mientras trato de ejecutar mi apk consigo el mensaje de errorCómo compilar la aplicación para Android con permisos del sistema

Marcha de prueba fallida: Permiso Negación: iniciar la instrumentación ComponentInfo {com.jayway.test/android.test.InstrumentationTestRunner} de pid = 354 , uid = 354 no permitido porque el paquete no com.jayway.test no tiene una firma coincidir los com.android.settings objetivo

¿Cómo puedo compilar mi aplicación con permisos del sistema?

+4

Solo puede firmar su aplicación con la tecla de firma del sistema si está creando su propio firmware. – CommonsWare

+0

Primero me gustaría experimentar con Android Emulator. ¿Puedo compilar Android Emulator seleccionando la opción 'debug' con el comando' choosecombo' y luego intento instalar mi propia aplicación? – Michalis

+0

Ver responder aquí: http://stackoverflow.com/questions/5383401/android-inject-events-permission/21555223#21555223 – wwjdm

Respuesta

31

Después de buscar, encontré cómo firmar mi aplicación con la clave del sistema (plataforma). Las firmas del sistema se encuentran en el directorio <root-of-android-source-tree>/build/target/product/security. Puede usarlos para firmar su aplicación con privilegios del sistema.

+0

Gran! Muchas gracias, Mich! –

+1

para compilar una aplicación de sistema para agregar al firmware, ¿es necesario exportar el APK?Logré obtener el certificado/almacén de claves de Google y puedo ejecutar la aplicación como una aplicación de sistema en el emulador, pero ahora debo entregar esta aplicación al ingeniero de firmware y no estoy seguro de cómo construirla. –

+0

Me pregunto si la .apk en/bin funcionaría ya que se ha firmado con google_certificate.keystore –

-3

El anser para mí fue simplemente eliminar el archivo debug.keystore. La ubicación de almacenamiento predeterminada para AVDs está en ~/.android/en OS X y Linux, en C: \ Documents and Settings \ .android \ en Windows XP, y en C: \ Users \ .android \ en Windows Vista.

En Eclipse "limpié" el proyecto, desinstalé la aplicación y TestApp del emulador y - voila todo volvió a funcionar bien.

+0

Si bien esta solución resolvió su problema y ha resuelto el problema varias veces (debido a problemas con el almacén de claves de depuración caducado), esto se refiere a otro problema. –

1
  1. Agregar al manifiesto de Android: sharedUserId = "android.uid.system"

  2. Descargar Sistema de archivos: Firmas platform.x509.pem platform.pk8

enlace: https://android.googlesource.com/platform/build/+/android-8.0.0_r17/target/product/security/

  1. Iniciar sesión a través de termin al (java -jar signapk.jar platform.x509.pem platform.pk8 unsigned.apk signed.apk) (primero debe poner todos los archivos en una carpeta), o hacer un certificado con keytool-importkeypair para hacer google_certificate.keystore y luego

enlace de herramienta de claves-importkeypair descarga y explicación:

https://github.com/getfatday/keytool-importkeypair

  1. Después de que los pasos instalar el sistema de aplicación firmado a su dispositivo. ¡¡¡Buena suerte!!!
Cuestiones relacionadas