2012-08-30 7 views
6

Me gustaría incluir datos adicionales (por usuario) en cada archivo APK descargado. En otras palabras, tengo un archivo APK existente en el servidor y me gustaría:¿cómo puedo reemplazar el archivo XML en APK?

  • reemplazar el archivo /res/user_info.xml en APK existente con el archivo XML generado dinámicamente
  • actualizar y volver a firmar todo el paquete antes de usuario descarga que

Más información: sé que se puede hacer utilizando aapt, apktool, jarsigner, ... el problema es que la documentación es bastante pobre y no pude encontrar (o desarrollar) una técnica de trabajo para volver -pack el archivo APK. Por ejemplo, aapt siempre coloca el archivo XML en la ruta raíz (/) sin importar lo que haga. Tampoco estoy seguro de qué recursos deben actualizarse para que el archivo APK sea válido nuevamente. Además, se compilan los archivos XML existentes en /res/. ¿Tengo que hacer eso también con mi archivo XML? Si es así, ¿cómo hago eso? Si no, ¿debería poner mi archivo XML en /res/raw/?

Pregunta: ¿cómo reemplazo un archivo XML en APK y lo vuelvo a empaquetar? ¿Qué pasos son necesarios y qué herramientas uso?

+0

bueno, apk es solo un archivo zip con carpeta estructurada/archivos. para que pueda descomprimirlo y hacer lo que quiera y comprimirlo de nuevo con la extensión apk. –

+1

En teoría sí, pero en la práctica probablemente también necesite compilar archivos XML, agregarlos a la lista de recursos, volver a firmar, ... y estas son solo cosas que conozco. Entonces me pregunto qué es todo el proceso. – johndodo

+0

No sé qué tipo de información guarda en el archivo xml, pero si solo cambia los datos de valor de xml, no la clave, debería funcionar. –

Respuesta

3

En este writing puede encontrar los pasos básicos para desempaquetar y empaquetar un archivo apk.

Básicamente;

= Uso apktool.bat d -s sample.apk .\sample\ de recepción solamente recursos del apk. (En su situación no hay necesidad de decodificar parte de origen)

= Añadir/editar/reemplazar los recursos necesarios.

= Use apktool.bat b .\sample\ .\sample_edited.apk para construir cambiado apk.

= Generar una clave RSA de 2048 para firmar apk si ya no tiene uno: keytool -genkey -v -keystore my.keystore -alias myandroidalias -keyalg RSA -keysize 2048 -validity 20000

= apk sesión con generada clave jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my.keystore .\sample_edited.apk -signedjar .\sample_signed.apk myandroidalias

= y alinear apk firmado con límite de 4 bytes zipalign.exe -v 4 .\sample_signed.apk .\sample_aligned.apk (zipalign viene con el android-sdk)

Cuestiones relacionadas