Kako dekompilirati i tematizirati Android APK-ove



Sada pritisnite 'Zamijeni sve', a promijenit će sve @android: color / white da umjesto njih koristi background_holo_dark. Sada nastavite pomicati se kroz cijeli .xml, tražeći bilo koje android: pozadinske nizove koji koriste hex vrijednost (#fffffff) ili bilo što drugo osim onoga s čime smo ih upravo zamijenili. Za one koje pronađete, promijenite žice kako bi koristili novu (abs__background_holo_dark).

Dakle, promijenili smo pozadinu, sada ćemo promijeniti boju teksta. Slijedite isti postupak koji smo upravo učinili, ali ovaj put napravite CTRL + F za 'android: textColor'. Dobit ćete oko 166 pronađenih linija.



Vidjet ćete stvari poput 'android: textColor =' # ffbbbbbb 'itd. Stoga ponovno pogledajte unutar Colors.xml i trebamo shvatiti koje redove zamijeniti bojom teksta.



Android: textColor = '# ffbbbbbb', '#ffffffff', '# ff717171' i '#ffcccccc' možete vidjeti na snimci zaslona i u rezultatima pretraživanja u bilješci ++. Ponovo otvorite svoj Colors.xml da biste pronašli koji redak želimo koristiti za boju teksta.



Zato se vratite na prvi .xml i ponovite CTRL + H za dijalog Zamijeni. Sada kopirajte niz 'android: textColor =' # ffbbbbbb 'u gornji i donji dio i promijenite donji redak u' android: textColor = '@ color / text'.

Sada još jednom pretražite sve linije android: textColor i promijenite sve što ima hex vrijednost u nizu. Konačno, kada dođete do datoteke styles.xml, želite ukloniti inverzu iz nekoliko redaka, počevši od retka 260 i nastavljajući prema dolje za nekoliko redaka. Zato izbrišite 'Inverse' iz tih nizova.

Dalje ćete vidjeti neke heksadecimalne vrijednosti uokolo na linijama 527, 536, 573, 579, 585, 601 i nekoliko drugih. Zamijenite s (#ffffffff) na (@ color / text).



Pritisnite CTRL + F da biste u Notepadu ++ tražili cacheColorHint , šestar , @ * android: boja / , i Inverzan .

CacheColorHint je pomična pozadina, pa moramo biti sigurni da koriste našu boju pozadine. Razdjelnici su sami po sebi razumljivi i ako želite, možemo promijeniti njihove heksadecimalne vrijednosti. Jedino što ne smijete dirati ništa što upućuje na @drawable. To su obično slike pohranjene kao .png datoteke negdje drugdje u mapi .apk.

Kada tražite ' inverzan' , prikazat će reference na textAppearanceInverse. Morate dvaput kliknuti svaku od njih i izbrisati Inverse iz tih nizova.

Konačno, potraga za @ * android: color / samo će provjeriti jesmo li propustili uređivanje okvira. Ako pronađete nešto što kaže 'android: popupBackground'> ​​@ * android: color / white ', morate to promijeniti u' android: popupBackground '> @ color / abs__background_holo_dark'. To uključuje liniju 911, što može biti zbunjujuće jer već upućuje na android: color / black.

Dalje ćemo otvoriti res / values ​​/ colors.xml i promijeniti ga tako da izgleda ovako:

Sljedeća res / values ​​/ styles.xml i pomaknite se prema dolje do retka 328. Promijenite ga ovako:

() treba promijeniti u ()

Učinite isto za redak 479, mijenjajući ' svjetlo' do ' crno' .

Sada idite u res / values-v11 / styles.xml i uklonite ' svjetlo' gdje piše ' Holo.svjetlo ' .

Dalje ćete sada otvoriti res / values-v14 / styles koji sadrži puno nizova. Dakle, u prvih 46 redaka želite ukloniti bilo koji ' Svjetlo' i ' Inverzan' reference, a zatim promijenite roditelje na linijama 53 i 54 u „@ * android: style / Theme.Holo“.

Na liniji 69, s desne strane roditelja, uklonite Svjetlo iz roditelja @ * android: style / Theme.Holo.Light.Dialog.

Ovo je puno posla, zar ne? Možda ćete od sada cijeniti teme i obloge aplikacija!

Dalje ćemo ući u res / boja mapu. Tu su neke tekstualne datoteke koje ukazuju na crnu boju. Otvorite res / colors / action_mode_item_text_color_state_list.xml

Tako to izgleda na lageru. Ispod je kako to trebate napraviti.

Trebate kako bi one sames promjene u sljedeće XML datoteke unutar / RES / boja mape: 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, ss_bottom_bottom_text_color_dark. xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml.

Kada završite s tim, otvorite / res / drawable i postoje xmls koji kontroliraju boju pozadine. Pa prođite kroz njih i učinite da izgledaju ovako:

Primijenite iste promjene na sve ostale datoteke drawable.xml.

Sada otvorite test.apk i pritisnite CTRL + lijevi klik da biste istaknuli smali i AndroidManifest, a zatim desnom tipkom miša i ponovno 'Uredi s Notepad ++'. Pristajte na sve smali datoteke iz 1999. Kad se učita, pretražite CTRL + F za -0x100 (crna)

Dobit ćete oko 8 pogodaka, a onaj koji želite je smali / com / dropbox / android / activity / TextEditActivity.smali, na liniji 599. Dvaput kliknite tu liniju.

Redak 599 sadrži -0x100 u sebi, a redak 601 ima 'SetTextColor'. Tu je i varijabla koja se podudara s linijom 599. Dakle, da ukratko objasnimo, -0x100, -0x1000000, pa čak i 0x0 znače crno, -0x1000000 je također crno i čak 0x0. Promijenite redak 599 uklanjanjem dviju 0 sa 100 i uklanjanjem / high16 ovako:

Dalje ćemo tražiti @ * android: style, ali na smaliju. Xml će sadržavati dodatnih '0' nakon x, ali u smaliju ga ne koristimo. Treba biti '0x103004f' umjesto '0x0103004f.

Pretražite u Notepadu ++ za @ * android: style / koji sadrži 0x103.

Drugi pogodak je 'const v7, 0x1030073'. Ponovno to potražite u svom public.xml iz framework-res.apk. Vidjet ćete da je to ID za 'Theme.Holo.Light.Dialog'. Morat ćete ga promijeniti u javni identitet stila suprotne teme.

Budući da je ovo Theme.Holo.Light.Dialog, želite ga učiniti Theme.Holo.Dialog. Theme.Holo.Dialog ima id '0x103006f'. To će promijeniti okvir upozorenja u skočnom dijaloškom okviru da bi se koristila tamnija tema zasnovana na Holou umjesto svjetlije teme tematike Holo.Light.

Sljedeći koji moramo promijeniti je '0x103006e' koji je Theme.Holo.Light. Dakle, samo naprijed i napravite to suprotnim tematskim stilom. U vašem public.xml iz framework-res.apk vidjet ćete id za Theme.Holo 0x0103006b. pa promijenimo tu liniju kako bi izgledala ovako:

Postoje samo još 2 ove koje treba proći. Sljedeći je '0x103000c', što je za Theme.Light in the public.xml. Suprotno tome je Theme.Black, a ne ThemeHolo. Tako ćete u public.xml vidjeti id za Theme.Black '0x01030008' - promijenite ga tako da izgleda ovako:

U drugim aplikacijama bilo bi drugih stvari za uređivanje i promjenu, a uz dovoljno prakse moći ćete ponovno tematizirati gotovo sve. Ali za sada smo završili sa svim bitovima koda ( konačno!) .

Dakle, sada možete otvoriti skriptu iz aplikacije Apk Multi Tool i pritisnuti 12 za sastavljanje aplikacije. Ako se prikazuju bilo kakve pogreške, možete pokušati pogledati u zapisnik pogrešaka što nije u redu, no najvjerojatnije ste pogriješili pri upisu ili drugoj pogrešci tijekom uređivanja koda.

Kada je izrada završena, pritisnite 2, a zatim 13 da biste ponovo potpisali aplikaciju.

Aplikacija za dionice sadrži mapu pod nazivom 'Predlošci' - morate je povući u svoj nepotpisani apk koristeći nešto poput 7zip. Kopirajte unsigned.apk u mapu „mjesto-apk-ovdje-za-potpisivanje“ unutar Apk Multi Alata. Sada pritisnite 18 u skripti terminala da biste skupno potpisivali aplikacije u toj mapi. Kad završi, skripta će se automatski zatvoriti. Sada .apk možete učitati na svoj uređaj!

6 minuta čitanja