¿Cómo puedo reemplazar el archivo XML en APK?

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:

  • Reemplace el archivo /res/user_info.xml en APK existente con un archivo XML generado dinámicamente
  • Actualizar y volver a firmar el paquete completo antes de que el usuario lo descargue

Más información: Sé que se puede hacer usando 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 a empaquetar el archivo APK. Por ejemplo, aapt siempre pone el archivo XML en la ruta raíz ( / ) sin importar lo que haga. También estoy seguro de qué recursos deben actualizarse para que el archivo APK sea válido de nuevo. Además, los archivos XML existentes en /res/ se compilan – ¿necesito hacer eso con mi archivo XML también? Si es así, ¿cómo hago eso? Si no, ¿debería poner mi archivo XML en /res/raw/ ?

Pregunta: ¿Cómo puedo reemplazar un archivo XML en APK y volver a empaquetarlo? ¿Qué pasos se necesitan y qué herramientas utilizo?

En este escrito usted puede encontrar los pasos básicos de desempacar y embalar un archivo apk.

Básicamente;

= Utilice apktool.bat d -s sample.apk .\sample\ para descodificar solamente los recursos del apk. (En su situación no hay necesidad de descodificar la parte de origen)

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

= Utilice apktool.bat b .\sample\ .\sample_edited.apk para crear apk modificado.

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

= Signo apk con la clave jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my.keystore .\sample_edited.apk -signedjar .\sample_signed.apk myandroidalias

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

  • ¿Cómo obtengo un archivo apk desde un dispositivo Android?
  • ¿Cómo puedo exportar un apk firmado con el certificado de depuración?
  • Error de Android: No se pudo instalar * .apk en el dispositivo *: timeout
  • APK construido por xamarin en mac no está instalando
  • "Salida de escritura de problemas: Demasiadas referencias de campo: 70185; Max es 65536. Puede intentar usar la opción --multi-dex "al crear un proyecto de Android
  • Android Studio 0.8.14: Duplicar archivos durante el empaque de APK
  • ADT (Eclipse) vs. Android Studio: ¿Cuánta diferencia de tamaño de archivo APK es normal?
  • ¿Cómo puedo acceder a la versión alpha de mi aplicación de Android en Google Play?
  • Android APK no instalado en el dispositivo
  • Cargas lentas en el emulador de Android
  • ClassNotFoundException en la compilación de apk con maven
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.