Я пытаюсь отредактировать AndroidManifest.xml приложения, которое я скачал из магазина Play, чтобы включить отладка.
Я могу постоянно вносить изменения в smali-файлы приложения, перекомпилировать APK, выровнять его, подписать и без проблем установить обратно на свой телефон. Однако я не могу внести какие-либо изменения в AndroidManifest.xml.
Когда я добавляю application:debuggable="true" в AndroidManifest.xml< /code>, телефон выдает INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION после попытки установки (на реальном оборудовании).
Автор apktool считает, что это ошибка в jarsigner, а не в apktool. (см. https://github.com/iBotPeaches/Apktool/issues/2374)
Команды:
Декомпилировано с:
Код: Выделить всё
apktool d src/base.apk -f --force-manifest -r -o src/decoded
Код: Выделить всё
apktool b --force-all -o src/output/base-unaligned.apk src/decoded
zipalign -f 4 src/output/base-unaligned.apk src/output/modified-base.apk
jarsigner -sigalg SHA256withRSA -digestalg SHA1 -keystore ~/.android/debug.keystore -storepass android src/output/base-unaligned.apk androiddebugkey
Код: Выделить всё
adb install src/output/modified-base.apk
- Пытался возиться с алгоритмами, которые использует jarsigner, потому что некоторые из них выдают предупреждения о том, что ненадежный. Я не думаю, что это имеет большое значение.
- Попробовал клонировать apktool и использовать предварительную версию.
Пропробовал множество вариантов этих команд сборки
Обычно, когда APK декомпилируется с помощью apktool, AndroidManifest.xml на самом деле не является XML-файлом. Вместо этого он имеет двоичный формат, называемый AXML.
Чтобы заставить apktool декомпилировать AndroidManifest.xml из AXML обратно в обычный XML, необходимо декомпилировать apk с помощью опция apktool --force-manifest. Я думаю, проблема в том, что AndroidManifest.xml не преобразуется обратно в AXML при повторной компиляции APK. Я проверил это, разархивировав полученный APK и проверив.
Я бы попробовал преобразовать его в AXML сам, чтобы посмотреть, исправит ли это проблему, но преобразование XML в AXML — непростая задача. Это можно было бы сделать с помощью aapt или aapt2, но это не самые удобные для пользователя программы в мире. Еще есть проект под названием axml2xml, но мне не удалось заставить его работать.
Вопросы
- Есть ли более простой способ включить отладку приложения в контексте обратного проектирования?
- Может ли моя гипотеза быть подтверждена или опровергнута?
- В чем причина этой проблемы и как ее устранить или устранить?
Подробнее здесь: https://stackoverflow.com/questions/639 ... -debugging
Мобильная версия