如何创建自定义可刷写ZIP自动删除系统文件

6次阅读
没有评论

如何将执行命令脚本添加至自定义可刷写ZIP文件

问题:如何在CM13系统上为OnePlus 3设备制作一个能够自动执行删除指令的可刷写ZIP,以便更新过程中自动删除多余的/system/bin/su目录?这可以简化日常更新流程。

解答

  1. 寻找空闲FLASHABLE ZIP包开始:首先可以找到一个没有具体功能但具有通用结构的FLASHABLE ZIP包的模版。其特定路径为 META-INF/com/google/android/updater-script。在这一路径内,我们可以插入执行删除操作相关的命令。具体的命令如下:
    shell
    delete_recursive("/system/bin/su");

  2. 利用TWRP文件管理器进行替代:事实上若您的手机有TWRP等恢复系统,则不必特地去创建这样的FLASHABLE ZIP包,可以直接在TWRP的文件管理界面内手动执行上述删除操作。这种方式更简化,并且不会涉及复杂的脚本编写。

  3. 制作自定义Flashable ZIP开始:如果您坚持要通过刷写方式完成这一过程而不选择前一种简化方法,则可以考虑从 scratch 开始:

  4. 创建一个新的 META-INF 文件夹,之后在此文件夹内再添加一个名为 com/google/android 的子文件夹。这个文件夹结构将用于承载自定义的 update-binary 脚本。

  5. 在新的 com/google/android/ 下创建 update-binary 模板文件,编写内容如下:
    shell
    #!/sbin/sh
    mount -o rw /system // 假设 `/system` 安装了您的 ROM
    rm -rf /system/bin/su // 指定将要删除的目录路径

  6. 修改 update-binary 文件权限使其可执行:使用命令 chmod +x update-binary

  7. 把创建的所有内容压缩成 ZIP 格式。需要注意的是在进行 zip 压缩的时候需要把 META-INF 文件夹保持完整,不要去掉文件夹本身。

  8. 测试自定义ZIP的有效性:如果您的手机使用CyanDelta进行固件更新管理,并且希望在进行更新后自动化完成上述删除操作从而无需每次手动执行。可以通过将上述的步骤创建出一个功能完善、能被正确识别并执行自定义 update-binary 脚本的 ZIP 文件来实现目标。

  9. 分享和获取帮助:如果您在文件内容编写或打包过程中遇到问题,也可以尝试通过在线论坛或者社群寻求更多的帮助。同时也可以考虑将自己的 ZIP 分发给有兴趣或有需求的人使用,例如将文件链接上传到网站如 AndroidFileHost 等供他人下载测试。

  10. 总结:通过这种方式,您可以实现自动化地更新手机系统,并顺便解决/system/bin/su引起的冲突问题,简化了日常的维护和更新流程。对于需要频繁进行手机固件更新操作的人来说是一个相当好的解决方案。

希望这个方法能帮助您顺利处理日常的手机系统更新操作,提高您的使用体验!

正文完