¿Puede un APK ser reempaquetado después de una edición de texto menor?

Estoy creando un software que guiará al usuario a través de unos pocos pasos, para publicar una aplicación de Android (archivo APK).

La forma en que estoy haciendo esto, es que el archivo APK ya está compilado, y todo lo que necesito hacer es reemplazar un archivo XML en el paquete, y eso cambiará el comportamiento de la aplicación. Mi gran problema ahora, es que desempaquetar el archivo apk, y hacer cualquier pequeña edición de texto, y luego embalar de nuevo, rompe la firma y evita que la aplicación se ejecute en cualquier dispositivo, dando un mensaje de que la firma es incorrecta.

¿Como puedo resolver esto? Quiero abrir el APK con seguridad, escribir algo en un archivo de texto y cerrarlo de nuevo. Tenga en cuenta que esta operación se realizará en la computadora del usuario (después de que él compre nuestra aplicación) por lo que estamos buscando una herramienta de línea de comandos sin requerimientos especiales como JDK.

¿Alguna ayuda?

Ok llegué a la mejor solución "probada": la publicaré aquí para guardar otras horas de desarrollo de google. El único inconveniente es que voy a requerir al cliente para instalar JDK en su máquina, por desgracia. La razón es porque no encontré ninguna herramienta de firma apk que funcione puramente en Windows, sin depender de JDK.

Tengo mi aplicación Android creada con Air, por lo que esto hace las cosas fáciles para mí – todos los archivos de aire se tratan como recursos de recursos. Así que tiene su archivo de archivo APK listo.

Una vez que tenga sus modificaciones listas, póngalas dentro de una carpeta temporal denominada "assets". Utilizará la herramienta de línea de comandos 7-zip (gratuita: http://sourceforge.net/projects/sevenzip/ ) para actualizar el contenido de su apk. Para que funcione con su apk tendrá que cambiar el nombre de la extensión de su apk a zip – no se preocupe, lo volverá a cambiar más tarde.

Ahora desde un archivo .bat (o directamente en el símbolo del sistema) desde la ubicación que contiene tanto el archivo apk (zip extendido) como la carpeta de activos, llamará a: 7za u APK-file.zip assets

Ahora su archivo apk se actualiza. Cambiar el nombre a la extensión .apk

Ahora utilice la herramienta signAPK desde aquí https://code.google.com/p/signapk/ y tenga en cuenta que este es el único paso que requiere JDK instalado. También asume que usted tiene sus archivos llave listos (substituya los maniquíes incluidos en el paquete). Extraiga el contenido del archivo y llame a: java -jar signapk.jar key.x509.pem key.pk8 [android_app] .apk [signed_android_app] .apk

Al final, puede encontrar el tamaño de archivo firmado apk drammaticamente aumentado. Así que necesitas usar la herramienta zipAlign del android: (darn, no puedes publicar el enlace ya que los nuevos usuarios solo pueden publicar un máximo de dos hipervínculos) llamarás al comando: zipAlign -c 4 [signed_android_app] .apk

Y voila! Esa es la ruta que estoy tomando.

Si alguien encuentra una manera de hacer el proceso de firma sin depender de JDK (suponiendo que los archivos de claves estén listos) por favor comparta.

¿Como puedo resolver esto?

No lo haces. Si modifica un archivo APK, por cualquier medio, debe volver a firmarlo.

Los archivos apk de Android deben estar firmados. Esa firma demuestra que el contenido del apk NO HA SIDO MODIFICADO de lo que fue publicado inicialmente. (Que es exactamente lo que está haciendo.) La firma, al mismo tiempo, también demuestra quién es el autor.

Así que en un archivo apk firmado normal:

  1. Sabes quién es el autor. (Incluso si no es algo que usted como un humano puede entender.)
  2. Usted sabe que el contenido fue puesto allí por el autor, y no modificado desde entonces.

Esta es una medida de seguridad clave construida en Android, existe por muy buena razón, y no puede ser superado. Evita que las cosas como los virus se incrusten dentro de archivos apk inocentes.

  • JavaCard 3 en el mundo real?
  • Cómo crear autenticación REST para aplicaciones móviles de iOS y Android
  • Las etiquetas de aceptación y captura de archivos fallan en la vista web de cruce de peatones
  • ¿Necesito un dispositivo Android real para desarrollar una aplicación de Android para el mercado?
  • ¿Es la mejor práctica para subir archivos a CDN mientras desarrolla aplicaciones móviles?
  • ¿Cómo interactuar con el menú USSD?
  • Cómo subir FILE_URI con Google Drive API: Insertar archivo
  • La relación entre las funciones "onBodyLoad () / onDeviceReady ()" de Phonegap y las funciones "$ (document) .ready ()" de JQuery,
  • Carga de CSS móvil si el usuario está en Android
  • Mezcla de cordova y actividades nativas en Android
  • ¿Por dónde empezar con PCI-DSS en una aplicación para móviles?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.