Cómo generar una versión de lanzamiento de Android
1. Generar archivos de claves de cifrado
Para firmar en Android, es necesario generar cuatro tipos de archivos de claves.
a) clave de lanzamiento
b) medios
c) compartir
d) plataforma
Tomaremos Releasekey como ejemplo para presentar brevemente el proceso de generación.
1) Ingrese al directorio /android_src/development/tools.
/development/tools$ ls
apkcheck etc1tool hosttestlib jdwpspy makedict mkstubs
axl findunused idegen line_endings make_key Monkeyrunner Zoneinfo
2) Uso La herramienta make_key genera firmas. Utilice la herramienta make_key para generar un archivo de firma
desarrollo/herramientas$ sh make_key releasekey '/C=CN/ST=JiangSu/L=NanJing/O=Company/ OU=Department/CN=YourName/emailAddress =SuDirección de correo electrónico'
Ingrese la contraseña para "clave de liberación" (en blanco significa ninguna; la contraseña será visible):: mypassword lt; mypassword lt ------- Establecer contraseña
Crear plataforma. pk8, la contraseña es [micontraseña]
Generar clave privada RSA, modo largo de 2048 bits
.............
................................................. .......
e es 3 (0x3)
Hay una nota al margen sobre los parámetros de make_key. El primer parámetro es el nombre de la clave que se generará y el segundo parámetro es información sobre su empresa.
Los nombres de las claves son fáciles de entender. Son los cuatro tipos de claves mencionados anteriormente. Hay muchos parámetros para la información de la empresa y sus significados son los siguientes:
C. --- gt; nombre del país (código de 2 letras)
ST ---gt; nombre del estado o provincia (parte)
CN ---gt; , su nombre o nombre de host del servidor)
emailAddress ---gt; Dirección de correo electrónico de contacto
De esta manera, se genera un conjunto de claves de publicación Cómo generar el otro. tres tipos de claves Más o menos lo mismo.
Los resultados son los siguientes:
/development/tools$ ls
makedict media.pk8 mkstubs platform.pk8 releasekey.pk8shared.pk8
make_key media.x509.pem platform.x509.pem releasekey.x509.pemshared.x509.pem
*.pk8 es la clave privada generada, *.x509.pem es la clave pública , están en parejas Aparecen.
2. Copie los archivos pk8 y x509.pem al directorio proveedor/Modul/security/product_modul
/android_src/vendor/Modul/security/product_modul$ cp.... / .../.../.../development/tools/*.pk8 ./
/android_src/vendor/Modul/security/product_modul$ cp ./.../... / .../development/tools/*.pem .
Esta parte no es obligatoria, pero es una buena idea. Por motivos relacionados con el proyecto, los números de producto y modelo serán reemplazados por Modul y product_modul.
3. Regrese al directorio raíz android_src
/android_src/vendor/Modul/security/product_modul$ cd ..../.../.../... p>
Debes pensar que este paso es redundante e innecesario, pero resulta que es necesario mencionar este paso, porque la operación en el paso 5 debe realizarse en el directorio raíz, de lo contrario se producirá un error. . Hasta ahora he sufrido mucho.
4. Sistema de compilación
/android_src$ make -j4 PRODUCT-product_modul-user dist
Hay dos PRODUCT-product_modul-user y dist más después de parámetros, el proceso de compilación es diferente de la compilación normal. Una vez completada la compilación, se generará un archivo zip que comienza con product_modul-target_files en el directorio /android_src/dist/. Este es el sistema de archivos que necesitamos firmar.
5. Comience a firmar
android_src$ ./build/tools/releasetools/sign_target_files_apks -d seller/Modul/security/product_modul/ out/dist/product_modul-target_files.zip out/ dist/signed_target_files.zip
ERROR: no se ha especificado ninguna clave para:
CalendarWidget.apk
Contacts_Yellowpage.apk
SnsAppMain.apk
fbandroid-1.5.0.apk
AnalogClockWidget.apk
MessageWidget.apk
NewsWidget.apk
Las instrucciones anteriores se refieren al uso de la herramienta sign_target_files_apks para firmar el archivo product_modul-target_files.zip usando la clave en proveedor/Modul/security /product_modul/ y a colocar el resultado de la firma en el archivo /dist/signed_target_files.zip.
A juzgar por los resultados de la firma anteriores, la firma no fue exitosa porque algunos programas apk se firmaron o no se pueden encontrar las claves correspondientes.
Esto no es difícil para nosotros, podemos configurar el filtrado para no firmar los programas anteriores. El método específico es el siguiente:
Utilice el parámetro "-e lt;apknamegt;=" para filtrar estos programas.
android_src$ ./build/tools/releasetools/sign_target_files_apks -d seller/Modul/security/product_modul/ -e CalendarWidget.apk= -e Contacts_Yellowpage.apk= -e fbandroid-1.5.0.apk= -e AnalogClockWidget.apk= -e MessageWidget.apk= -e NewsWidget.apk= out/dist/product_modul- target_files.zip out/dist/signed_target_files.zip
Ingrese la contraseña para proveedor/módulo/seguridad/ product_modul//media keygt;----- ingrese la contraseña
Ingrese la contraseña para proveedor/Modul/security/product_modul//platform keygt;----- ingrese la contraseña p>
Ingrese la contraseña para proveedor/Módulo/seguridad/product_modul//platform keygt;----- ingrese la contraseña
p>
Ingrese la contraseña para proveedor/Módulo/seguridad /product_modul//releasekey keygt;lt;-----Ingrese la contraseña
Ingrese la contraseña para el proveedor/Módulo/security/product_modul/shared keygt;-----Ingrese la contraseña para el proveedor/Módulo /shared keygt;-----Ingrese la contraseña
REESCRIBIR RECUPERACIÓN/RAMDISK/default.prop:
Reemplazar: ro.build.tags=test-keys
con: ro.build.tags=release-keys
Sin firmar: CalendarWidget.apk
NO firma: Contacts_ yellowpage.apk
Firma: Mms.apk
Firma: Firma: SoundRecorder.apk
Firma:
Firmada: AccountAndSyncSettings.apk
Firmada: Cámara:. apk
............. ................................. .................................... ..
Reescribir SISTEMA/compilación. prop:
Reemplazar: ro.build.tags=test-keys
con: ro.build.tags= release-keys
Reemplaza: ro. .description= claves de prueba
con: ro.build.description= claves de liberación
Reemplaza: ro build.fingerprint= ....
........................
Reemplazo: ro.build.fingerprint=.......... .................
Firma: framework-res.apk
hecho.
En este Punto, firma de Android completada.
6. Generar archivos de imagen
android_src$ ./build/tools/releasetools/img_from_target_files out/dist/signed-target-files.zip out/dist/signed-img.zip
Crear boot.img...
Crear recovery.img...
Crear system.img...
Crear userdata.img...
Limpieza...
Completado.
Utilice la herramienta img_from_target_files para generar el archivo firmado-img.zip. El archivo firmado-img.zip contiene archivos boot.img, userdate.img, system.img, etc.
7. Descargue el archivo firmado-img.zip a través de fastboot
Actualice firmado-img.zip a través de fastboot
Puede descargar el archivo de sistema firmado al teléfono móvil a través de fastboot.