Cómo actualizar la firma oficial de Android
Método de firma
1) Firmar con el complemento eclipse
a) Firma de depuración
El complemento eclipse proporciona al programa un permiso DEBUG por defecto Firma. Los programas con esta firma no se pueden lanzar al mercado. Esta firma es válida por un año, no podrá generar un archivo apk. el almacén de claves de depuración y el sistema generará un archivo apk de un año para usted. Nueva firma
b) El desarrollador genera claves y firmas
Haga clic con el botón derecho en el nombre del proyecto y seleccione Android. Herramientas en el menú y luego seleccione Exportar paquete de aplicación firmado... para usar eclipse automáticamente Defina el certificado y fírmelo
c) Los desarrolladores exportan paquetes sin firmar
Haga clic con el botón derecho en el proyecto nombre, seleccione Herramientas de Android en el menú y luego seleccione Exportar aplicación firmada? Paquete… Exporte el paquete sin firmar y luego fírmelo a través de la línea de comando
2) Firme usando la línea de comando
Utilice las herramientas estándar de Java keytool y jarsigner para generar certificados y firmar el programa
a) Generar firma
$ keytool -genkey -keystore keyfile -keyalg RSA -validity 10000 -alias yan
Nota: la validez es el número de días, el archivo de claves es la clave generada Archivos almacenados, yan es la clave privada, RSA es el algoritmo de cifrado especificado (se puede usar RSA o DSA)
b) Firmar el archivo apk
$ jarsigner -verbose -keystore keyfile -signedjar firmado.apk base.apk yan
Nota: keyfile es el archivo donde se almacena la clave generada , firmado.apk es el apk firmado, base.apk es el apk sin firmar y yan es la clave privada
c) Compruebe si un apk ha sido firmado
$ jarsigner -verify my_application.apk
d) Optimización (se requiere optimización de alineación después de firmar)
$ zipalign -v 4 your_project_name-unaligned.apk your_project_name.apk
3) Firma compilada en el código fuente
a) Utilice la firma predeterminada en el código fuente
La firma predeterminada se utiliza generalmente al compilar en el código fuente. Puede ver el comando de firma ejecutando.
$ mm showcommands en un determinado directorio de código fuente
Android proporciona un programa firmado signapk .jar, el uso es el siguiente:
$ signapk publickey.x509 [.pem] privatekey.pk8 input.jar output.jar
*.x509.pem es la clave pública en formato x509, pk8 Para la clave privada
Hay cuatro conjuntos de claves predeterminadas firmas disponibles en el directorio build/target/product/security: medios compartidos de la plataforma testkey (consulte README.txt para obtener más detalles). Hay un campo LOCAL_CERTIFICATE en Android.mk en la aplicación, que especifica qué clave usar para la firma, no. especificado
De forma predeterminada, se utiliza testkey.
b) Firma automática en el código fuente
Android proporciona un script mkkey.sh (build/target/product/security/mkkey.sh) , use Para generar una clave, después de la generación, especifique qué firma usar a través del campo LOCAL_CERTIFICATE en Android.mk en la aplicación
c) Introducción a mkkey.sh
i. key
p>openssl genrsa -3 -out testkey.pem 2048
Donde -3 es el parámetro del algoritmo, 2048 es la longitud de la clave y testkey.pem es la salida archivo
ii. Convertir al formato x509 (incluido el período de validez del autor, etc.)
openssl req -new -x509 -key testkey.pem -out testkey.x509.pem -days 10000 -subj '/C=US/ST= California/L=MountainView/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
iii. /p>
openssl pkcs8 -in testkey .pem -topk8 -outform DER -out testkey.pk8 -nocrypt
Aquí se especifica convertir el formato a PKCS #8, lo que significa que no hay cifrado. , por lo que no es necesario introducir una contraseña al iniciar sesión