Apk инъекции, перекомпиляция манифеста android
чего я хотел бы достичь
декомпилировать AndroidManifest.в XML упакован в apk из двоичной формы в обычный xml-файл, отредактируйте его и перекомпилируйте обратно в двоичный файл, приемлемый для apk. В основном мне нужен драйвер для AXML-файлов
Краткий
я работаю над проектом инъекции APK. Моя цель -
- разберите двоичный файл dalvik
- читать AndroidManifest xml и добавить изменения к нему, как изменить основное действие и добавить разрешения
- перестроить и подписать файл apk
я использую apktool для сборки и разборки apk. Однако инструмент apk работает только с , Если apk это disassemled с ресурсами, он не может быть построен. вот проблема github, описывающая эту ошибку.
проблема
так как я disassemle в apktool d --no-res app-debug.apk
без флага res сгенерированный манифест android поставляется в двоичной форме. Я могу разобрать манифест, используя apktool
но я не могу собрать его обратно.
то, что я хочу быть в состоянии сделать
мне нужно:
- найдите способ разобрать манифест, а затем собрать его обратно в двоичную форму
- найти способ использовать
apktool
ресурсы
что я пробовал до сих пор
- замена бинарными
AndroidManifest.xml
С текстовая версия, а затем сборка. Theapktool
будет строить. Однако установка приложения на устройство не удается с "ошибка разбора есть проблема при разборе пакета". - использование различных версий
apktool
:v2.3.2
,v2.3.1
,v2.3.0
,v2.2.0
,v2.2.1
,v2.2.2
- компиляция axml с использованием следующих проектов:https://github.com/rednaga/axmlprinter ; https://github.com/ZaratustraN/axml-parser ; https://github.com/shazam/axmlparser
отказ от ответственности
хотя stackoverflow-это сообщество для обмена знаниями, а не для оценки того, для чего оно используется, - я вижу, что многие люди выбирают других в подобных вопросах с обвинениями в незаконной деятельности.
то, что я делаю, абсолютно законно и не будет использоваться для эксплуатации кого-либо.
2 ответов
установка может дать ошибку разбора при следующем условии, посмотрите, встретились ли с вами -
- имя пакета изменяется после подписания: используйте точное имя как подписанный пакет (вместо этого, измените имя в Манифесте) . компилируется на более высоком уровне API: исправьте уровень API в Файл манифеста.
- пакет выполняется с SD-карты: запустите (установите) apk - файл из памяти телефона или использовать команду adb для установки он.
вы можете вручную подписать apk, как указано здесь.
единственный надежный способ, который я нашел для переупаковки приложения с помощью простого текста 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>