Lspatch使用
前言
xp模块可以使用户获得应用原本所没有的功能。
使用模块需要修改应用。对于Root用户来说,使用Lsposed是个不错的选择,也方便。
但是大多数用户没有将手机Root。
所以Lsposed的开发者做了一款功能相对不够全面,但仍能实现修改应用功能的工具:Lspatch。
Lspatch不需要Root权限运行。而且,lspatch还具备一种模块注入的模式:便携模式。
便携模式可以直接把注入模块后的应用打包。这样的应用运行不再需要依靠Lspatch,可以分享给其他人。
下面我以QQ做示例,为大家演示Lspatch的使用过程。
成品请见资源分享帖。
提一嘴:安装之前切记卸载原应用(记得备份),否则签名不一致会安装失败。
操作过程中若出错,试试重启手机或将应用停止运行。
> 准备
在这里,我选择了开源的Qa模块注入到QQ中,以实现防撤回功能。
Qa模块(全面叫QAuxiliary):https://github.com/cinit/QAuxiliary
一部安卓手机,可以使用模拟器,但千万不要使用安卓子系统,因为没有文件目录体系。
把上面的资源全部放到安卓手机里。注意要明确文件的位置,以便使用。
> 便携模式
便携模式可以直接把注入模块后的应用打包。
这样的应用运行不需要依靠Lspatch,可以分享给其他人。
安装Lspatch。
lspatch安装完长这样:

shizuku我们不理,目前用不着。安装完成后,进入Lspatch,下方点击管理,点击加号:

首次使用会提示选择一个目录来存储已修复的apk,选择自己方便调用的文件夹,并给予存储权限。此时弹出框有两个选项:

如果已经安装QQ,可以选择下面的"选择已安装的应用程序";
如果未安装,选择上面"从存储目录中选择(多个)apk".
然后在弹出的界面找到QQ(或安装包).选择完毕进入修补界面如下:

选择便携模式,点击"嵌入模块",选择模块qa。


点击右下角“开始修补”,等待修补完成。

进入手机的文件管理器,查找apk

这样,我们便得到了嵌入了qa的qq.
> 本地模式
本地模式,顾名思义只能在本地运行。
它不再嵌入模块,而只是修改应用以模块得以使用。
缺点很明显,即需要Lspatch在后台运行,应用才可正常运作。
优点是可以灵活管理模块,模块更新不需要重新打包。
同便携模式1-3步,进入修补界面,选择本地模式。

直接开始修补。
修补完成后,手动找到安装包安装。(lspatch中的安装键需shizuku赋权,如果你会用shizuku也可以。)
安装后重启手机(这是一个好习惯),打开Lspatch。在管理-应用里面会发现修补好的应用,点击后选择作用域,选择要使用的模块。


此时的模块需安装。
> 控制台模式
Lspatch还提供了另一种打包方式:从电脑打包.
通过他提供的一个jar包,打包出来本地模式或便携模式的包。
准备资源:
- JSE环境(版本不能太低) https://java.com/zh-cn
lspatch.jarhttps://github.com/LSPosed/LSPatch/releases/latest- 应用、模块的apk
在lspatch.jar所在的目录运行cmd.
控制台输入以下命令:
- 本地模式:
java -jar lspatch.jar xxx.apk -manager -l 2 - 便携模式:
java -jar lspatch.jar xxx.apk [-m 模块1.apk [-m 模块2.apk ...]] -l 2
xxx.apk为要修改的应用安装包.
> FAQ
Q1: 本地模式修补后在管理-应用-【修补好的应用】-模块作用域里找不到模块?
A1: 模块要先安装在手机里。
Q2: 电脑控制台无法正常运行lspatch.jar,提示UnsupportedClassVersionError?
A2: 运行JSE版本过低。我使用的JDK:https://www.123pan.com/s/v0XlVv-vJw9d
Q3: 首次使用会提示选择一个目录来存储已修复的apk,可是没有目录?
A3: Lspatch应用设置-权限设置-读写文件权限-允许。
Q3.1: 还是不行?
A3.1: 不要在Windows Subsystem for Android 上测试。若非如此,请重启手机。
Q4: 便携模式找不到生成后的安装包?
A4: 请检查修补日志最后一行是否提示出错。新版安卓隐私政策升级,文件管理器可能无法及时读取到文件,请手动到第二步的目录下查找或重启手机。
Q5: 应用修补后按"安装"提示Shizuku服务未连接?
A5: 属正常情况。Lspatch可搭配Shizuku使用,方便卸载、安装应用等操作。没有shizuku的用户可以手动卸载原应用后手动安装修补完的应用。
The End
Yuito 2023
Lspatch使用的更多相关文章
随机推荐
- 上传数据、下载模板文件解决方案(前端:antd;后端:.Net Core WebAPI)
一.Excel 模板下载 通过静态文件下载. 将模板文件放在根目录的 public 文件夹下备用. 下载事件方法如下:(通过临时生成一个 a 标签,触发后再移除) downLoadExcelModel ...
- 软件架构(六)MVC架构历史
一.引子 一个系统可能由很多子系统组成.各子系统内部高度内聚,子系统之间低耦合.子系统关注自己的职责.实现: 职责分离,关注点分离.----MVC架构早期就是为了分离视图.模型而诞生的. 注:很多 ...
- Spring源码知识
bean的生命周期: 实例化:在堆空间中申请内存,使用反射来实现:(createBeanInstance) 自定义属性赋值(setter).容器对象属性赋值(invokeAwareMethods) 前 ...
- 六、模型层(ORM)
六.模型层(ORM) Django中内嵌了ORM框架,不需要直接编写SQL语句进行数据库操作,而是通过定义模型类,操作模型类来完成对数据库中表的增删改查和创建等操作. O是object,也就类对象的意 ...
- 现在入行Java真的还有出路吗?
现在入行Java还来的及吗?未来该如何抉择? 最近有点迷茫了,互联网好像一夜之间进入了寒冬一样,到处都是就业难的样子,当然,不可否认的是,那些努力的大佬依旧是斩获多个offer,但是,窝就一个小镇做题 ...
- ES6 学习笔记(六)基本类型String
字符串String 1.字面量 需要注意的地方: 由单引号或双引号括起来的字符序列. 单双引号可以嵌套,由最外围引号定界字符串 字符串字面量可以拆分成数行,每行必须以反斜线(\)结束,且反斜线都不计入 ...
- 《ASP.NET Core技术内幕与项目实战》精简集-目录
本系列是杨中科2022年最新作品<ASP.NET Core技术内幕与项目实战>及B站配套视频(强插点赞)的精简集,是一个读书笔记.总结和提炼了主要知识点,遵守代码优先原则,以利于快速复习和 ...
- CF620E New Year Tree(树形+dfs序+线段树+状态压缩)
题目链接 题目大意 \(~~\)给出一棵 nn 个节点的树,根节点为 11.每个节点上有一种颜色 c\(_{i}\) 和m 次操作.操作有两种: \(~~~~\) 1. 1\(~\)u\(~\)c:将 ...
- 使用canvas 根据角度画圆弧
最近收到一个需求,根据角度在平面上画出对应的区域,实际就是 以固定的原点,根据起始角度和结束角度和半径,画出他的区域. 写了一小段,试试 export class Draw { construct ...
- [Android开发学iOS系列] TableView展现一个list
TableView 基础 本文讲讲TableView的基本使用. 顺便介绍一下delegation. TableView用来做什么 TableView用来展示一个很长的list. 和Android中的 ...