Ako dekompilovať a tematizovať súbory APK pre Android



Teraz stlačte tlačidlo „Nahradiť všetko“. Zmení sa všetko nastavenie @android: color / white, aby sa namiesto neho používal background_holo_dark. Teraz pokračujte v posúvaní celého súboru .xml a hľadajte akékoľvek reťazce systému Android: pozadia, ktoré používajú hexadecimálnu hodnotu (#fffffff) alebo čokoľvek iné, ako sme ich práve nahradili. U tých, ktoré nájdete, zmeňte reťazce tak, aby používali nové (abs__background_holo_dark).

Takže sme zmenili pozadie, teraz zmeníme farbu textu. Postupujte teda rovnako, ako sme to spravili teraz, ale tentoraz urobte kombináciu klávesov CTRL + F pre „android: textColor“. Nájdete okolo 166 riadkov.



Uvidíte veci ako „android: textColor =“ # ffbbbbbb ”atď. Takže sa znova pozrite do súboru Colors.xml a musíme zistiť, ktoré riadky sa majú pre farbu textu nahradiť.



Android: textColor = ”# ffbbbbbb”, “#ffffffff”, “# ff717171” a “#ffcccccc” môžete vidieť na snímke obrazovky a vo výsledkoch vyhľadávania v Note ++. Teraz znova otvorte súbor Colors.xml a zistite, ktorý riadok chceme použiť pre farbu textu.



Vráťte sa teda k prvému .xml a znova stlačte CTRL + H pre dialóg Nahradiť. Teraz skopírujte reťazec „android: textColor =“ # ffbbbbbb ”do hornej a dolnej časti a spodný riadok zmeňte na„ android: textColor = “@ color / text”.

Teraz znova prehľadajte všetky riadky android: textColor a zmeňte všetko, čo má v reťazci hexadecimálnu hodnotu. Nakoniec, keď sa dostanete do súboru styles.xml, chcete odstrániť inverziu z niekoľkých riadkov, počnúc riadkom 260 a niekoľko riadkov smerom nadol. Takže z týchto reťazcov vymažte „inverzný“.

Ďalej uvidíte na riadkoch 527, 536, 573, 579, 585, 601 a niekoľkých ďalších hexadecimálne hodnoty. Nahraďte text z (#ffffffff) na (@ color / text).



Stlačením kombinácie klávesov CTRL + F vyhľadáte v programe Poznámkový blok ++ cacheColorHint , rozdeľovač , @ * android: farba / a Inverzný .

CacheColorHint je rolovacie pozadie, takže sa musíme uistiť, že používajú našu farbu pozadia. Rozdeľovače sú samozrejmé a ich hexadecimálne hodnoty môžeme zmeniť, ak chcete. Jediná vec je, že sa nesmiete dotknúť ničoho, čo ukazuje na @drawable. Spravidla ide o obrázky uložené ako súbory .png inde v priečinku .apk.

Keď hľadáte „ inverzný “ , zobrazí odkazy na textAppearanceInverse. Musíte dvakrát kliknúť na každý z nich a z týchto reťazcov odstrániť inverzný text.

Nakoniec hľadanie @ * android: color / iba skontroluje, či sme nezmeškali nejaké úpravy rámca. Ak nájdete čokoľvek, čo hovorí „android: popupBackground“> @ * android: color / white “, musíte to zmeniť na„ android: popupBackground “> @ color / abs__background_holo_dark. Patrí sem aj riadok 911, ktorý môže byť mätúci, pretože už smeruje na android: color / black.

Ďalej otvoríme res / values ​​/ colors.xml a zmeníme to tak, aby vyzeralo takto:

Ďalej res / values ​​/ styles.xml a posuňte sa nadol na riadok 328. Zmeňte to takto:

() by sa malo zmeniť na ()

To isté urobte pre linku 479, zmeňte „ svetlo'čierna' .

Teraz choďte do res / values-v11 / styles.xml a odstráňte „ svetlo' kde sa píše „ Holo.Light ” .

Ďalej teraz otvoríte štýly res / values-v14 /, ktoré obsahujú veľa reťazcov. Takže na prvých 46 riadkoch chcete odstrániť všetky “ Svetlo' a „ Inverzné “ odkazy a potom zmeňte rodičov na riadkoch 53 a 54 na „@ * android: style / Theme.Holo“.

Na riadku 69 na pravej strane rodiča odstráňte svetlo z rodiča @ * android: style / Theme.Holo.Light.Dialog.

To je veľa práce, však? Možno si odteraz budete viac vážiť témy a vzhľady aplikácií!

Ďalej pôjdeme do res / farba priečinok. Existujú textové súbory, ktoré ukazujú na čiernu farbu. Otvorte súbor res / colors / action_mode_item_text_color_state_list.xml

Takto to vyzerá na sklade. Ďalej uvádzame, ako to musíte urobiť.

Musíte vykonať tieto zmeny v nasledujúcich súboroch XML v priečinku / 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_dot_text_small.xml_b, s_b_b. xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml.

Keď s nimi skončíte, otvorte / res / nakreslite a existujú farby xmls, ktoré ovládajú farbu pozadia. Prejdite ich teda a nechajte ich vyzerať takto:

Rovnaké zmeny použite vo všetkých ostatných súboroch drawable.xml.

Teraz otvorte test.apk a stlačte CTRL + ľavé tlačidlo myši, aby ste zvýraznili smali a AndroidManifest, potom kliknite pravým tlačidlom myši a znova „Upraviť pomocou programu Poznámkový blok ++“. Súhlaste so všetkými súbormi smali z roku 1999. Po načítaní vyhľadajte klávesovú skratku CTRL + F a nájdite hodnotu -0x100 (čierna)

Získate asi 8 prístupov a ten, ktorý chcete, je smali / com / dropbox / android / activity / TextEditActivity.smali, na riadku 599. Dvakrát kliknite na tento riadok.

Riadok 599 obsahuje -0x100, a riadok 601 má „SetTextColor“. Existuje aj premenná, ktorá sa zhoduje s riadkom 599. Takže pre krátke vysvetlenie, -0x100, -0x1000000 a dokonca 0x0 znamená čierna, -0x1000000 je tiež čierna a dokonca 0x0. Zmeňte riadok 599 odstránením dvoch núl zo 100 a odstránením hodnoty / high16 takto:

Ďalej budeme hľadať @ * android: style, ale v smali. XML bude obsahovať za znakom „0“ navyše, ale v smali ho nepoužívame. Musí to byť „0x103004f“ namiesto „0x0103004f“.

V programe Poznámkový blok ++ vyhľadajte výraz @ * android: style /, ktorý obsahuje formát 0x103.

Druhým prístupom je „const v7, 0x1030073“. Vyhľadajte to znova vo svojom public.xml z framework-res.apk. Uvidíte, že ide o identifikátor témy „Theme.Holo.Light.Dialog“. Bude potrebné zmeniť verejné ID opačného štýlu témy.

Pretože toto je Theme.Holo.Light.Dialog, chcete z neho urobiť Theme.Holo.Dialog. Theme.Holo.Dialog má ID „0x103006f“. To zmení rozbaľovacie dialógové okno s upozornením tak, že namiesto svetlejšej témy Holo.Light sa použije tmavšia téma založená na holo.

Ďalšou, ktorú musíme zmeniť, je „0x103006e“, čo je Theme.Holo.Light. Takže do toho a urobte z toho opačný štýl témy. Vo vašom public.xml z framework-res.apk uvidíte id pre Theme.Holo je 0x0103006b. upravme teda tento riadok takto:

Existujú iba 2 ďalšie z nich, ktoré musíte prejsť. Ďalšia z nich je „0x103000c“, ktorá je určená pre Theme.Light v public.xml. Opakom je Theme.Black, nie ThemeHolo. Takže v public.xml uvidíte id pre Theme.Black je „0x01030008“ - zmeňte to takto:

V iných aplikáciách môžu byť ďalšie veci, ktoré treba upravovať a meniť, a pri dostatočnom precvičení budete môcť zmeniť tému takmer na čokoľvek. Zatiaľ sme však hotoví so všetkými bitmi kódu ( konečne!) .

Teraz teda môžete otvoriť skript z nástroja Apk Multi Tool a stlačením klávesu 12 zostaviť aplikáciu. Ak sa zobrazia nejaké chyby, môžete sa pokúsiť pozrieť do denníka chýb, čo sa pokazilo, ale s najväčšou pravdepodobnosťou ste počas úpravy kódu urobili preklep alebo inú chybu.

Po dokončení zostavovania aplikáciu znova podpíšete stlačením klávesov 2 a 13.

Aplikácia Stock obsahuje priečinok s názvom „Šablóny“ - musíte ich pretiahnuť do nepodpísaného apk pomocou niečoho ako 7zip. Skopírujte súbor unsigned.apk do priečinka „place-apk-here-for-signing“ vo vnútri nástroja Apk Multi Tool. Teraz stlačte 18 v terminálovom skripte, aby ste mohli hromadne podpísať aplikácie v tomto priečinku. Po dokončení sa skript automaticky ukončí. Teraz môžete načítať .apk do svojho zariadenia!

6 minút prečítania