Инъекция приложений для Android
Можно ли внедрить приложение в другое после процесса установки?
Рассмотрим следующий пример: устройство D имеет root-права, а версия Android>= 5, что означает, что оно использует ART.
Приложение A устанавливается через "adb install App_A.apk". При первом запуске вызывается dex2oat и создается файл.oat для приложения A. Теперь моя цель - внедрить приложение B в приложение A, чтобы приложение B запускалось вместо приложения A. По другой причине файл.oat приложения B получает "кросс-скомпилированный" для устройства D. Какие части приложения A теперь необходимо заменить в приложении B, чтобы оно заработало?
Я думаю, что следующие шаги необходимы, но приложение все еще падает, когда я пытаюсь его запустить:
- используйте то же имя пакета "com.example.app"
- использовать то же имя приложения
- Exchange AndroidManifest.xml
- Exchange / Добавить папки res и lib и ресурсы.arsc
- Обмен.oat файл
- Используйте тот же ключ для подписания окончательного apk (в /data/app/App_A/base.apk) после обмена вышеуказанными частями
Насколько я понимаю, "classes.dex" не нужен, потому что файл oat уже присутствует. Так что по идее должно работать и с неработающим классом.dex?
Что мне здесь не хватает? Я также пытался следить за тем, что делает Android при запуске приложения (какие файлы были затронуты и т. Д.), Но на самом деле не смог за кадром:(Я был бы признателен за любую помощь. Большое спасибо!
С уважением