Как декомпилировать 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 для диалога Replace. Теперь скопируйте строку «android: textColor =» # ffbbbbbb »сверху и снизу и измените нижнюю строку на« android: textColor = »@ color / text».

Теперь еще раз просмотрите все строки android: textColor и измените все, что имеет шестнадцатеричное значение в строке. Наконец, когда вы перейдете к файлу styles.xml, вы захотите удалить инверсию из нескольких строк, начиная со строки 260 и продолжая вниз на несколько строк. Так что удалите «инверсию» из этих строк.

Затем вы увидите несколько шестнадцатеричных значений в строках 527, 536, 573, 579, 585, 601 и некоторых других. Замените from (#ffffffff) на (@ color / text).



Нажмите CTRL + F для поиска в Notepad ++ для cacheColorHint , разделитель , @ * android: цвет / , и Обратный .

CacheColorHint - это фон прокрутки, поэтому нам нужно убедиться, что они используют наш цвет фона. Разделители говорят сами за себя, и мы можем изменить их шестнадцатеричные значения, если хотите. Единственное, что вы не должны касаться ничего, что указывает на @drawable. Обычно это изображения, которые хранятся как файлы .png в другом месте в папке .apk.

Когда вы ищете ' обратный » , он отобразит ссылки на textAppearanceInverse. Вам нужно дважды щелкнуть каждую из них и удалить инверсию из этих строк.

Наконец, поиск по запросу @ * 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 в правой родительской части удалите Light из родительского элемента @ * android: style / Theme.Holo.Light.Dialog.

Это ведь много работы? Возможно, отныне вы будете больше ценить темы и скины приложений!

Далее мы перейдем к разрешение / цвет папка. Там есть несколько текстовых файлов, которые указывают на черный цвет. Откройте файл 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_bottom_text_smart_text_small 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, удалив два нуля из 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 в папку «место-apk-здесь-для-подписи» внутри Apk Multi Tool. Теперь нажмите 18 в сценарии терминала, чтобы подписать приложения в этой папке. Когда это будет сделано, скрипт автоматически завершит работу. Теперь вы можете загрузить .apk на свое устройство!

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