首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启用shell中的Xposed模块

启用shell中的Xposed模块
EN

Stack Overflow用户
提问于 2015-04-07 22:49:17
回答 2查看 4.5K关注 0票数 5

是否有一个应用程序接口可以在安卓系统中通过外壳(使用ADB)而不是通过设备的UI来启用Xposed模块。

当我们需要在一个干净的测试仿真器上安装我们的模块时,这对于自动化来说一直是一个麻烦。这是目前我们需要手动完成的唯一步骤。

简单的谷歌搜索+ XPosed文档概览不会产生任何有价值的东西。

EN

回答 2

Stack Overflow用户

发布于 2015-05-07 02:09:01

正如您已经知道的,这是终端用户不喜欢的方法,但为了测试,您必须将apk的路径回显到Xposed配置文件:

棒棒糖前奏:

代码语言:javascript
复制
adb shell "echo '/data/app/com.xyz.example-1.apk' >> /data/data/de.robv.android.xposed.installer/conf/modules.list"

棒棒糖和更新版本:

代码语言:javascript
复制
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,请键入

代码语言:javascript
复制
adb root

添加到命令行中。如果您的仿真器不支持根/不安全的adbd,您还可以在回显之前添加一个su -c来获得根权限。

编辑:最简单的方法是找到你必须在目录名称中使用的号码,@brendan建议。

票数 6
EN

Stack Overflow用户

发布于 2015-07-22 00:23:38

这对我在KitKat上很有效:

(1)更新shared_pres xml文件:

如果你看一下/data/data/de.robv.android.xposed.installer/shared_prefs/目录。您将看到一个enabled_modules.xml文件。

在我的例子中,我只使用一个模块,所以我只需覆盖该文件。如果您有多个模块,您可能希望进行编辑/更新。

我将有一个本地enabled_modules.xml文件,如下所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<map>
  <int name="com.companyname.xposedmodule" value="1" />
</map>

...where com.companyname.xposedmodule是模块的名称。

然后,在构建后,您可以执行一个简单的:

adb push enabled_modules.xml /data/data/de.robv.android.xposed.installer/shared_prefs/

(2)更新modules.list配置文件:

你也需要按照@Maxr1998的建议去做。我是这样编写脚本的:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29494508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档