Hur dekompilerar och teman Android APK-filer



Klicka nu på 'Ersätt alla', och det kommer att ändra alla @android: färg / vita för att använda bakgrunden_holo_dark istället. Fortsätt nu att bläddra igenom hela .xml och leta efter valfri Android: bakgrundssträngar som använder ett hex-värde (#fffffff) eller något annat än vad vi just ersatte dem med. För de du hittar, ändra strängarna för att använda den nya (abs__background_holo_dark).

Så vi har ändrat bakgrunden, nu ska vi ändra textfärgen. Så följ samma procedur som vi precis gjorde, men gör den här gången en CTRL + F för 'android: textColor'. Du hittar cirka 166 rader.



Du kommer att se saker som ”android: textColor =” # ffbbbbbb, etc. Så titta inuti Colors.xml igen och vi måste ta reda på vilka rader som ska ersättas för textfärgen.



Du kan se android: textColor = ”# ffbbbbbb”, “#ffffffff”, “# ff717171” och “#ffcccccc” på skärmdumpen och i dina sökresultat i Not ++. Öppna din Colors.xml igen nu för att hitta vilken rad vi vill använda för textfärgen.



Så gå tillbaka till den första .xml och gör CTRL + H för att ersätta dialogen igen. Kopiera nu strängen ”android: textColor =” # ffbbbbb ”till toppen och botten och ändra den nedre raden till“ android: textColor = ”@ color / text”.

Nu igen, söka igenom alla android: textColor-rader och ändra allt som har ett hex-värde i strängen. Slutligen när du kommer till filen styles.xml vill du ta bort det inversa från några rader, börja vid rad 260 och fortsätta nedåt i några rader. Så ta bort 'Inverse' från dessa strängar.

Därefter ser du några hex-värden runt på linjerna 527, 536, 573, 579, 585, 601 och några andra. Ersätt från (#ffffffff) till (@ färg / text).



Tryck på CTRL + F för att söka i Notepad ++ efter cacheColorHint , delare , @ * android: färg / och Omvänd .

CacheColorHint är den rullande bakgrunden, så vi måste se till att de använder vår bakgrundsfärg. Avdelarna är självförklarande och vi kan ändra deras hex-värden om du vill. Det enda är att du inte får röra något som pekar på @drawable. Det är vanligtvis bilder som sparas som .png-filer någon annanstans i .apk-mappen.

När du söker efter “ omvänd' kommer det att visas referenser till textAppearanceInverse. Du måste dubbelklicka på var och en av dem och ta bort det inverse från dessa strängar.

Slutligen kommer sökningen efter @ * android: color / bara att dubbelkolla om vi missade några ramredigeringar. Om du hittar något som säger “android: popupBackground”> @ * android: color / white ”, måste du ändra det till“ android: popupBackground ”> @ color / abs__background_holo_dark”. Detta inkluderar rad 911, vilket kan vara förvirrande eftersom det redan pekar på android: färg / svart.

Därefter öppnar vi res / values ​​/ colours.xml och ändrar det så att det ser ut så här:

Nästa res / values ​​/ styles.xml och bläddra ner till rad 328. Ändra den så här:

() bör ändras till ()

Gör detsamma för rad 479, ändra ” ljus' till “ svart' .

Gå nu in i res / values-v11 / styles.xml och ta bort “ ljus' där det står “ Holo.Light ” .

Därefter öppnar du res / values-v14 / styles nu, som innehåller många strängar. Så på de första 46 raderna vill du ta bort alla “ Ljus' och “ Omvänd' referenser och ändra sedan föräldrarna på rad 53 och 54 till “@ * android: style / Theme.Holo“.

På rad 69, på höger sida förälder, ta bort ljuset från @ * android: style / Theme.Holo.Light.Dialog förälder.

Det här är mycket arbete, eller hur? Kanske från och med nu kommer du att bli mer uppskattad av app-teman och skinn!

Därefter går vi in ​​i res / färg mapp. Det finns några textfiler där som pekar på svart. Öppna res / färger / action_mode_item_text_color_state_list.xml

Så ser det ut på lager. Nedan är hur du behöver göra det.

Du måste göra de här ändringarna i följande xml-filer i mappen / res / colours: 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_xom_bott_date_x_bott_xmall.xml. xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml.

När du är klar med dessa, öppna / ändra / rita och det finns xmls som styr bakgrundsfärg. Så gå igenom dem och få dem att se ut så här:

Tillämpa samma ändringar på alla andra drawable.xml-filer.

Öppna nu test.apk och tryck CTRL + vänsterklicka för att markera smali och AndroidManifest, högerklicka sedan och “Redigera med Notepad ++” igen. Håller med alla smali-filer från 1999. När det laddas gör du en CTRL + F-sökning efter -0x100 (svart)

Du får cirka 8 träffar, och den du vill ha är smali / com / dropbox / android / activity / TextEditActivity.smali, på rad 599. Dubbelklicka på den raden.

Linje 599 innehåller -0x100 i den, och rad 601 har 'SetTextColor'. Det finns också en variabel som matchar rad 599. Så för att kort förklara, -0x100, -0x1000000 och till och med 0x0 betyder svart, -0x1000000 är också svart och till och med 0x0. Ändra rad 599 genom att ta bort de två nollarna från 100 och ta bort / high16 så här:

Därefter söker vi efter @ * android: stil, men i smali. Xml kommer att innehålla ett extra '0' efter x, men i smali använder vi det inte. Det måste vara '0x103004f' istället för '0x0103004f.

Sök i Notepad ++ för @ * android: style / som innehåller 0x103.

Den andra träffen är “const v7, 0x1030073”. Sök efter det i public.xml från framework-res.apk igen. Du ser att det är id för 'Theme.Holo.Light.Dialog'. Du måste ändra det till motsatt temastils offentliga id.

Eftersom den här är Theme.Holo.Light.Dialog, vill du göra den till Theme.Holo.Dialog. Theme.Holo.Dialog har id: n “0x103006f”. Det kommer att ändra en popup-dialogruta för att använda ett mörkare Holo-baserat tema istället för ett ljusare Holo.Light-baserat tema.

Nästa vi behöver ändra är “0x103006e” som är Theme.Holo.Light. Så fortsätt och gör det till motsatt temastil. I din public.xml från framework-res.apk ser du id för Theme.Holo är 0x0103006b. så låt oss ändra den raden så att den ser ut så här:

Det finns bara två till att gå igenom. Nästa är '0x103000c', som är för Theme.Light i public.xml. Motsatsen till det är Theme. Black, inte ThemeHolo. Så i public.xml ser du id för Theme.Black är “0x01030008” - ändra det så att det ser ut så här:

I andra appar skulle det finnas andra saker att redigera och ändra, och med tillräckligt med övning kommer du att kunna tematisera nästan vad som helst. Men nu är vi klara med alla kodbitarna ( till sist!) .

Så nu kan du öppna skriptet från Apk Multi Tool och slå 12 för att kompilera appen. Om några fel visas kan du försöka titta in i felloggen för vad som gick fel, men det är troligtvis att du gjorde ett stavfel eller annat misstag under kodredigeringen.

När byggnaden är klar trycker du på 2 och sedan 13 för att underteckna appen igen.

Lagerappen innehåller en mapp med namnet 'Mallar' - du måste dra den till din osignerade apk med något som 7zip. Kopiera unsigned.apk till mappen 'placera-apk-här-för-signering' i Apk Multi Tool. Tryck nu 18 i terminalskriptet för att batchsignera apparna i den mappen. När det är klart stängs skriptet automatiskt av sig själv. Du kan nu ladda .apk på din enhet!

6 minuter läst