Cómo modificar la aplicación del juego, online y offline. ¿Cómo modificar, modificar esos archivos?
Descomprimir, empaquetar y modificar archivos APK
Creo que todos los que juegan con la computadora están familiarizados con los archivos APK. Es posible que tengas que lidiar con archivos APK todos los días, ya sea instalando o desinstalando herramientas de aplicaciones útiles, complementos, juegos divertidos, etc. . . ¿Sabes cuáles son estos archivos APK que te acompañan cada día? ¿Cómo hacerles algunos cambios? Por ejemplo: chinoizar la versión en inglés, modificar funciones, modificar descripciones de texto, eliminar anuncios, etc. Introduce el conocimiento básico y la estructura de APK, el descomprimido, empaquetado y firma de archivos APK, así como la modificación diaria de archivos APK.
1 Introducción. Archivo APK
APK es la abreviatura de Android Package, que es el archivo del paquete de aplicaciones de Android o el paquete de instalación de Android. Cada aplicación que se instale en la plataforma Android debe compilarse y empaquetarse en un archivo separado con el sufijo. apk. El archivo APK es un paquete compilado por el software profesional eclipse, que contiene código binario, recursos, archivos de configuración, etc. Se puede instalar transfiriendo directamente el archivo APK a su teléfono Android para su ejecución. En realidad, el archivo APK está en formato zip, pero la extensión se cambia a apk y se puede abrir directamente con un software de descompresión. Después de descomprimir mediante WinRAR o descomprimir, verá varios archivos y carpetas. Un archivo APK típico generalmente consta del siguiente contenido:
archivo de configuración global del programa AndroidManifest.xml
código de bytes Class.dex Dalvik
recurso binario compilado de arsc. archivos
META-INF\ La información de la firma se almacena en este directorio.
Res\ Este directorio guarda archivos de recursos.
Assets\Este directorio puede guardar algunos archivos de configuración.
Las siguientes son algunas descripciones básicas e introducciones a estos archivos y directorios.
AndroidManifest.xml
Este archivo es un archivo que toda aplicación debe definir e incluir. Describe el nombre de la aplicación, la versión, los permisos, los archivos de biblioteca a los que se hace referencia y otra información. Debes abrirlo antes de poder leerlo.
Archivo Classes.dex
Classes.dex es un archivo de código de bytes de Java generado al compilar el código fuente de Java. Dex es el nombre completo de Dalvik VM ejecuta, es decir, Android Dalvik Executor, que no es el código de bytes de Java ME sino el código de bytes de Dalvik.
resources.arsc
Archivo de recursos binarios compilado.
Directorio de metainformación
El directorio META-INF almacena información de firma para garantizar la integridad del paquete APK y la seguridad del sistema. Cuando eclipse compila y genera un paquete apk, verificará y calculará todos los archivos que se empaquetarán y colocará los resultados del cálculo en el directorio META-INF. Esto garantiza que los archivos del paquete apk no se puedan reemplazar a voluntad. Por ejemplo, después de obtener un paquete APK, si desea reemplazar una imagen, un fragmento de código o una información de derechos de autor, es básicamente imposible descomprimirlo, reemplazarlo y volver a empaquetarlo directamente. Esto dificulta la infección de virus y las modificaciones maliciosas, lo que ayuda a proteger la seguridad de su sistema.
Directorio Res
El directorio Res almacena archivos de recursos. Incluyendo imágenes, cadenas, etc.
Después del desempaquetado, casi todas las modificaciones y ediciones posibles están básicamente aquí.
Directorio de activos
El directorio de activos puede almacenar algunos archivos de configuración y el contenido de estos archivos se puede obtener a través de las API relevantes durante la ejecución del programa.
2. Desembalaje y embalaje.
Archivo APK
El archivo APK es un paquete de software compilado y generado por el software profesional eclipse. Puede encontrar muchos programas en Internet para descompilar el contenido de apk. Por ejemplo, puede utilizar la herramienta y el comando AXMLPrinter2 para desbloquear el manifiesto de Android APK: Java-jar axml Printer 2. El archivo APK empaquetado jar brinda mucha comodidad para la modificación y edición. Aquí hay una introducción a sus usos.
1) Paquete de software APKtool
El paquete de software APKtool consta de dos programas: apktool.jar y aapt.exe.
Además, se proporciona un archivo por lotes apktool.bat con el siguiente contenido:
Java-jar " ~ dp0 \ apk tool . jar " 1 2 3 4 5 6 7 8 9
Se requiere un entorno Java (versión 1.6.0 o superior) para ejecutar apktools.jar.
apktool.jar se usa para descomprimir y apktool.jar y aapt.exe se usan juntos para empaquetar.
2) Abre el archivo APK
Tomamos la solución Contacts.apk como ejemplo. Primero, copie Contacts.apk al directorio de trabajo actual (por ejemplo, Test). Escriba el comando en DOS
apktool d contacts
Aquí "d" significa decodificación. Persona de contacto. APK es el archivo apk que se va a descomprimir. ABC es el nombre del subdirectorio. Todos los archivos descomprimidos se colocarán en este subdirectorio.
3) Empaquetado de archivos APK
Escriba el comando en DOS
apktool b ABC nuevo contacto
Aquí "b". significa empacar.
ABC es un nombre de subdirectorio, generado durante la descompresión y utilizado para almacenar todos los archivos descomprimidos y modificados.
Nuevo contacto. APK es un nuevo archivo apk generado después del empaquetado.
4) Archivo de marco
Al descomprimir el archivo APK, apktool necesita un archivo de marco (framework-res.apk) para decodificarlo y empaquetarlo. Apktool ya incluye el marco estándar, por lo que no es necesario proporcionar archivos de marco adicionales al descomprimir la mayoría de los archivos APK. Sin embargo, algunos fabricantes utilizan sus propios archivos de marco. Para comprender este paquete, deben extraer el archivo framework (framework-res.apk) de su teléfono e instalarlo en su computadora. El comando de instalación es:
apktool if framework-res.apk
Después de la instalación, obtendrá: ~ \ apk tool \ framework \ 1. apk.
5) Desempaquetado, desempaquetado y procesamiento por lotes de firmas
En el uso real, se pueden procesar varios archivos APK. Es conveniente escribirlo como un archivo por lotes. El embalaje y la firma se pueden realizar de una sola vez.
Comando de desempaquetar por lotes:
Para i in (*.d i_i amp move_i modificar archivo.
amp copia i copia de seguridad del archivo original amp amp@echo Archivo [i] ¡El proceso de descompresión está completo!
Comandos de empaquetado y firma por lotes:
for /d i in (*) do cd.. amp ampjar bmodify_file\i amp ampJava-jar signapk .jar testkey x509 .PEM testkey. pk8modify_Files\i\dist\*. apk i amp ampren i Nuevo i amp amp mover nuevo modifico el archivo de firma amp amp@ echo ¡Terminé de reempaquetar la firma! amp ampcd modificar_file
3. Ejemplo de aplicación: edición y modificación después de abrir el APK.
¿Por qué abrir el archivo APK? Por supuesto, es necesario realizar las modificaciones necesarias en su contenido. ¿Modificar qué? Normalmente, si simplemente estás reemplazando la imagen, no es necesario descomprimirla. Abra el archivo APK con WinRAR y reemplácelo directamente. Pero si desea modificar contenido que no es una imagen, como texto, solo puede descomprimirlo y decodificarlo. Las siguientes tareas requieren descomprimir y empaquetar el APK. Esta es solo una introducción general; encuentre usted mismo los métodos de operación detallados y los tutoriales.
1) Software APK chino
En la carpeta res, podemos ver que hay muchas carpetas con el valor -***, que es el paquete de idioma. Valores es el paquete de idioma inglés, valores-zh es el paquete de idioma chino (incluidos Hong Kong, Macao y Taiwán), valores-zh-rCN es el paquete de idioma chino simplificado (solo incluye China continental), valores-zh-rTW es el paquete de idioma chino tradicional (Hong Kong, Macao y Taiwán). Además, los paquetes de idiomas de otras regiones son objetos simplificados y es posible que no los comprenda bien.
En la carpeta de valores suele haber archivos de idioma como arrays.xml y strings.xml. Estos archivos deben modificarse si desea localizarlos al chino. A veces es necesario modificar otros archivos xml, mírelos uno por uno con atención.
2) Modificar la etiqueta del icono
Cada archivo APK tiene una "etiqueta de icono". Después de instalar el programa APK en el teléfono, el texto de la etiqueta del ícono se mostrará debajo del ícono. El contenido de esta etiqueta de icono se puede modificar. Busque strings.xml en \res\values y modifique una línea:
ltstring name = " app _ name " etiqueta gticon
Por ejemplo:
De manera similar, si es un widget, debe modificar el nombre del widget.
Nota: No modifique el apk en sistema/aplicación, porque el archivo odex correspondiente debe modificarse al mismo tiempo.
3) Eliminar anuncios APK.
Hay muchas aplicaciones APK con anuncios. Para eliminar anuncios en el programa, debe modificar el contenido relacionado con los anuncios en el archivo main.xml. Busque el archivo main.xml en el directorio \res. Generalmente en el directorio \layout, a veces en otros directorios. Incluso, a veces no existe el archivo main.xml y las líneas publicitarias se colocan en otros archivos xml. Sólo se puede buscar cuidadosamente un archivo a la vez. En cualquier caso, inspeccione su contenido y verá comandos similares a los que se muestran a continuación. Esta es una exhibición publicitaria.
ltcom . admob . Android . anuncios . vista de anuncio Android:id = "@id/ad" Android:layout_width = "fill_parent" Android:layout_height = "wrap_content" admobsdk :background color = " # ff 000000 " admobsdk : text color = " # ffffffff " admobsdk : palabras clave = " aplicación Android "/ gt;
Enmendado de la siguiente manera:
ltcom . admob . Android . ads . ad view Android : id = " @ id/ad " Android: diseño_ ancho = " 0.0 dip " Android: diseño_ altura = " 0.0 dip " admobsdk: color de fondo = " # ff 000000 " admobsdk: color de texto = " # ffffffff " admobsdk: palabras clave = " Aplicación de Android "/ gt;
Como puede ver, la clave es cambiar fill_parent a 0.0dip, cambiar wrap_content a 0.0dip y dejar los demás sin cambios. Este cambio no es para espacios publicitarios y, por supuesto, no verá anuncios.
4) Modifique la batería de la pantalla con una precisión de 1.
En XT502, solo se muestran 7 archivos de forma predeterminada: 0, 10, 20, 40, 60, 80, 100. Al modificar framework-res.apk, se puede cambiar la precisión de la visualización. Sin embargo, en el XT502, se ha demostrado que la mejor precisión posible en el mundo real es de sólo 10. El trabajo de modificación es el siguiente:
(1) Abra el marco package-res.apk
(2) Modifique y agregue el ícono de estado de la batería
( 3) Modificar el archivo stat_sys_battery.xml
(4) Modificar el archivo XML stat_sys stat_sys_battery_charge
(5) Empaquetado
(6 ) Extraiga stat_sys_battery.xml, stat_sys_battery_charge.xml, resources.arsc y un directorio de iconos: drawable-mdpi.
(7) Vuelva a ensamblar framework-res.apk
5) La información de la barra de estado notifica el color del texto que se modificará.
El color del texto de la notificación de información de la barra de estado está controlado por el archivo colours.xml en res\values en el archivo framework-res.apk, por lo que solo necesitamos modificar el archivo colours.xml . Además, este archivo también controla el color del texto de la barra desplegable, que se puede modificar.
Abre el archivo colours.xml con un editor de texto y encuéntralo.
ltcolor name = " HW _ status bar _ time " gt;# ff000000 lt/color gt
Cambie esta oración a:
La información de la barra de estado; El color del texto de notificación cambia de negro a blanco.