首先我们要了解lspatch是什么。

lspatch是一款基于Android的免root框架,由LSPosed框架的开发者推出。它允许用户在不解锁Bootloader(简称bl锁)或获取Root权限的情况下,将Xposed模块内置到App中,从而实现在Android设备上添加新功能、修改系统设置或改变系统外观等个性化操作。

lspatch兼容大部分Android设备,特别是支持Android 9及其以上版本。它采用从应用内部修改的方案,而传统的Xposed方案则是从外部借助root权限修改。

特点与优势:

lspatch解决了非ROOT设备无法使用模块的痛点,无需解锁BL或获取Root权限,即可使用Xposed模块。它提供了与原版Xposed相同的API,使用YAHFA(或SandHook)进行hook,保证了功能的稳定性和兼容性。lspatch的使用相对简单,即使对于手机操作新手来说,也能轻松上手。

缺陷与不足:

由于lspatch实现Xposed功能是基于修改应用安装包实现的,因此,在安装包出现改动后,安装包的签名会发生变化。这会导致一些对签名验证非常严格的应用无法识别到修补后的应用,会对应用本身的使用体验造成极大的影响(例如提示签名与开放平台不一致,导致无法调用微信,对于没有root的机器来说无解)。应用也无法通过应用商店正常更新,无论是更新Xposed模块(ps:本地模式不用)还是更新应用版本,都需要到lspatch内对新版安装包重新修补。

此外,并不是所有的应用都能够进行修补,例如一些被企业数字加固过的安装包在修补过后会出现闪退等现象。对于不同的修补方式,不同的应用也会存在一些兼容性上的问题,导致某些模块无法正常工作或产生不可预期的行为,存在一定的局限性。

最后,lspatch只能使用作用域是应用本身的模块,一些作用域是系统本身的模块是无法使用的,因此玩机资源相较于LSPosed会少很多,部分开发者也对免root框架感到不满(出于防止倒卖以及开发考虑的目的),可能会在功能使用上进行较大的限制。

修补方式的区别:

本地模式:模块作用域可以动态更改,用户可以随时更改生效的模块。在仅更新模块时不需要再走一遍修补流程,直接升级模块即可(更新完模块记得重启一下应用)(更新应用依然要重新修补)。但经修补的应用需要lspatch管理器保持后台运行才能正常启动。这意味着用户需要始终确保lspatch在后台运行,否则修补后的应用会出现闪退等情况,无法正常工作。

便携模式:经修补的应用可以在没有管理器的情况下运行(可以不用把lspatch锁后台),修补后的成品安装包也可以直接分享出去,接收者无需进行任何操作就可以使用(网上各种定制包的由来)。但Xposed作用域不能动态管理配置。无论是更新模块还是更新应用都要到lspatch内重新走一遍修补流程。这限制了用户在使用过程中的灵活性和定制性。在目前的大环境下,一些模块并不支持便携/内置模式(被开发者抵制),功能限制更多。

在签名一致的情况下,本地模式可以与便携模式互相转化。


目前主流的版本:

lspatch:原版,由由LSPosed框架的开发者推出,现已归档停更。快捷安装功能依赖shizuku。

npatch:lspatch的改版,有第三方作者对其进行维护,与原版区别不是很大,但不大好用。

opatch:lspatch的魔改版本,对原版进行了优化,解决了原版lspatch需要锁后台以保证前台应用正常运行的缺陷(无需锁后台),且脱离了对shizuku的依赖,是目前免root框架最常用的版本。唯一的缺点是启动opatch时会有“原神”的启动动画,对于一些反感原神的用户不太友好。

onpatch:opatch的修改版本,在保留opatch的所有功能特性的基础上,仅去除了“原神”的启动动画,对一些内容也进行了微调。


实机演示:

以下演示版本为onpatch,演示应用为微博,Xposed模块为微博猪手

-5c240139b35410ebdc35ee0c999d99ee.jpg

onpatch主界面

-98e0c47efc2333e2cb4893322ad18560.jpg

onpatch设置页面(详细注入日志可以关掉)

-ae06f2dd0daaed163c31e2a51f66d524.jpg

onpatch管理页(应用)
在授权读取应用列表后就可以看到我们目前能被lsp识别到的应用

onpatch管理页(模块)
在这里可以看到我们设备上已经安装的模块

我们在应用管理页点击右下角的加号,在“选择存储目录”中点击“确定”。
这一步是用来确认我们修补之后的应用安装包会保存在系统的哪个位置
我们在文件管理器中选择一个用于存放修补后安装包的文件夹

**再次回到应用管理页,点击右下角的加号
**如果你的设备还没有安装这个应用,或者是打算更新已修补的应用,就选择第一个选项,在手机存储目录里找到你要使用的安装包。
如果你的设备已经安装了这个应用的原版(注意不是修补版本,因为不能二次修补),那么则选择第二个选项,在提供的应用列表里选择这个应用即可。

进入此页面后,我们可以调整修补设置。例如“注入文件提供者”推荐打开(配合MT管理器使用),“输出日志到目录”推荐关闭(如果没有反馈需求的话),覆写版本号按需打开(因为部分应用和模块对版本号有强制要求,除非有降级需求不然一般不开,开了之后应用商店会一直提示更新容易逼死强迫症)
本地模式与便携模式的区别在上文有说

本地模式下直接点击“开始注入”,此时会输出一个签名不一样的安装包

如图,如果我们一开始已经安装了原版应用,就需要卸载原版应用重新安装修补后的安装包。注意备份重要数据。

(如果有核心破解可以忽略,不过都核心破解了谁还用patch)

我们回到应用管理页面,可以看到多了一个应用(显示为“本地加载器模式”,“7”代表修补时lspatch的版本,如果后续lspatch更新的话会出现“优化”选项,点击“优化”就可以同步lspatch的版本),点击刚刚安装的应用,选择“模块作用域”

在弹出的模块页面里勾选我们需要使用的Xposed模块,勾选后点击右下角的“✔”

此时我们在应用设置页面强制停止这个应用,并清理应用缓存(防止出现兼容性问题导致闪退)。完成后进入该应用的设置页面,可以看到模块已成功生效。(一般模块的入口都会在设置页)

如果你选择的是便携模式(内置模式),那么点击“嵌入模块”

如果你的模块没有安装,或者想直接打包更高版本的模块,就选择第一个,找到你需要嵌入的Xposed模块安装包
如果你已经安装了模块,那么就选择第二个,在弹出的模块列表里勾选你需要注入的模块,勾选后点击右下角的“✔”,点击“开始注入”

安装后就可以看到刚刚安装的应用显示的是“内置模式”,不可对其进行本地模式的操作

内容大致就是这些,上文涉及到的 lsp 加载器以及模块可以直接在网上搜,绝大部分都能在爱玩机工具箱、酷安、GitHub 等平台上找到。

简单提供一些下载链接

lsp加载器下载链接

爱玩机工具箱

酷安

希望各位能养成爱动手,善查询,会提问的好习惯!