KernelSU 千万不能随随便便回退版本了!!!

科技   科技   2024-02-25 12:56   广东  

上次我告诉大家,KernelSU 采用了一项名为 稀疏文件 的技术来存储模块文件,带着这个特性的新版本昨天发布了,它有几个好处:

  1. 1. 可以兼容一些动态体积的模块;之前的 image 文件的大小为 模块 ZIP 解压后大小 + 256 M,如果模块内部带有压缩文件,会在安装时解压缩,或者干脆去网络上下载文件,此时 256M 可能不够用,稀疏文件可以很好地解决这个问题。

  2. 2. 可以更好地利用 OverlayFS 的可写特性,让特定分区变成 writable,方便开发过程。在这之前,image 额外的空间为 256 M,如果你用这点空间去存储分区的 upperdir,很容易就占满了。

不过,此次升级带来了一个问题,就是原来的 image 文件在迁移到新的稀疏文件格式时,可能会花费较长的时间,有些童鞋等不及以为是出 Bug 了,没有等待安装过程的结束直接关闭管理器或者重启手机打断了这个过程。

此时,modules.img 可能正在执行文件系统校验,强行退出会导致模块数据丢失,这还不是最可怕的。最可怕的是,如果你在此时回退到旧版本的 KernelSU 管理器,就可能会引发致命 Bug。

因为旧版本的管理器,无法识别和处理稀疏文件,它会把那个 1T 的 modules.img 按字节复制,很显然,这个过程会耗尽你手机的存储空间

如果你确定你需要回退,为了避免这个问题,你唯一的解决办法,就是删掉 /data/adb/ksu 目录,重启手机然后重装所有模块。

另外,由于 KernelSU 的旧版本在创建 modules.img 时,没有指定日志大小,并且指定了 block size 为 1024,在迁移到稀疏文件后,你会发现虽然只装了几个模块,它也占用了 1G 多,这 1G 应该都是 journal size。如果你对此感到不爽,可以删掉 /data/adb/ksu 然后重装模块。

推荐阅读


欢迎关注我的公众号“虚拟框架”,原创技术文章第一时间推送。

虚拟框架
解锁 Android 手机黑科技!
 最新文章