起因
- 随身WiFi的Android 4.4.4需要去hook system framework来去除各种控制
- 寻找了一圈可用的资源
- LSPosed:想都不用想,2021年才出,看了下8.1起步
- EdXposed:大善人,做了一个兼容性列表
- 可以看出,4.4.4正好是magisk和xposed时代的分水岭,十分的混乱(
安装Xposed
既然知道只能用原版Xposed,那就简单了。直接找Xposed Installer安装就可以了(吗?)
Xposed的所有网站均已关闭
Xposed安装需要根据机型来下载对应的app_process,所以没有这些下载站,那就根本没法安装Xposed。
Xposed这几个站目前是这样的(20231102):
- dl.xposed.info:down,http、https均不通
- dl-xda.xposed.info:关站,只留下一个声明
- repo.xposed.info:down
搜索了一下xda,发现差不多就是2022年底的时候关闭的。
而且竟然完全没有一丁点的备份,且Internet Archive WaybackMachine上的内容实际上并不全。这实在是有点说不过去(至少应该像magisk那样,放到github吧。。)
使用旧版Xposed
还好,论坛里有人指出,旧版Xposed 2.6.1会自带app_process,不需要网络也可以安装。但是Xposed和Magisk共用时,如EdXposed文档里所说,需要让Xposed变为Systemless。
- 搜索
xposed systemless magisk
可以找到:https://github.com/HuskyDG/magisk-xposed - 但是这个只支持5.0以上
- 按照EdXposed的提示,添加Dalvik字样搜索,便可以找到名人 @MlgmXyysd 提供的老版magisk xposed:https://github.com/Magisk-Modules-Repo/xposed_dalvik
- 下载好整个repo之后,按照说明,使用SD卡安装方法安装好Xposed后,再安装这个模块,即可完成安装
- 我确认了,2.6.1带的app_process就是v58版本的,和这个repo里面的一样
- 如果不放心也可以自己去/data/data/下面拿
修复旧版Xposed的linker warning
Xposed的app_process带着relocation,导致几乎所有进程启动时linker都会在stderr弹出warning,提示有性能与安全问题。
这导致一部分工具(如ARDC)无法正确解析命令输出,导致功能异常(无法显示屏幕)
解决方法是在上面的模块里面加上patch /system/bin/linker。
- 搜索找到字符串
- 找到引用
- 把fprintf的BL patch成nop (Arm Thumb的nop是00 BF)
- 保存patch