Xpatch icon indicating copy to clipboard operation
Xpatch copied to clipboard

[Feature Request] 模块内配置的外部编辑与预配置

Open jiwangyihao opened this issue 1 year ago • 1 comments

Is your feature request related to a problem?/你的请求是否与某个问题相关?

一直以来,能够将 XP 模块直接嵌入宿主应用中也是 XPatch 的一大特色,它极大的方便了许多小白及无 Root 用户使用 XP 模块,大大拓展了 xposed 的使用范围。但是,在这样使用时,我们却总是会遇到一些不太方便的地方,比如:

  • 当嵌入一个通用类模块时,往往需要为不同的应用使用不同的配置,而这种配置却不能提前内嵌,也不能在不同用户间方便地复用;
  • 一些模块明明支持良好,却因为需要在模块提供的独立客户端中进行配置而无法在这样使用; ……

Describe the solution you'd like/描述你想要的解决方案

那么,有没有一种可能,可以让我们在修补应用时就预先完成模块的配置,有没有一种可能,可以让我们在 XPatch 管理器中手动完成对模块的配置呢? 当然,首先不得不承认的是不同模块的配置保存方式可能天差地别,但是,我们并非没有一种比较标准、易用并且较为广泛地被许多模块所使用的 API——XSharedPreferences。更好的是,XSharedPreferences 的索引的字符串类型也为手动编辑提供了更多可能。 在我的设想中,我们可以提供一种这样的功能:

  • 首先,我们可以在管理器中加入一种类似编辑『环境变量』的功能来允许用户根据宿主应用和模块手动编辑模块的 XSharedPreferences 中的数据,同时还可以在修补应用时就提供其中数据的默认值;
  • 其次,我们可以提供一种类似于 xposed 中用于描述模块信息的 API,以便模块可以向管理器描述自己所使用的数据的
    • 索引
    • 名称
    • 描述
  • 最后,当嵌有模块和默认配置的应用被更新时,对于相应数据的更新策略应该是:
    • 如果该数据未曾在安装后被编辑过(也即保持着最初安装时修补者设定的默认值),那么这种数据用户应当期待当自己更新了修补者的新版应用以后自动应用修补者设定的新的默认值;
    • 如果该数据曾经在安装后被编辑过,也即用户手动对此设定了新的值,那么这种数据用户应当希望继续保持自己的自定义设置。

Additional context/其他信息

希望大佬能采纳这条建议!!!😂

jiwangyihao avatar Jan 08 '23 15:01 jiwangyihao