Как да декомпилирам и тематизирам APK файлове за Android



Сега натиснете „Замени всички“ и ще промени всички @android: color / white, за да използва вместо това background_holo_dark. Сега продължете да превъртате целия .xml, търсейки всички низове на android: background, които използват шестнадесетична стойност (#fffffff) или нещо различно от това, с което току-що сме ги заменили. За тези, които намерите, променете низовете, за да използвате новия (abs__background_holo_dark).

Така че сме променили фона, сега ще променим цвета на текста. Така че следвайте същата процедура, която току-що направихме, но този път направете CTRL + F за „android: textColor“. Ще получите около 166 намерени реда.



Ще видите неща като „android: textColor =” # ffbbbbbb “и т.н. Така че погледнете отново Colors.xml и ние трябва да разберем кои редове да заменим за цвета на текста.



Можете да видите android: textColor = '# ffbbbbbb', '#ffffffff', '# ff717171' и '#ffcccccc' на екранната снимка и в резултатите от търсенето ви в Note ++. Отворете отново Colors.xml сега, за да намерите кой ред искаме да използваме за цвета на текста.



Затова се върнете към първия .xml и направете отново CTRL + H за диалога Замяна. Сега копирайте пастата „android: textColor =” # ffbbbbbb ”в горната и долната част и променете долния ред на„ android: textColor = ”@ color / text”.

Сега отново потърсете всички редове на android: textColor и променете всичко, което има шестнадесетична стойност в низа. И накрая, когато стигнете до файла styles.xml, искате да премахнете обратното от няколко реда, започвайки от ред 260 и продължавайки надолу за няколко реда. Така че изтрийте „Inverse“ от тези низове.

След това ще видите някои шестнадесетични стойности наоколо на редове 527, 536, 573, 579, 585, 601 и няколко други. Заменете от (#ffffffff) на (@ цвят / текст).



Натиснете CTRL + F, за да търсите в Notepad ++ за cacheColorHint , разделител , @ * android: цвят / , и Обратно .

CacheColorHint е превъртащият се фон, така че трябва да се уверим, че използват нашия цвят на фона. Разделителите се обясняват сами и ние можем да променим техните шестнадесетични стойности, ако искате. Единственото нещо е, че не трябва да докосвате нищо, което сочи към @drawable. Това обикновено са изображения, съхранявани като .png файлове другаде в папката .apk.

Когато търсите „ обратен ” , ще покаже препратки към textAppearanceInverse. Трябва да щракнете два пъти върху всеки един от тях и да изтриете Inverse от тези низове.

И накрая, търсенето на @ * android: color / просто ще провери отново дали сме пропуснали някакви редакции на рамката. Ако намерите нещо, което казва „android: popupBackground”> @ * android: color / white ”, трябва да го промените на„ android: popupBackground ”> @ color / abs__background_holo_dark”. Това включва линия 911, която може да бъде объркваща, защото вече сочи към android: color / black.

След това ще отворим res / values ​​/ colors.xml и ще го променим, за да изглежда така:

Следва res / values ​​/ styles.xml и превъртете надолу до ред 328. Променете го по следния начин:

() трябва да се промени на ()

Направете същото за ред 479, като промените „ светлина' да се ' черен ” .

Сега отидете в res / values-v11 / styles.xml и премахнете „ светлина' където пише „ Holo.Light ” .

След това ще отворите res / values-v14 / styles сега, което съдържа много низове. Така че на първите 46 реда искате да премахнете всички „ Светлина' и ' Обратно ” препратки и след това сменете родителите на редове 53 и 54 на „@ * android: style / Theme.Holo“.

На ред 69, от дясната страна родител, премахнете светлината от родителя @ android: style / Theme.Holo.Light.Dialog.

Това е много работа, нали? Може би отсега нататък ще оценявате по-добре темите и кожите на приложенията!

След това ще влезем в res / цвят папка. Има някои текстови файлове, които сочат към черно. Отворете res / colors / action_mode_item_text_color_state_list.xml

Ето как изглежда на склад. По-долу е как трябва да го направите.

Необходимо е да направите тези промени в следните xml файлове в папката / 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_bote.txt.xtm.sboll.txt.xtmxt.txt. xml, ss_bottom_bottom_text_color_light.xml, tab_text_foreground.xml.

Когато приключите с тях, отворете / res / drawable и има xmls, които контролират цвета на фона. Така че преминете през тях и ги накарайте да изглеждат така:

Приложете същите промени към всички други drawable.xml файлове.

Сега отворете test.apk и натиснете CTRL + ляв бутон, за да маркирате smali и AndroidManifest, след това щракнете с десния бутон и отново „Редактиране с Notepad ++“. Съгласете се с всички smali файлове от 1999 г. Когато се зареди, направете CTRL + F търсене на -0x100 (черно)

Ще получите около 8 посещения и този, който искате, е smali / com / dropbox / android / activity / TextEditActivity.smali, на линия 599. Щракнете двукратно върху този ред.

Ред 599 съдържа -0x100 в него, а ред 601 има “SetTextColor”. Има и променлива, която съответства на линия 599. Така че за кратко обяснение -0x100, -0x1000000 и дори 0x0 означават черно, -0x1000000 също е черно и дори 0x0. Променете ред 599, като премахнете двете 0 от 100 и премахнете / high16 по следния начин:

След това ще търсим @ * android: style, но на smali. Xml ще съдържа допълнително „0“ след x, но в smali не го използваме. Трябва да е „0x103004f“ вместо „0x0103004f“.

Направете търсене в Notepad ++ за @ * android: style /, който съдържа 0x103.

Второто попадение е „const v7, 0x1030073“. Потърсете отново във вашия public.xml от framework-res.apk. Ще видите, че това е идентификаторът за „Theme.Holo.Light.Dialog“. Ще трябва да го промените на публичния идентификатор на стила на противоположната тема.

Тъй като това е Theme.Holo.Light.Dialog, вие искате да го направите Theme.Holo.Dialog. Theme.Holo.Dialog има идентификационен номер „0x103006f“. Това ще промени изскачащия диалогов прозорец за предупреждение, за да използва по-тъмна тема, базирана на Holo, вместо по-светла тема, базирана на Holo.Light.

Следващото, което трябва да променим, е „0x103006e“, което е Theme.Holo.Light. Така че, продължете и го направете в обратен стил. Във вашия public.xml от framework-res.apk ще видите идентификатора за Theme.Holo е 0x0103006b. така че нека променим тази линия, за да изглежда така:

Има само още 2 от тях, които трябва да преминете. Следващото е „0x103000c“, което е за Theme.Light в public.xml. Обратното на това е Theme.Black, а не ThemeHolo. Така че в public.xml ще видите идентификатора за Theme.Black е „0x01030008“ - променете го така, че да изглежда така:

В други приложения ще има други неща за редактиране и промяна и с достатъчно практика ще можете да тематизирате почти всичко. Но засега приключихме с всички кодови битове ( накрая!) .

Така че сега можете да отворите скрипта от Apk Multi Tool и да натиснете 12, за да компилирате приложението. Ако се покажат някакви грешки, можете да опитате да погледнете в дневника за грешки какво се е объркало, но най-вероятно сте допуснали печатна грешка или друга грешка по време на редактирането на кода.

Когато компилацията завърши, натиснете 2 и след това 13, за да подпишете отново приложението.

Приложението за запаси съдържа папка с име „Шаблони“ - трябва да го плъзнете във вашия неподписан apk, използвайки нещо като 7zip. Копирайте unsigned.apk в папката „place-apk-here-for-signature“ в Apk Multi Tool. Сега натиснете 18 в скрипта на терминала, за да подписвате групово приложенията в тази папка. Когато приключи, скриптът автоматично ще излезе от себе си. Вече можете да заредите .apk на вашето устройство!

6 минути четене