【问题标题】:Possible to pre-activate Xposed module without manually activating them via GUI?可以在不通过 GUI 手动激活的情况下预激活 Xposed 模块吗?
【发布时间】:2016-09-15 13:19:17
【问题描述】:

是否可以自动激活 Xposed 模块而不是在 Xposed GUI 中检查它们是否处于活动状态?模块的启用状态是否存储在易于访问的位置(在根设备上)...?

【问题讨论】:

  • 您可以通过 root 访问来实现它,但您需要先获得 root 访问权限,因此该路线没有任何实际好处。这是一项安全功能,与打开 APK 文件时必须手动单击“安装”的原因相同。
  • 这对我来说没问题。我在想要自动激活 Xposed 模块的多个设备上具有 root 访问权限。我该怎么办?你知道吗?
  • 您可以修改Xposed Installer数据目录下的conf/modules.list文件(源代码见here)。请注意,之后您仍然需要重新启动设备。
  • 如果您将此作为答案,我会将其标记为这样,因为这正是我想要的。

标签: xposed xposed-framework


【解决方案1】:

您可以通过修改 Xposed Installer 数据目录中的 conf/modules.list 文件来实现这一点,只需将您的 APK 文件的路径添加到列表中即可。

您还应该修改shared_prefs/enabled_modules.xml 文件,以便您的更改反映在 Xposed 安装程序中(否则,该模块将被启用,但在 Xposed 安装程序中显示为禁用)。

更改后需要重启设备。

请注意,这需要 root 访问权限,因为该文件位于另一个应用程序的内部数据目录中。我强烈建议按照正常方式打开 Xposed Installer 应用程序,让用户自己启用模块:

public static boolean startXposedActivity(Context context) {
    Intent intent = new Intent("de.robv.android.xposed.installer.OPEN_SECTION");
    intent.putExtra("section", "modules");
    try {
        context.startActivity(intent);
        return true;
    } catch (ActivityNotFoundException e) {
        return false;
    }
}

【讨论】:

  • 它有效,我了解所涉及的风险。我在受控环境中工作。但是,在 conf/modules.list 中;列出了 apk 而不是包名称,这对我来说很烦人,因为 android 附加了 -1.apk -2.apk 等等。你知道这个计划背后的原因吗?我不想在安装之前激活 apk,所以我还不知道名称。将apk复制到/data/app中更好吗? pm install apk 真的除此之外还有什么作用?
  • @JohnyTex 我相信这是为了让 Android 可以在运行时更新应用程序。它将在 -1 和 -2 之间交替,更新完成后它将交换“活动路径”并删除旧版本。您可能可以通过先卸载应用程序,使其每次始终安装为 -1(但您会丢失应用程序数据)。
  • 好的,所以你不相信它可能是 -3 或 -4 等等?我认为这可能与 multidex 或其他什么有关,但您不相信?
  • @JohnyTex 我从未见过 -3 或 -4。另一种解决方案是将两个文件路径都添加到模块列表中,我相信无效条目会被忽略。
  • 我发现自己在与这些东西混合时会遇到很多引导循环......
猜你喜欢
  • 2013-09-22
  • 1970-01-01
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多