Hvordan dekompilere og tema Android APK-er



Trykk nå 'Erstatt alle', og det kommer til å endre alle @android: farge / hvite for å bruke bakgrunns_holo_dark i stedet. Fortsett å bla gjennom hele .xml, og søk etter hvilken som helst Android: bakgrunnsstrenger som bruker en hex-verdi (#fffffff) eller noe annet enn det vi nettopp erstattet dem med. For de du finner, endre strengene for å bruke den nye (abs__background_holo_dark).

Så vi har endret bakgrunnen, nå skal vi endre tekstfargen. Så følg den samme fremgangsmåten som vi nettopp gjorde, men gjør denne gangen en CTRL + F for “android: textColor”. Du vil finne rundt 166 linjer.



Du vil se ting som “android: textColor =” # ffbbbbbb, osv. Så se inne i Colors.xml igjen, og vi må finne ut hvilke linjer som skal erstattes for tekstfargen.



Du kan se android: textColor = ”# ffbbbbbb”, “#ffffffff”, “# ff717171” og “#ffcccccc” på skjermbildet og i søkeresultatene dine i Note ++. Åpne Colors.xml igjen nå for å finne hvilken linje vi vil bruke for tekstfargen.



Så gå tilbake til den første .xml og gjør CTRL + H for Erstatt-dialogen igjen. Nå skriver du inn 'android: textColor =' # ffbbbbb '-strengen i toppen og bunnen, og endrer bunnlinjen til' android: textColor = '@ color / text'.

Nå igjen, søk gjennom alle android: textColor-linjer og endre alt som har en hex-verdi i strengen. Til slutt når du kommer til styles.xml-filen, vil du fjerne det inverse fra noen få linjer, fra linje 260 og fortsetter nedover i noen få linjer. Så slett 'Inverse' fra strengene.

Deretter ser du noen hexverdier rundt linjene 527, 536, 573, 579, 585, 601 og noen få andre. Erstatt fra (#ffffffff) til (@ farge / tekst).



Trykk CTRL + F for å søke i Notisblokk ++ etter cacheColorHint , deler , @ * android: farge / , og Omvendt .

CacheColorHint er den rullebakgrunnen, så vi må sørge for at de bruker bakgrunnsfargen vår. Delene er selvforklarende, og vi kan endre deres hexverdier hvis du vil. Det eneste er at du ikke må berøre noe som peker mot @drawable. Dette er vanligvis bilder som er lagret som .png-filer andre steder i .apk-mappen.

Når du søker etter “ omvendt' , vil det vise referanser til textAppearanceInverse. Du må dobbeltklikke på hver av disse og slette det inverse fra strengene.

Endelig vil søket etter @ * android: farge / bare dobbeltsjekke om vi savnet noen rammeverk. Hvis du finner noe som sier “android: popupBackground”> @ * android: color / white ”, må du endre det til“ android: popupBackground ”> @ color / abs__background_holo_dark”. Dette inkluderer linje 911, som kan være forvirrende fordi den allerede peker mot android: farge / svart.

Deretter åpner vi res / values ​​/ colours.xml og endrer den slik at den ser ut:

Neste res / values ​​/ styles.xml, og bla ned til linje 328. Endre den slik:

() bør endres til ()

Gjør det samme for linje 479, og endre “ lys' til ' svart' .

Gå nå inn i res / values-v11 / styles.xml, og fjern “ lys' der det står “ Holo.Light ” .

Deretter åpner du res / values-v14 / styles nå, som inneholder mange strenger. Så på de første 46 linjene vil du fjerne alle “ Lys' og “ Omvendt' referanser, og endre deretter foreldrene på linje 53 og 54 til “@ * android: style / Theme.Holo“.

På linje 69 fjerner du forelderen på høyre side lyset fra @ * android: style / Theme.Holo.Light.Dialog foreldre.

Dette er mye arbeid, ikke sant? Kanskje fra nå av vil du være mer takknemlig for app-temaer og skinn!

Neste skal vi gå inn i res / farge mappe. Det er noen tekstfiler der inne som peker mot svart. Åpne res / farger / action_mode_item_text_color_state_list.xml

Slik ser det ut på lager. Nedenfor er hvordan du trenger å lage det.

Du må gjøre disse samene endringene i følgende xml-filer i / res / farger-mappen: 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_dis_bott_date_xmall_display_date.xml, xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml.

Når du er ferdig med disse, kan du åpne / endre / tegne, og det er xmls som styrer bakgrunnsfargen. Så gå gjennom dem og få dem til å se slik ut:

Bruk de samme endringene på alle de andre drawable.xml-filene.

Åpne nå test.apk og trykk CTRL + venstreklikk for å markere smali og AndroidManifest, høyreklikk deretter og 'Rediger med Notisblokk ++' igjen. Godta alle smali-filer fra 1999. Når det lastes, gjør du et CTRL + F-søk etter -0x100 (svart)

Du får omtrent åtte treff, og den du vil ha er smali / com / dropbox / android / activity / TextEditActivity.smali, på linje 599. Dobbeltklikk på den linjen.

Linje 599 inneholder -0x100 i den, og linje 601 har 'SetTextColor'. Det er også en variabel som samsvarer med linje 599. Så for å forklare kort, -0x100, -0x1000000 og til og med 0x0 betyr svart, -0x1000000 er også svart og til og med 0x0. Endre linje 599 ved å fjerne de to 0-ene fra 100 og fjerne / high16 slik:

Deretter søker vi etter @ * android: stil, men i smali. Xml vil inneholde et ekstra '0' etter x, men i smali bruker vi det ikke. Det må være “0x103004f” i stedet for “0x0103004f.

Gjør et søk i Notepad ++ for @ * android: style / som inneholder 0x103.

Den andre treffen er “const v7, 0x1030073“. Søk i public.xml fra framework-res.apk igjen. Du ser at det er ID-en for 'Theme.Holo.Light.Dialog'. Du må endre den til den motsatte temastilens offentlige ID.

Siden denne er Theme.Holo.Light.Dialog, vil du gjøre den til Theme.Holo.Dialog. Theme.Holo.Dialog har ID-en “0x103006f”. Det vil endre en popup-dialogvarsel for å bruke et mørkere Holo-basert tema i stedet for et lysere Holo.Light-basert tema.

Den neste vi trenger å endre er “0x103006e” som er Theme.Holo.Light. Så fortsett og gjør det til motsatt temastil. I public.xml fra framework-res.apk ser du id-en for Theme.Holo er 0x0103006b. så la oss endre linjen slik at den ser ut:

Det er bare to flere av disse å gå gjennom. Den neste opp er “0x103000c”, som er for Theme.Light in the public.xml. Det motsatte av det er Theme. Svart, ikke ThemeHolo. Så i public.xml ser du id-en for Theme.Black er “0x01030008” - endre den for å se slik ut:

I andre apper vil det være andre ting å redigere og endre, og med nok øvelse vil du kunne omformere nesten hva som helst. Men foreløpig er vi ferdige med alle kodebitene ( endelig!) .

Så nå kan du åpne skriptet fra Apk Multi Tool, og trykke 12 for å kompilere appen. Hvis det vises noen feil, kan du prøve å se i feilloggen etter hva som gikk galt, men det er mest sannsynlig at du gjorde en skrivefeil eller annen feil under kodedigeringen.

Når byggingen er fullført, trykk 2 og deretter 13 for å signere appen på nytt.

Lagerappen inneholder en mappe som heter 'Maler' - du må dra den inn i den usignerte apk-en din ved å bruke noe som 7zip. Kopier unsigned.apk til mappen 'sted-apk-her-for-signering' i Apk Multi Tool. Trykk nå 18 i terminalskriptet for å batch signere appene i den mappen. Når det er gjort, vil skriptet automatisk gå ut av seg selv. Du kan nå laste .apk på enheten!

6 minutter lest