Com es descompilen i es temen els APK d'Android



Feu clic a 'Substitueix tot' i canviarà tots els @android: color / white per utilitzar el background_holo_dark. Ara continueu desplaçant-vos per tot el fitxer .xml, cercant qualsevol androide: cadenes de fons que facin servir un valor hexadecimal (#fffffff) o qualsevol cosa que no sigui amb què les acabem de substituir. Per a les que trobeu, canvieu les cadenes per utilitzar la nova (abs__background_holo_dark).

Per tant, hem canviat el fons i ara canviarem el color del text. Per tant, seguiu el mateix procediment que acabem de fer, però aquesta vegada feu un CTRL + F per a 'android: textColor'. Es trobaran unes 166 línies trobades.



Veureu coses com ara 'android: textColor =' # ffbbbbbb ', etc. Per tant, torneu a mirar dins de Colors.xml i hem d'esbrinar quines línies substituirem pel color del text.



Podeu veure l'android: textColor = '# ffbbbbbb', '#ffffffff', '# ff717171' i '#ffcccccc' a la captura de pantalla i als resultats de la cerca a Note ++. Obriu de nou el vostre Colors.xml ara per trobar quina línia volem utilitzar per al color del text.



Torneu al primer fitxer .xml i torneu a fer CTRL + H per al diàleg Substitueix. Ara copieu i enganxeu la cadena 'android: textColor =' # ffbbbbbb 'a la part superior i inferior i canvieu la línia inferior a' android: textColor = '@ color / text'.

Ara, una vegada més, cerqueu totes les línies d'Android: textColor i canvieu qualsevol cosa que tingui un valor hexadecimal a la cadena. Finalment, quan arribeu al fitxer styles.xml, voleu eliminar la inversa d'unes poques línies, començant per la línia 260 i continuant cap avall durant unes poques línies. Per tant, suprimiu la 'inversa' d'aquestes cadenes.

A continuació, veureu alguns valors hexadecimals a les línies 527, 536, 573, 579, 585, 601 i algunes altres. Substituïu el de (#ffffffff) per (@ color / text).



Premeu CTRL + F per cercar a Notepad ++ cacheColorHint , divisor , @ * android: color / , i Invers .

El cacheColorHint és el fons de desplaçament, de manera que hem d’assegurar-nos que utilitzen el nostre color de fons. Els divisors s’expliquen per si mateixos i podem canviar els seus valors hexadecimals si voleu. L'únic és que no heu de tocar res que apunti a @drawable. Normalment són imatges emmagatzemades com a fitxers .png en qualsevol altre lloc de la carpeta .apk.

Quan cerqueu ' invers' , mostrarà referències a textAppearanceInverse. Heu de fer doble clic a cadascuna d’aquestes i suprimir la inversa d’aquestes cadenes.

Finalment, la cerca de @ * android: color / només comprovarà si hem perdut cap modificació del framework. Si trobeu alguna cosa que digui 'android: popupBackground'> ​​@ * android: color / white ', heu de canviar-lo per' android: popupBackground '> @ color / abs__background_holo_dark'. Això inclou la línia 911, que pot resultar confusa perquè ja apunta a Android: color / negre.

A continuació, obrirem res / values ​​/ colors.xml i el canviarem per tenir aquest aspecte:

Seguidament res / values ​​/ styles.xml i desplaceu-vos cap avall fins a la línia 328. Canvieu-ho així:

() s'ha de canviar a ()

Feu el mateix per a la línia 479, canviant el símbol ' llum ” a ' negre' .

Ara aneu a res / values-v11 / styles.xml i elimineu el botó ' llum ” on diu ' Holo.Light ' .

A continuació, obriu res / values-v14 / styles ara, que conté moltes cadenes. Per tant, a les 46 primeres línies voleu eliminar qualsevol ' Llum ” i “ Invers' referències i, a continuació, canvieu els pares de les línies 53 i 54 per '@ * android: style / Theme.Holo'.

A la línia 69, al pare dret lateral, traieu la llum del pare @ @ android: style / Theme.Holo.Light.Dialog.

Això suposa molta feina, oi? Potser a partir d’ara agraireu més els temes i les aplicacions de les aplicacions.

A continuació entrarem al res / color carpeta. Hi ha alguns fitxers de text que apunten al negre. Obriu res / colors / action_mode_item_text_color_state_list.xml

Així es veu en accions. A continuació s’explica com cal fer-ho.

Heu de fer aquests canvis als fitxers xml següents a 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_text_small.xml. xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml.

Quan hàgiu acabat, obriu / res / drawable i hi ha xmls que controlen el color de fons. Per tant, reviseu-los i feu que semblin així:

Apliqueu els mateixos canvis a tots els altres fitxers drawable.xml.

Ara obriu el test.apk i premeu CTRL + clic esquerre per ressaltar smali i AndroidManifest, feu clic amb el botó dret i torneu a 'Editar amb Notepad ++'. Accepto tots els fitxers smali del 1999. Quan es carregui, feu una cerca CTRL + F per -0x100 (negre)

Obtindreu aproximadament 8 visites i la que voleu és smali / com / dropbox / android / activity / TextEditActivity.smali, a la línia 599. Feu doble clic en aquesta línia.

La línia 599 conté -0x100 i la línia 601 té “SetTextColor”. També hi ha una variable que coincideix amb la línia 599. Per explicar-ho breument, -0x100, -0x1000000 i fins i tot 0x0 signifiquen negre, -0x1000000 també és negre i fins i tot 0x0. Canvieu la línia 599 traient els dos 0 dels 100 i traient el / high16 així:

A continuació, cercarem @ * android: style, però en smali. El xml contindrà un '0' addicional després de la x, però a smali no el fem servir. Ha de ser '0x103004f' en lloc de '0x0103004f.

Feu una cerca a Notepad ++ per @ * android: style / que conté 0x103.

El segon èxit és 'const v7, 0x1030073'. Cerqueu de nou al vostre public.xml des de framework-res.apk. Veureu que és l’identificador de 'Theme.Holo.Light.Dialog'. L'haureu de canviar per l'identificador públic de l'estil del tema oposat.

Com que aquest és Theme.Holo.Light.Dialog, el voleu convertir en Theme.Holo.Lial.Dialog. Theme.Holo.Dialog té un identificador de '0x103006f'. Això canviarà un quadre d'alerta de diàleg emergent per utilitzar un tema basat en Holo més fosc en lloc d'un tema més clar basat en Holo.

El següent que hem de canviar és '0x103006e', que és Theme.Holo.Light. Per tant, endavant i converteix-lo en l'estil de tema contrari. Al vostre public.xml de framework-res.apk, veureu l’identificador de Theme.Holo és 0x0103006b. canviem aquesta línia per tenir aquest aspecte:

Només en queden dues més. El següent següent és '0x103000c', que és per a Theme.Light a public.xml. El contrari és Theme.Black, no ThemeHolo. Així, a public.xml veureu l’identificador de Theme.Black és “0x01030008”; canvieu-lo per tenir aquest aspecte:

En altres aplicacions, hi hauria altres coses per editar i canviar i, amb prou pràctica, podreu tornar a tema gairebé qualsevol cosa. Però, per ara, hem acabat amb tots els bits de codi ( finalment!) .

Ara podeu obrir l'script des de l'Apk Multi Tool i fer clic a 12 per compilar l'aplicació. Si es mostra algun error, podeu provar de cercar dins del registre d'errors allò que no va funcionar, però és probable que hàgiu comès un error d'error o un altre error durant l'edició del codi.

Quan la compilació s'hagi completat, premeu 2 i després 13 per tornar a signar l'aplicació.

L'aplicació de stock conté una carpeta anomenada 'Plantilles': heu d'arrossegar-la al vostre apk sense signar utilitzant alguna cosa com 7zip. Copieu el fitxer unsigned.apk a la carpeta 'place-apk-here-for-signature' de l'Apk Multi Tool. Ara premeu 18 a l'script del terminal per signar per lots les aplicacions d'aquesta carpeta. Quan s'hagi acabat, l'script sortirà automàticament de si mateix. Ara podeu carregar .apk al dispositiu.

6 minuts de lectura