Skip to content

Бинарные утилиты, требующиеся для сборки/разборки APK

Notifications You must be signed in to change notification settings

spellcaster/Android_APKTools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Набор бинарных утилит для операций с 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

About

Бинарные утилиты, требующиеся для сборки/разборки APK

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published