Apk инъекции, перекомпиляция манифеста android

чего я хотел бы достичь

декомпилировать AndroidManifest.в XML упакован в apk из двоичной формы в обычный xml-файл, отредактируйте его и перекомпилируйте обратно в двоичный файл, приемлемый для apk. В основном мне нужен драйвер для AXML-файлов

Краткий

я работаю над проектом инъекции APK. Моя цель -

  1. разберите двоичный файл dalvik
  2. читать AndroidManifest xml и добавить изменения к нему, как изменить основное действие и добавить разрешения
  3. перестроить и подписать файл apk

я использую apktool для сборки и разборки apk. Однако инструмент apk работает только с , Если apk это disassemled с ресурсами, он не может быть построен. вот проблема github, описывающая эту ошибку.

проблема

так как я disassemle в apktool d --no-res app-debug.apk без флага res сгенерированный манифест android поставляется в двоичной форме. Я могу разобрать манифест, используя apktool но я не могу собрать его обратно.

то, что я хочу быть в состоянии сделать

мне нужно:

  • найдите способ разобрать манифест, а затем собрать его обратно в двоичную форму
  • найти способ использовать apktool ресурсы

что я пробовал до сих пор

  • замена бинарными AndroidManifest.xml С текстовая версия, а затем сборка. The apktool будет строить. Однако установка приложения на устройство не удается с "ошибка разбора есть проблема при разборе пакета".
  • использование различных версий 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>