前言众所周知,如今许多的安卓app,为了获利,为了赚钱,为了老板买别墅换豪车,加入了非常多的广告及推广内容以及软件模块。随着安卓的时代发展,xposed的出现,在一定程度上改变了这种困境。
来自XDA论坛:Xposed is a framework that allows users to easily apply add-ons (called Modules) to the ROM. Rather than flashing a new ROM to get a specific feature, you can use Xposed to add individual features to whatever ROM you’re using, or even just the stock ROM.
Xposed 是一个允许用户轻松将附加组件(称为模块)应用到安卓系统的框架。 您可以使用 Xposed 将单个功能添加到您正在使用的任何安卓系统,不需要刷新系统就可以获得特定功能。
而使用Xposed的必要前提是,手机需要root。而国内厂商除了小米外,其他厂商(华为、荣耀、OPPO、vivo等)几乎都没有开放bootloader,更不用说root权限了。因此又出现了一种免root框架-太极,不过太极操作相对于普通软件又多了许多的步骤,使用起来相对要麻烦些。而如今,xpatch提供了一种很好的解决方案,将xposed模块打包进apk包中,实现了免root使用xposed框架,也不需要多安装app。
Xpatch用来重新签名打包Apk文件,使重打包后的Apk能加载安装在系统里的Xposed插件,从而实现免Root Hook任意App。其原理是对Apk文件进行二次打包,重新签名,并生成一个新的apk文件。 在Apk二次打包过程中,插入加载Xposed插件的逻辑,这样,新的Apk文件就可以加载任意Xposed插件,从而实现免Root Hook任意App的Java代码。
实际上,Xpatch的使用是非常方便的,仅需一行指令,就可以自行制作自己想要的内置模块app,在前几天我连续发布了三款利用此技术重新打包的软件
哔哩哔哩6.22版本 知乎8.5.0版本 百度贴吧12.19.1版本,反响很是不错,不过授人以鱼不如授人以渔,本身xpatch的制作非常简单,有电脑都能做。故有了今天的教程
1.下载lspatch的jar文件
2.打开cmd,并进入你所下载的jar文件所在目录(切换盘符:例如切换至D盘,则直接输入 D: 然后回车即可。进入目录 cd 目录名)
3.下载你要制作的软件apk文件以及xposed模块apk文件
在此我们以知乎为例,正好知乎的知了模块更新了
我们打开应用汇,搜索知乎,进入软件主界面,注意要看软件版本和你下载的模块是否兼容,一般模块作者都会写明他的模块支持哪些版本。下载保存到和jar文件的同一目录
模块apk文件也下载并放于jar文件同一目录
如果你想后面的过程简单一些,请将你下载的apk文件重命名。如图所示
4.回到cmd,根据下面的模板输入指令
[Java] 纯文本查看 复制代码 java -jar lspatch.jar 【软件文件名】 -m 【xposed模块文件名】 -l 2
例如我要制作知乎的,我就在cmd窗口中输入 java -jar lspatch.jar zhihu.apk -m zhiliao.apk -l 2,按下回车键即可
等待java程序自动生成重新打包的apk文件,出现Done之后,在和jar文件的同目录下就会有一个新的apk文件,这个文件就是打包完成且内置了模块的apk安装包,至此你就成功制作了一个内置xposed模块的软件了,此时你就可以将apk文件传到你手机内进行测试了。部分模块的设置内容在其模块app中而并非集成在软件中(例如皮皮虾助手的设置需要安装皮皮虾助手app,皮皮虾中是看不到设置的)
三、使用教程(高级)
我们也可以在重新打包的时候增加一些参数,以下均复制于lspatch当中的help内容
-h,--帮助
打印此消息
-r, --allowdown
允许通过将 versionCode 覆盖为 1 来降级安装(在大多数情况下,应用仍然可以获得正确的版本代码)
默认值:假
-d, --debuggable
将应用设置为可调试
默认值:假
-m,--嵌入
将提供的模块嵌入到 apk
默认: []
-f,--强制
强制覆盖存在的输出文件
默认值:假
- -manager
使用管理器(不能使用嵌入模块)
默认值:假
-o,--输出
输出目录
默认: 。
-l, --sigbypasslv
签名绕过级别。 0(禁用)、1(pm)、2(pm+openat)。 默认 0
默认值:0
--v1
使用 v1 签名进行签名
默认值:假
--v2
使用 v2 签名进行签名
默认值:真
--v3
使用 v3 签名进行签名
默认值:真
-v,--详细
详细输出
默认值:假
五、常见报错解决
The source apk file does not exit. Please provide a correct path.
此错误意思是你输入的文件名(文件路径)有问题,重新检查输入的文件名或文件路径
其他报错由于还没遇到,待发现再补充
六、注意事项1.对于使用了签名校验的应用,使用Xpatch得到的apk可能无法启动,或者无法获取到网络数据,比如优酷,趣头条等。
2.根据这几天发布软件的反馈,华为和荣耀设备对于此类软件的兼容性非常差,基本是没法用,具体原因不再赘述
3.由于签名更改,QQ登录、微信登录、应用内直接分享是不可用的,此问题几乎无解
4.QQ、微信、支付宝等软件对于xposed模块几乎是零容忍,使用xposed模块可能会造成账号封禁,请悉知!
5.Xposed Hook框架暂时不支持Dalvik虚拟机。故此类软件在虚拟机上几乎是无法运行
6.部分模块报错请咨询模块提供者,可以看看他们的讨论群或者Github
7.原版应用和xpatch应用不能覆盖安装,因为签名不同必须卸载重新安装,但xpatch应用可以覆盖安装无需卸载重装。
8.本文方法只提供学习,请勿用于违法违规行为
后记首先很感谢如今的安卓、java开发者,为发烧友制作出了丰富多彩的第三方内容,为对抗软件臃肿、广告做出了非常大的贡献。楼主也只是一个搬运工,做出的贡献微乎其微。也希望国内安卓生态能够越来越好。关于安全性的问题,首先xpatch、lspatch打包工具均为开源,大部分模块也是开源,如果有危险代码很快就会有大牛发现,所以各位是可以安心使用的。Xpatch有一个安卓app,之前使用过几次发现效果不好,也不知道是什么原因造成的,制作出的app无法安装,故还是用电脑制作了。本文可能有错误的地方,欢迎各位朋友指出,小的虚心受教!本文也会在其他平台发布,包括但不限于酷安社区、vx等,转载请注明来源 |