Включить Xposed модули из оболочки
Есть ли API для включения Xposed
модуль в Android из оболочки (используя ADB
), а не через пользовательский интерфейс устройства.
Это постоянно беспокоит автоматизацию, когда нам нужно установить наш модуль на чистый тестовый эмулятор. В настоящее время это единственный шаг, который мы должны сделать вручную.
Простой поиск в Google + обзор XPosed
документация ничего не дала.
2 ответа
Как вы уже знаете, этот подход не подходит для конечных пользователей, но для тестирования вы должны повторить путь от apk к файлу конфигурации Xposed:
Pre-леденец:
adb shell "echo '/data/app/com.xyz.example-1.apk' >> /data/data/de.robv.android.xposed.installer/conf/modules.list"
Леденец и новее:
adb shell "echo '/data/app/com.xyz.example-1 OR -2/base.apk' >> /data/data/de.robv.android.xposed.installer/conf/modules.list"
Для этих команд вам нужно, чтобы ваш эмулятор поддерживал root adb, введите
adb root
в командную строку. Если ваш эмулятор не поддерживает root / insecure adbd, вы также можете добавить su -c перед echo, чтобы получить права root.
РЕДАКТИРОВАТЬ: самый простой способ найти, какой номер вы должны использовать в имени каталога, это то, что предложил @brendan.
Это сработало для меня на KitKat:
(1) Обновите XML-файл shared_pres:
Если вы посмотрите на /data/data/de.robv.android.xposed.installer/shared_prefs/
каталог. Вы увидите enabled_modules.xml
файл.
В моем случае я работал только с одним модулем, поэтому я просто переписал файл. Если у вас есть несколько модулей, вы можете сделать редактирование / обновление.
Я бы местный enabled_modules.xml
файл, который выглядел так:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<map>
<int name="com.companyname.xposedmodule" value="1" />
</map>
...где com.companyname.xposedmodule
это имя вашего модуля.
Затем пост сборки вы можете выполнить просто:
adb push enabled_modules.xml /data/data/de.robv.android.xposed.installer/shared_prefs/
(2) Обновите файл конфигурации modules.list:
Вы также должны сделать то, что предложил @Maxr1998. Я написал это так:
adb shell "[ -f /data/app/com.companyname.xposedmodule-1.apk ] && echo '/data/app/com.companyname.xposedmodule-1.apk' >> /data/data/de.robv.android.xposed.installer/conf/modules.list
adb shell "[ -f /data/app/com.companyname.xposedmodule-2.apk ] && echo '/data/app/com.companyname.xposedmodule-2.apk' >> /data/data/de.robv.android.xposed.installer/conf/modules.list