Включить 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
Другие вопросы по тегам