Sådan dekompilere og tema Android APKs

Har du nogensinde åbnet en Android-app og ikke kunne lide det fargetema, det brugte? Hvad hvis du ville ændre en hvid baggrund i en app til sort, for eksempel? I dag skal jeg vise dig, hvordan man dekompilerer en .APK-fil, så du kan redigere filerne indenfor, så genkompilere og installere den på din Android-telefon.

Bemærk: Nogle apps er vanskeligere at tema end andre. F.eks. Facebook Messenger er notorisk svært at tema. Jeg går igennem denne vejledning ved hjælp af Dropbox-appen som et eksempel, da det er blandt de nemmeste at redigere.

Krav

  1. notepad ++
  2. APKTool + seneste AAPT
  3. APKMulti Tool Script
  4. Et foto editor som Photoshop / GIMP
  5. [Valgfrit] Dropbox .apk (for at følge denne vejledning)

Download alle de nødvendige værktøjer og installer dem på din pc, herunder test.apk som angivet ovenfor. Dropbox er en af ​​de lettere apps til temaet, så vi bruger det til denne vejledning.

Du skal også overføre framework-res.apk fra din telefon til din pc, den er placeret i / system / framework / på dit interne lager.

Sæt APKTool og AAPT i mappen Andre i hovedmappen i APK Multi Tool.

Træk test.apk i mappen Place-apk-here-for-modding inde i APK Multi Tool-mappen, og du vil blive mødt med en kommandostation.

Tryk på en hvilken som helst nøgle for at fortsætte, og du vil se en terminalmenu med en masse indstillinger. Vælg valgmulighed 24.

Du går tilbage til hovedterminalskærmen, men test.app bliver dit projekt. Så tryk 9 for at dekompilere apk, og tryk derefter 12 for at køre en test-build. Dette er en god praksis for at se, om noget blev oprettet forkert. Hvis appen opbygges korrekt, skal du trykke på 2 og minimere det script, der vises.

Siden testen er tjekket ud, lad os dykke ind i redigering af XML-koden til apk. Følg med omhyggeligt.

Inde i den udpakkede .apk mappe, gå ind i res mappen og åbne AndroidManifest.xml med Notepad ++. Tryk nu på CTRL + F for at finde følgende streng:

android: baggrund

Brug Find All-funktionen, og der skulle findes omkring 190 strenge. Så nu skal du gennemgå hver fremhævet streng for at sikre dig, at du ikke går glip af noget, når vi ændrer baggrundsfarven på appen.

Rul igennem, indtil du finder Camera_upload_grid.xml, som indeholder strengen android: background = @ * android: color / white. Kopier hele linjen og tryk på CTRL + H, så dialogboksen Udskift pop op. Indsæt strenget i øverste og nederste linje, men vi skal ændre det.

Inde i den dekompilerede .apk mappe, gå ind i /res/values/colors.xml og åbn den i Notepad ++. Se efter linjen abs__background_holo_dark, hvilket er helt sikkert en baggrund. Så nu kopiere den streng og gå tilbage til den første XML-fil, vi havde åbnet, med udskift boksen stadig åben og i bundlinjen indsætte den streng, du lige har kopieret. Så du burde nu have i bundlinjen i Udskift dialog:

android: baggrund = @ farve / abs__background_holo_dark

Klik nu på Erstat alle, og det vil ændre alle @android: farve / hvide til at bruge background_holo_dark i stedet. Fortsæt med at rulle gennem hele .xml, søge efter en android: baggrundsstrenge, der bruger en hex-værdi (#fffffff) eller noget andet end det, vi lige har erstattet dem med. For dem du finder, skift strengene til at bruge den nye (abs__background_holo_dark).

Så vi har ændret baggrunden, nu skal vi ændre tekstfarven. Så følg den samme procedure, som vi lige gjorde, men denne gang gør du en CTRL + F for android: textColor. Du får omkring 166 linjer fundet.

Du kan se ting som android: textColor = # ffbbbbbb osv. Så kig ind i Colors.xml igen, og vi skal finde ud af hvilke linjer der skal erstattes for tekstfarven.

Du kan se android: textColor = # ffbbbbbb, #ffffffff, # ff717171 og #ffcccccc i skærmbilledet og i dine søgeresultater i Note ++. Åbn dine Colors.xml igen nu for at finde hvilken linje, vi vil bruge til tekstfarven.

Så gå tilbage til den første .xml og lav CTRL + H for Udskift dialog igen. Kopipastér nu android: textColor = # ffbbbbbb streng i toppen og bunden, og skift bundlinjen til android: textColor = @ color / text.

Nu igen, søg gennem alle android: textColor linjerne og skift alt, hvad der har en hex-værdi i strengen. Endelig når du kommer til styles.xml-filen, vil du fjerne den inverse fra et par linjer, startende ved linje 260 og fortsætte nedad for nogle få linjer. Så fjern inverse fra de pågældende strenge.

Herefter ses nogle hex-værdier rundt på linjer 527, 536, 573, 579, 585, 601 og nogle få andre. Udskift fra (#ffffffff) til (@ farve / tekst).

Tryk på CTRL + F for at søge i Notepad ++ for cacheColorHint, divider, @ * android: color /, og Inverse .

CacheColorHint er rullende baggrund, så vi skal sørge for, at de bruger vores baggrundsfarve. Opdelerne er selvforklarende, og vi kan ændre deres hex-værdier, hvis du vil. Det eneste er, at du ikke må røre ved noget, der peger på @drawable. Det er typisk billeder, der er gemt som .png-filer andre steder i .apk-mappen.

Når du søger efter invers, vil det vise referencer til textAppearanceInverse. Du skal dobbeltklikke på hver af disse og slette inverse fra de pågældende strenge.

Endelig kan søgningen efter @ * android: color / vil bare dobbelttjekke, om vi savnede nogen rammedredigeringer. Hvis du finder noget der siger android: popupBackground> @ * android: color / white, skal du ændre det til android: popupBackground> @ color / abs__background_holo_dark. Dette omfatter linje 911, som kan være forvirrende, fordi det allerede peger på android: farve / sort.

Næste åbner vi res / values ​​/ colors.xml og ændrer det for at se sådan ud:

Næste res / værdier / styles.xml, og rul ned til linje 328. Skift det som følger:

PRO TIP: Hvis problemet er med din computer eller en bærbar computer / notesbog, skal du prøve at bruge Reimage Plus-softwaren, som kan scanne lagrene og udskifte korrupte og manglende filer. Dette virker i de fleste tilfælde, hvor problemet er opstået på grund af systemkorruption. Du kan downloade Reimage Plus ved at klikke her

() skal ændres til ()

Gør det samme for linje 479, skift lyset til sort .

Gå nu ind i res / values-v11 / styles.xml, og fjern lyset, hvor det står Holo.Light .

Dernæst åbner du res / values-v14 / styles nu, som indeholder mange strings. Så på de første 46 linjer vil du fjerne eventuelle lys og inverse referencer, og derefter ændre forældrene på linjerne 53 og 54 til @ * android: style / Theme.Holo.

På linje 69, på højre side forælder, fjern lyset fra @ * android: style / Theme.Holo.Light.Dialog forælder.

Dette er en masse arbejde, ikke? Måske fra nu af vil du være mere taknemmelig for app temaer og skind!

Dernæst går vi ind i res / farve mappen. Der er nogle tekstfiler derinde, der peger på sort. Åbn res / farver / action_mode_item_text_color_state_list.xml

Sådan ser det ud på lager. Nedenfor er, hvordan du skal gøre det.

Du skal gøre disse sames ændringer til følgende xml-filer inde i mappen / res / farver: 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.

Når du er færdig med dem, skal du åbne / res / drawable og der er xmls, der styrer baggrundsfarve. Så gå igennem dem og få dem til at se sådan ud:

Anvend de samme ændringer på alle de andre drawable.xml-filer.

Nu åbner test.apk og tryk CTRL + venstre klik for at fremhæve smali og AndroidManifest, så højreklik og Rediger med Notesblok ++ igen. Enig med alle 1999 smali-filer. Når det laster, skal du lave en CTRL + F søgning efter -0x100 (sort)

Du vil få omkring 8 hits, og den ønskede du er smali / com / dropbox / android / activity / TextEditActivity.smali, på linje 599. Dobbeltklik på den linje.

Linie 599 indeholder -0x100 i den, og linje 601 har SetTextColor. Der er også en variabel, der matcher linje 599. Så for kort forklare, -0x100, -0x1000000 og endda 0x0 betyder sort, -0x1000000 er også sort og endda 0x0. Skift linje 599 ved at fjerne de to 0'er fra 100 og fjerne / høj16 som denne:

Næste skal vi søge efter @ * android: stil, men i smali. Xml vil indeholde en ekstra 0 efter x, men i smali bruger vi ikke den. Det skal være 0x103004f i stedet for 0x0103004f.

Søg i Notepad ++ for @ * android: style / which indeholder 0x103.

Det andet hit er const v7, 0x1030073. Søg det i din public.xml fra framework-res.apk igen. Du vil se, at det er id for Theme.Holo.Light.Dialog. Du skal ændre det til den modsatte tema stilens offentlige id.

Da denne er Theme.Holo.Light.Dialog, vil du gøre det Theme.Holo.Dialog. Theme.Holo.Dialog har et id på 0x103006f. Det vil ændre en dialogboks til alarmdialog for at bruge et mørkere Holo-baseret tema i stedet for et lysere Holo Light-tema.

Den næste, vi skal ændre, er 0x103006e, som er Theme.Holo.Light. Så gå videre og gøre det modsatte tema stil. I din public.xml fra framework-res.apk, vil du se id for Theme.Holo er 0x0103006b. så lad os ændre den linje for at se sådan ud:

Der er kun 2 flere af dem at gå igennem. Den næste op er 0x103000c, som er til Theme.Light i public.xml. Det modsatte af det er Theme.Black, ikke ThemeHolo. Så i public.xml vil du se id for tema. Sort er 0x01030008 - Skift det for at se sådan ud:

I andre apps vil der være andre ting at redigere og ændre, og med tilstrækkelig praksis vil du være i stand til at omforme næsten alt. Men for nu er vi færdige med alle kodebittene ( endelig!) .

Så nu kan du åbne scriptet fra Apk Multi Tool og trykke 12 for at kompilere appen. Hvis der vises fejl, kan du prøve at se inde i fejlloggen, for hvad der gik galt, men det var sandsynligvis, at du lavede en typografisk eller anden fejl under kodredigering.

Når bygningen er færdig, skal du trykke på 2 og derefter 13 for at underskrive appen igen.

Lagerapp'en indeholder en mappe, der hedder Skabeloner - du skal trække det i din usignerede apk ved hjælp af noget som 7zip. Kopier unsigned.apk til stedet-apk-here-for-signing-mappen inde i Apk Multi Tool. Tryk nu 18 i terminal scriptet for at batch apps i den mappe. Når det er færdigt, vil scriptet automatisk afslutte sig selv. Du kan nu indlæse .apk på din enhed!

PRO TIP: Hvis problemet er med din computer eller en bærbar computer / notesbog, skal du prøve at bruge Reimage Plus-softwaren, som kan scanne lagrene og udskifte korrupte og manglende filer. Dette virker i de fleste tilfælde, hvor problemet er opstået på grund af systemkorruption. Du kan downloade Reimage Plus ved at klikke her

Facebook Twitter Google Plus Pinterest