Cum să decompilezi și să temi APK-urile Android



Apăsați acum pe „Înlocuiți totul” și va schimba toate @android: color / white pentru a utiliza în schimb background_holo_dark. Acum continuați să parcurgeți întregul .xml, căutând orice Android: șiruri de fundal care utilizează o valoare hex (#fffffff) sau orice altceva decât cu ce tocmai le-am înlocuit. Pentru cele pe care le găsiți, schimbați șirurile pentru a o utiliza pe cea nouă (abs__background_holo_dark).

Așa că am schimbat fundalul, acum vom schimba culoarea textului. Deci, urmați aceeași procedură pe care tocmai am făcut-o, dar de data aceasta faceți un CTRL + F pentru „android: textColor”. Veți găsi aproximativ 166 de linii găsite.



Veți vedea lucruri precum „android: textColor =” # ffbbbbbb ”etc. Așadar, uitați-vă din nou în Colors.xml și trebuie să ne dăm seama ce linii să înlocuim pentru culoarea textului.



Puteți vedea androidul: textColor = '# ffbbbbbb', '#ffffffff', '# ff717171' și '#ffcccccc' în captura de ecran și în rezultatele căutării dvs. în Note ++. Deschideți din nou Colors.xml acum pentru a găsi ce linie dorim să folosim pentru culoarea textului.



Așadar, reveniți la primul .xml și faceți din nou CTRL + H pentru dialogul Înlocuire. Copiați acum șirul „android: textColor =” # ffbbbbbb ”în partea de sus și de jos și schimbați linia de jos în„ android: textColor = ”@ color / text”.

Acum, încă o dată, căutați prin toate liniile Android: textColor și schimbați orice are o valoare hexagonală în șir. În cele din urmă, când ajungeți la fișierul styles.xml, doriți să eliminați inversul din câteva linii, începând de la linia 260 și continuând în jos pentru câteva linii. Așa că ștergeți „Inversa” din acele șiruri.

Apoi veți vedea câteva valori hexagonale pe liniile 527, 536, 573, 579, 585, 601 și câteva altele. Înlocuiți de la (#ffffffff) la (@ color / text).



Apăsați CTRL + F pentru a căuta în Notepad ++ cacheColorHint , despărțitor , @ * android: color / , și Invers .

CacheColorHint este fundalul derulant, deci trebuie să ne asigurăm că folosesc culoarea noastră de fundal. Separatoarele se explică de la sine și le putem schimba valorile hexagonale dacă doriți. Singurul lucru este că nu trebuie să atingi nimic care indică @drawable. Acestea sunt de obicei imagini stocate ca fișiere .png în altă parte din folderul .apk.

Când căutați „ invers' , va afișa referințe la textAppearanceInverse. Trebuie să faceți dublu clic pe fiecare dintre acestea și să ștergeți inversul din acele șiruri.

În cele din urmă, căutarea @ * android: color / va verifica doar dacă am ratat modificările cadrului. Dacă găsiți ceva care spune „android: popupBackground”> @ * android: color / white ”, trebuie să îl schimbați în„ android: popupBackground ”> @ color / abs__background_holo_dark”. Aceasta include linia 911, care poate fi confuză, deoarece indică deja către Android: culoare / negru.

Apoi vom deschide res / values ​​/ colors.xml și îl vom schimba pentru a arăta astfel:

Următorul res / values ​​/ styles.xml și derulați în jos până la linia 328. Modificați-l astfel:

() ar trebui schimbat în ()

Faceți același lucru pentru linia 479, schimbând „ ușoară' la ' negru' .

Acum intrați în res / values-v11 / styles.xml și eliminați „ ușoară' unde scrie „ Holo.Light ” .

Apoi, veți deschide res / values-v14 / styles acum, care conține o mulțime de șiruri. Deci, pe primele 46 de rânduri, doriți să eliminați orice „ Ușoară' și ' Invers' referințe, apoi schimbați părinții de pe liniile 53 și 54 la „@ * android: style / Theme.Holo“.

Pe linia 69, în partea dreaptă părinte, scoateți Lumina din @ * android: style / Theme.Holo.Light.Dialog părinte.

Asta e multă muncă, nu? Poate că de acum încolo vei fi mai apreciat de temele și aspectele aplicațiilor!

Apoi vom intra în res / culoare pliant. Există câteva fișiere text care indică negru. Deschideți res / colors / action_mode_item_text_color_state_list.xml

Așa arată pe stoc. Mai jos este modul în care trebuie să o realizați.

Trebuie să faceți aceleași modificări la următoarele fișiere xml din folderul / 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.

Când ați terminat cu acestea, deschideți / res / drawable și există xmls care controlează culoarea de fundal. Deci, parcurgeți-le și faceți-le să arate astfel:

Aplicați aceleași modificări tuturor celorlalte fișiere drawable.xml.

Acum deschideți test.apk și apăsați CTRL + clic stânga pentru a evidenția smali și AndroidManifest, apoi faceți clic dreapta și „Editați cu Notepad ++” din nou. De acord cu toate fișierele smali din 1999. Când se încarcă, efectuați o căutare CTRL + F pentru -0x100 (negru)

Veți primi aproximativ 8 accesări, iar cea pe care o doriți este smali / com / dropbox / android / activity / TextEditActivity.smali, pe linia 599. Faceți dublu clic pe acea linie.

Linia 599 conține -0x100, iar linia 601 are „SetTextColor”. Există, de asemenea, o variabilă care se potrivește cu linia 599. Deci, pentru a explica pe scurt, -0x100, -0x1000000 și chiar 0x0 înseamnă negru, -0x1000000 este, de asemenea, negru și chiar 0x0. Schimbați linia 599 eliminând cele două 0 din 100 și îndepărtând / high16 astfel:

În continuare vom căuta @ * android: stil, dar în smali. XML va conține un „0” suplimentar după x, dar în smali nu îl folosim. Trebuie să fie „0x103004f” în loc de „0x0103004f.

Efectuați o căutare în Notepad ++ pentru @ * android: style / care conține 0x103.

A doua lovitură este „const v7, 0x1030073“. Căutați din nou în public.xml din framework-res.apk. Veți vedea că este id-ul pentru „Theme.Holo.Light.Dialog”. Va trebui să îl schimbați cu id-ul public al stilului de temă opus.

Deoarece acesta este Theme.Holo.Light.Dialog, doriți să îl faceți Theme.Holo.Dialog. Theme.Holo.Dialog are un id de „0x103006f”. Aceasta va schimba o casetă de alertă de dialog pop-up pentru a utiliza o temă mai întunecată bazată pe Holo în loc de o temă mai ușoară bazată pe Holo.

Următorul pe care trebuie să-l schimbăm este „0x103006e”, care este Theme.Holo.Light. Așadar, mergeți mai departe și faceți din acesta stilul de temă opus. În public.xml din framework-res.apk, veți vedea ID-ul pentru Theme.Holo este 0x0103006b. deci să schimbăm această linie pentru a arăta astfel:

Mai sunt doar 2 dintre acestea de parcurs. Următorul este „0x103000c”, care este pentru Theme.Light în public.xml. Opusul este Theme.Black, nu ThemeHolo. Deci, în public.xml veți vedea ID-ul pentru Theme.Black este „0x01030008” - schimbați-l pentru a arăta astfel:

În alte aplicații, ar fi alte lucruri de editat și de modificat și, cu suficientă practică, veți putea re-tema aproape orice. Dar, deocamdată, am terminat cu toți biții de cod ( in cele din urma!) .

Deci, acum puteți deschide scriptul din Apk Multi Tool și apăsați 12 pentru a compila aplicația. Dacă sunt afișate erori, puteți încerca să căutați în jurnalul de erori ceea ce nu a funcționat corect, dar cel mai probabil ați făcut o greșeală de tipar sau altă greșeală în timpul editării codului.

Când construirea este finalizată, apăsați 2 și apoi 13 pentru a semna din nou aplicația.

Aplicația stoc conține un folder numit „Șabloane” - trebuie să îl trageți în apk-ul dvs. fără semnătură folosind ceva de genul 7zip. Copiați unsigned.apk în folderul „plasează-apk-aici-pentru-semnare” din Apk Multi Tool. Acum apăsați 18 în scriptul terminalului pentru a semna în lot aplicațiile din acel folder. După ce ați terminat, scriptul se va părăsi automat. Acum puteți încărca .apk pe dispozitiv!

6 minute citite