Como experimento, me gustaría usar la clave de plataforma de mi plataforma Android personalizada para firmar un APK arbitrario, que se crea a través del NDK. ¿Cuál es el proceso para hacer esto?Android: ¿después de generar la fuente de la plataforma, cómo firmar APK arbitraria con la clave de la plataforma?
Respuesta
Si tiene su clave de plataforma/par de certificado (.pk8 + x509.pem). Que se puede encontrar en build/target/product/security en el sdk pulbic.
Puede utilizar el SignApk.jar desde la línea de comandos
java-jar SignApk.jar platform.x509.pem platform.pk8 Application.apk Application_signed.apk
O para facilitar la automatización, puede importar el par clave/cert en su archivo java keystore, con el keytool-importkeypair, y usar un makefile o eclipse para firmar.
herramienta de claves-importkeypair -k ~/.android/debug.keystore -p androide -pk8 platform.pk8 -cert platform.x509.pem -alias plataforma
El signapk.jar (todo en minúsculas) archivo mencionado en aprock' answer se puede encontrar en prebuilts/sdk/tools/lib/signapk.jar
(o out/host/linux-x86/framework/signapk.jar
).
A continuación describiré cómo administrar el almacén de claves utilizado por Eclipse y ant release
.
El siguiente comando toma el archivo de clave platform.pk8 y el certificado X509 platform.x509.pem y emite la clave de descifrado en el material tmp.p12. El nombre platformkey se utiliza para
openssl pkcs8 -inform DER -nocrypt -in platform.pk8 | \ openssl pkcs12 -export -in platform.x509.pem -inkey /dev/stdin \ -name platformkey -password pass: -out tmp.p12
Eclipse y ant debug
utilizar el almacén de claves en ~/.android/debug.keystore que está bloqueado con la contraseña android
. (También puede especificar otro archivo de almacén de claves, por ejemplo, ~/.android/mykeys.keystore
). El siguiente comando almacena el material clave de tmp.p12 en el almacén de claves (sin una contraseña para las claves, si lo desea, edite -srcstorepass ''
debajo)):
keytool -importkeystore -deststorepass android -srckeystore tmp.p12 \ -srcstoretype PKCS12 -srcstorepass '' -destkeystore ~/.android/debug.keystore
En este punto, se puede eliminar el archivo tmp.p12 porque ya no es necesario.
Con el fin de comprobar lo que está en el almacén de claves, puede ejecutar el siguiente keytool
comando (la salida se muestra en la línea a partir de entonces):
$ keytool -list -keystore ~/.android/debug.keystore -storepass android ... platformkey, Nov 23, 2013, PrivateKeyEntry, Certificate fingerprint (SHA1): 12:34:56:(stripped):AB:CD:EF
Cuando ya no se necesita la llave, puede ser eliminado con:
keytool -delete -keystore ~/.android/debug.keystore -storepass android -alias platformkey
En el archivo local.properties
, poner (si se omite el key.*.password
opciones, usted tiene que introducirla cada vez que se firma el APK):
key.store=${user.home}/.android/debug.keystore
key.alias=platformkey
key.store.password=android
key.alias.password=
Ahora puede ejecutar ant release
para firmar su APK usando la clave de plataforma que almacenó en un almacén de claves.
- 1. ¿Cómo puedo encontrar la fuente de la plataforma Android 2.3.3?
- 2. ¿La plataforma Android es compatible con SpatiaLite?
- 3. ¿Cómo habilitar la depuración de SSL en la plataforma Android?
- 4. Tamaño máximo de la aplicación de la plataforma android & BADA
- 5. codificación de la plataforma maven
- 6. ámbitos de la plataforma qmake
- 7. Disposición de la plataforma Netbeans
- 8. QWebView HTML5 GeoLocation en la plataforma Android
- 9. Portando aplicaciones Java a la plataforma Android
- 10. Error de segmentación al utilizar dlclose (...) en la plataforma Android
- 11. ¿Cómo describirías el estado actual de la plataforma Android?
- 12. Perdió la clave privada para firmar la apk de Android. ¿Se puede lanzar la aplicación en Android Market?
- 13. ¿Cómo probar la plataforma de Windows 7?
- 14. Error [INSTALL_FAILED_CONTAINER_ERROR] al intentar instalar el paquete apk de Android utilizando adb para la plataforma 4.1
- 15. Distribución histórica de las versiones de la plataforma Android
- 16. Optimizaciones de destino de la plataforma .Net
- 17. Rubygems: ¿Cómo agrego la dependencia específica de la plataforma?
- 18. Haskell para la plataforma .net?
- 19. ¿La plataforma WCF es independiente?
- 20. Cómo cancelar void * con la invocación de plataforma
- 21. ¿La plataforma de archivos objeto es independiente?
- 22. detección de la plataforma en Cmake
- 23. Uso de la plataforma multipista Python
- 24. Problemas con la importación de las clases de la plataforma Android
- 25. Cifrado RSA en Java: ¿Problemas con la plataforma cruzada?
- 26. .NET links, biblioteca específica de la plataforma
- 27. Reemplace el kernel preconstruido en la plataforma Android Source
- 28. Mapeo de la memoria independiente de la plataforma [archivo] IO
- 29. Cómo determinar la plataforma del sistema operativo con WMI?
- 30. Obtener el separador de ruta de la plataforma con Boost.Filesystem
También debe eliminar la carpeta META-INF en apk = zip -d my_application.apk META-INF/\ * – kreker