Внедрение APK, повторная компиляция андроида
Что я хотел бы достичь
Декомпилируйте AndroidManifest.xml, упакованный в apk из двоичной формы в обычный xml файл, отредактируйте его и перекомпилируйте обратно в двоичный файл, приемлемый для apk. В основном мне нужен драйвер для файлов AXML
Короткий фон
Я работаю над проектом инъекции APK. Моя цель
- Разберите dalvik двоичный
- Прочитайте файл AndroidManifest xml и добавьте в него изменения, например, измените основное действие и добавьте разрешения
- перестроить и подписать файл apk
Я использую apktool для сборки и разборки apk. Однако инструмент apk работает только с параметром --no-res
, если apk не разбирается с ресурсами, которые он не может восстановить. Вот проблема github, описывающая эту ошибку.
Эта проблема
Поскольку я apktool d --no-res app-debug.apk
без флага res, apktool d --no-res app-debug.apk
манифест android появляется в двоичной форме. Я могу разобрать манифест, используя apktool
но я не могу его восстановить.
Что я хочу сделать
Мне нужно:
- Найдите способ разобрать манифест, а затем собрать его обратно в двоичную форму
- Найти способ использования
apktool
с ресурсами
То, что я пробовал до сих пор
отказ
Хотя stackoverflow - это сообщество для обмена знаниями, а не суждение о том, для чего он используется, - я вижу, что многие люди выбирают других в подобных вопросах с обвинениями в незаконной деятельности.
То, что я делаю, абсолютно законно и не будет использоваться для кого-либо.
Ответы
Ответ 1
Единственный надежный способ, который я обнаружил, чтобы переупаковать приложение с открытым текстом androiod manifest, - это переупаковать его с помощью aapt
напрямую.
aapt package -f -M ./AndroidManifest.xml -S res1/ -S res2/ ... -I android.jar -F MyProject.apk.unaligned
Чтобы создать apk, а затем:
aapt add -f MyProject.apk.unaligned classes.dex
Добавить скомпилированные источники в пакет.
Затем, используя jarsigner для подписи пакета:
jarsigner -storepass <keystore password> -keystore <keystore filename> MyProject.apk.unaligned <key name>
Ответ 2
При установке может возникнуть ошибка синтаксического анализа при следующем условии, см., Если кто-либо встретился с вами -
- Имя пакета изменяется после подписания: используйте точное имя в качестве подписанного пакета (вместо этого отредактируйте имя в манифесте)
- Пакет. скомпилирован на более высоком уровне API: Исправьте уровень API в файле манифеста.
- Пакет выполняется с SD-карты: Запустите (установите) apk -file из памяти телефона или используйте команду adb для ее установки.
Вы можете вручную подписать свой apk, как указано здесь.