Cómo descompilar y aplicar temas a los APK de Android



Ahora presione 'Reemplazar todo', y cambiará todos los @android: color / white para usar background_holo_dark en su lugar. Ahora continúe desplazándose por todo el .xml, buscando cualquier android: cadenas de fondo que estén usando un valor hexadecimal (#fffffff) o cualquier otra cosa que no sea la que acabamos de reemplazar. Para los que encuentre, cambie las cadenas para usar la nueva (abs__background_holo_dark).

Así que cambiamos el fondo, ahora vamos a cambiar el color del texto. Así que sigue el mismo procedimiento que acabamos de hacer, pero esta vez haz CTRL + F para 'android: textColor'. Obtendrá alrededor de 166 líneas encontradas.



Verás cosas como 'android: textColor =' # ffbbbbbb ', etc. Así que mira dentro de Colors.xml nuevamente y necesitamos averiguar qué líneas reemplazar por el color del texto.



Puede ver android: textColor = ”# ffbbbbbb”, “#ffffffff”, “# ff717171” y “#ffcccccc” en la captura de pantalla y en los resultados de búsqueda en Note ++. Abra su Colors.xml nuevamente ahora para encontrar qué línea queremos usar para el color del texto.



Así que regrese al primer .xml y haga CTRL + H para el diálogo Reemplazar nuevamente. Ahora copia y pega la cadena 'android: textColor =' # ffbbbbbb 'en la parte superior e inferior, y cambia la línea inferior a' android: textColor = '@ color / text'.

Ahora, una vez más, busque en todas las líneas android: textColor y cambie cualquier cosa que tenga un valor hexadecimal en la cadena. Finalmente, cuando llegue al archivo styles.xml, querrá eliminar el inverso de algunas líneas, comenzando en la línea 260 y continuando hacia abajo durante algunas líneas. Así que elimine el 'inverso' de esas cadenas.

A continuación, verá algunos valores hexadecimales en las líneas 527, 536, 573, 579, 585, 601 y algunas otras. Reemplace de (#ffffffff) a (@ color / text).



Presione CTRL + F para buscar en Notepad ++ para cacheColorHint , divisor , @ * android: color / y Inverso .

CacheColorHint es el fondo de desplazamiento, por lo que debemos asegurarnos de que estén usando nuestro color de fondo. Los divisores se explican por sí mismos y podemos cambiar sus valores hexadecimales si lo desea. Lo único es que no debes tocar nada que apunte a @drawable. Suelen ser imágenes almacenadas como archivos .png en otro lugar de la carpeta .apk.

Cuando buscas ' inverso' , mostrará referencias a textAppearanceInverse. Debe hacer doble clic en cada uno de estos y eliminar el inverso de esas cadenas.

Finalmente, la búsqueda de @ * android: color / simplemente verificará si nos perdimos alguna edición del marco. Si encuentra algo que dice “android: popupBackground”> @ * android: color / white ”, debe cambiarlo a“ android: popupBackground ”> @ color / abs__background_holo_dark”. Esto incluye la línea 911, que puede resultar confusa porque ya apunta a android: color / black.

A continuación, abriremos res / values ​​/ colors.xml y lo cambiaremos para que se vea así:

A continuación, res / values ​​/ styles.xml y desplácese hacia abajo hasta la línea 328. Cámbielo así:

() debe cambiarse a ()

Haga lo mismo para la línea 479, cambiando el ' ligero' a ' negro' .

Ahora vaya a res / values-v11 / styles.xml y elimine el ' ligero' En donde dice ' Holo.Light ” .

A continuación, abrirá res / values-v14 / styles ahora, que contiene muchas cadenas. Entonces, en las primeras 46 líneas, desea eliminar cualquier ' Ligero' y ' Inverso' referencias, y luego cambie los padres en las líneas 53 y 54 a '@ * android: style / Theme.Holo'.

En la línea 69, en el padre del lado derecho, elimine Light del padre @ * android: style / Theme.Holo.Light.Dialog.

Esto es mucho trabajo, ¿verdad? ¡Tal vez de ahora en adelante apreciarás más los temas y las máscaras de las aplicaciones!

A continuación, entraremos en el res/color carpeta. Hay algunos archivos de texto que apuntan a negro. Abra res / colors / action_mode_item_text_color_state_list.xml

Así es como se ve en stock. A continuación se muestra cómo debe hacerlo.

Debe realizar esos mismos cambios en los siguientes archivos xml dentro de la carpeta / res / colors: Bottom_button.xml, Button_update.xml, Filelist_text_name.xml, Filelist_text_small.xml, Link_button.xml, Local_filelist_text_name.xml, Local_filelist_bottom_text_name.xml, Local_filelist_text_text_small.xml, Local_filelist_text_text_small.xml, Local_filelist_text_text_small.xml xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml.

Cuando haya terminado con ellos, abra / res / drawable y habrá xmls que controlan el color de fondo. Así que revísalos y haz que se vean así:

Aplique los mismos cambios a todos los demás archivos drawable.xml.

Ahora abra el test.apk y presione CTRL + clic izquierdo para resaltar smalli y AndroidManifest, luego haga clic derecho y 'Editar con Notepad ++' nuevamente. Acepte todos los archivos Smalli de 1999. Cuando se cargue, haga una búsqueda CTRL + F para -0x100 (negro)

Obtendrá alrededor de 8 resultados, y el que desea es smalli / com / dropbox / android / activity / TextEditActivity.smali, en la línea 599. Haga doble clic en esa línea.

La línea 599 contiene -0x100 y la línea 601 tiene “SetTextColor”. También hay una variable que coincide con la línea 599. Entonces, para explicar brevemente, -0x100, -0x1000000 e incluso 0x0 significan negro, -0x1000000 también es negro e incluso 0x0. Cambie la línea 599 quitando los dos 0 del 100 y eliminando el / high16 de esta manera:

A continuación, buscaremos @ * android: style, pero en pequeño. El xml contendrá un '0' extra después de la x, pero en smalli no lo usamos. Debe ser '0x103004f' en lugar de '0x0103004f'.

Haga una búsqueda en Notepad ++ para @ * android: style / que contiene 0x103.

El segundo resultado es 'const v7, 0x1030073'. Busque eso en su public.xml desde framework-res.apk nuevamente. Verá que es la identificación de 'Theme.Holo.Light.Dialog'. Deberá cambiarlo al ID público del estilo de tema opuesto.

Dado que este es Theme.Holo.Light.Dialog, desea convertirlo en Theme.Holo.Dialog. Theme.Holo.Dialog tiene una identificación de '0x103006f'. Eso cambiará un cuadro de alerta de diálogo emergente para usar un tema basado en Holo más oscuro en lugar de un tema basado en Holo.Light más claro.

El siguiente que necesitamos cambiar es '0x103006e', que es Theme.Holo.Light. Así que adelante, conviértalo en el estilo del tema opuesto. En su public.xml de framework-res.apk, verá la identificación de Theme.Holo es 0x0103006b. así que cambiemos esa línea para que se vea así:

Solo quedan 2 más de estos por revisar. El siguiente es '0x103000c', que es para Theme.Light en public.xml. Lo contrario de eso es Theme.Black, no ThemeHolo. Entonces, en public.xml, verá la identificación de Theme.Black es '0x01030008'; cámbielo para que se vea así:

En otras aplicaciones, habría otras cosas para editar y cambiar, y con suficiente práctica podrás cambiar el tema de casi cualquier cosa. Pero por ahora, hemos terminado con todos los bits de código ( ¡finalmente!) .

Entonces, ahora puede abrir el script desde Apk Multi Tool y presionar 12 para compilar la aplicación. Si se muestra algún error, puede intentar buscar dentro del registro de errores lo que salió mal, pero lo más probable es que haya cometido un error tipográfico u otro error durante la edición del código.

Cuando se complete la compilación, presione 2 y luego 13 para volver a firmar la aplicación.

La aplicación estándar contiene una carpeta llamada 'Plantillas'; debes arrastrarla a tu apk sin firmar usando algo como 7zip. Copie unsigned.apk en la carpeta 'place-apk-here-for-signing' dentro de Apk Multi Tool. Ahora presione 18 en el script del terminal para firmar por lotes las aplicaciones en esa carpeta. Cuando haya terminado, la secuencia de comandos se cerrará automáticamente. ¡Ahora puede cargar el .apk en su dispositivo!

6 minutos de lectura