惊喜:非侵入性的分区热修改方式
前段时间,维术介绍了一种在KernelSU
中无需借助模块即可实现所有分区热修改的特性(EROFS
也可以!),重点是,不修改真实文件系统,所有的更改都是以overlyfs
形式进入用户空间,目标文件系统没有任何实际修改,极大程度保证了安全。
使用方法
在/data/adb/modules/
下创建如下格式的几个目录:
1 | .rw/[TARGET]/upperdir/ |
其中[TARGET]
更换为你想修改的文件系统相对于根目录的位置,例如:
想修改/system
分区,就需要执行以下操作,然后重启:
1 | mkdir -p /data/adb/modules/.rw/system/upperdir |
接下来,就能自由修改/system
了。
此外,由于修改是以overlayfs
形式存在的,如果不慎误操作导致系统异常,仅需删除/data/adb/modules/.rw/目录即可撤销所有修改。
若系统异常,执行以下命令:
1 | rm -rf /data/adb/modules/.rw/ |
或者在第三方Recovery
删除该目录。
此特性本意是方便开发者测试使用,KernelSU
项目原则上不接受任何关于此特性的issue
,维术也明确表示不会提供任何技术支持。
若使用的是官方Recovery
或出现无法精细操作/data
等意外情况,格式化data
分区(或称:恢复出厂设置)也可以达到目的,但所有用户数据都会被清除。
碎碎念
在录制视频和直播时,维术狠狠吐槽了一下:
「这个特性在很早期就已经有了,翻一下源码就能找到,可是直到我录这个视频为止,没有一个人发现,一个都没有。」
听到这里,我的耳根有点红。
我也是属于那种用开源软件几乎从来不看源码的人,对我这种人来说,KSU
开不开源没有任何区别。
开了吗?如开。
他真开了吗?如开。
维术对开源的部分现状看得很清楚,我也非常理解太极停止维护后选择不开源,毕竟软件性质和复杂度摆在这里,大部分个人甚至组织很难接手如此体量的项目,开源后也不过是为商业公司白白做了嫁衣。