-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
61 lines (55 loc) · 4.32 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Набор бинарных утилит для операций с apk и скрипт для облегчения типовых операций
\7za.exe - архиватор - http://www.7-zip.org/download.html
\apktool.jar - программа для сборки-разборки apk - http://code.google.com/p/android-apktool/
\aapt_Custom.exe - программа, требующаяся для сборки apk (из комплекта apktool)
\aapt_SDK.exe - программа, требующаяся для сборки apk (из комплекта Android SDK) - http://developer.android.com/sdk/index.html
По умолчанию для разборки-сборки apk файлов (в т.ч. фреймворка) используется более свежая версия aapt.exe из SDK. Версия из набора apktool не умеет обрабатывать нестандартные названия ресурсов (вроде drawable-sw600dp-mdpi - выдает ошибку вида "invalid resource directory name: ...\res/values-sw600dp-port"), поэтому версия из SDK более всеядна. Тем не менее, если эта версия у вас выдает ошибки при разборке или сборке, можно попробовать использовать apktool версию. Для этого перед вызовом APK_worker.bat надо установить переменную окружения APKW_UseCustomAAPT (вызвать консоль, выполнить SET APKW_UseCustomAAPT=1, затем в ней запускать APK_worker.bat)
Часто для разборки-сборки apk файлов требуется установить файлы фреймворка. Для этого служит команда instfw. Скопируйте все /system/framework/*.apk и выполните APK_worker instfw {папка-с-файлами-фреймворка}
Скрипт APK_Worker
Позволяет легко выполнять основные операции с APK
APK_Worker.bat {command} [{source}] [{param}]
command:
?, help - справка
instfw - установить файл фреймворка (требуется только для разборки-сборки)
{source} - путь к apk фреймворка
decomp - полная декомпиляция APK (ресурсы + код) в папку {apk_path}\{apk_name}
{source} = путь к APK
{param} = (opt) папка для извлеченных файлов, по умолчанию: {apk_path}\{apk_name}
decomp_res - декомпиляция APK (только ресурсы - быстрее) в папку {apk_path}\{apk_name}
{source} = путь к APK
{param} = (opt) папка для извлеченных файлов, по умолчанию: {apk_path}\{apk_name}
decomp_src - декомпиляция APK (только код) в папку {apk_path}\{apk_name}
{source} = путь к APK
{param} = (opt) папка для извлеченных файлов, по умолчанию: {apk_path}\{apk_name}
fixfolders - переименовать папки, которые apktool распаковал неправильно.
В некоторых APK встречаются папки с названиями вроде "drawable-hdpi-v4", которые при декомпиляции становятся просто "drawable-hdpi". Собранный с такой модификацией, APK может падать при запуске либо в процессе работы. Поэтому перед дальнейшими действиями папки надо вернуть в исходное состояние.
{source} = путь к папке с декомпилированным APK
{param} = путь к файлу списка с данными для переименования папок
Формат файла списка:
{src_path} {dest_name} - на каждой строке один путь
{src_path} = путь к папке с именем, назначенным при декомпиляции, относительно корня APK.
{dest_name} = имя папки, которое должно быть
Пример:
"res\drawable-hdpi drawable-hdpi-v4"
build - собрать APK
{source} = путь к папке с декомпилированным APK
{param} = (opt) путь и имя для результирующего apk, по умолчанию: {src_path}\{src_name}_built.apk
Исходные файлы для APK будут помещены в папку {apk_path}\build\
modify - добавить/заменить/удалить файлы в APK
{source} = путь к APK
{param} = {src_folder} {lst_file}
{src_folder} = путь к папке, откуда копировать файлы. Папка должна повторять структуру APK
{lst_file} = путь к файлу списка с указанием уровня сжатия и путей добавляемых/удаляемых файлов
Формат файла списка:
{comp_lvl} {rel_file_path} - на каждой строке один путь
{comp_lvl} = "0" - добавить/заменить без сжатия, "5" - добавить/заменить с обычным сжатием, "-" - удалить
{rel_file_path} = путь относительно корня APK. Может включать маску.
Примеры:
"0 res\drawable\background.png" - добавить {src_folder}\res\drawable\background.png без сжатия
"0 res\xml\bla.xml" - добавить {src_folder}\res\xml\bla.xml с обычным сжатием
"- META-INF\CERT.RSA" - удалить META-INF\CERT.RSA
sign - удалить имеющиеся сертификаты и подписать APK
{source} = полный путь к APK
pack - запаковать файлы в APK с соблюдением правил компрессии файлов *.arsc и *.png
{source} = путь к папке с файлами
clean - удалить фреймворки из %HOMEDRIVE%%HOMEPATH%\apktool\framework