记得我第一次将手机root后想要更改一些文件时却被提示
为此我实验过各种差异的方法,我也了解过一些通过Magisk模块实现system可读写的模块;但是通过magisk模块更改system分区本质上还是在Data目录下塞文件,不外这并不能满意我。经过我的不停探求终于找到了那么一个工具来解锁System分区;不外提前告诉你一声,解锁system分区并不能让你得到更多可用的空间。
1.前言
- #工具的文件树状图
- systemrw_1.32_BUNDLE_proper.zip
- ├── sysrw_repair_v1.32_proper.zip
- │ └── sysrw_repair_v1.32
- │ ├── img
- │ ├── sysrw_repair.sh
- │ └── tools
- │ ├── bin
- │ │ ├── adb
- │ │ ├── fastboot
- │ │ ├── img2simg
- │ │ ├── lpmake
- │ │ ├── lpunpack
- │ │ └── simg2img
- │ └── lib64
- │ ├── libbase.so
- │ ├── libc++.so
- │ ├── libcrypto-host.so
- │ ├── libcrypto_utils.so
- │ ├── libext4_utils.so
- │ ├── liblog.so
- │ ├── liblp.so
- │ ├── libsparse-host.so
- │ └── libz-host.so
- └── systemrw_1.32_flashable.zip
- ├── META-INF
- │ └── com
- │ └── google
- │ └── android
- │ ├── update-binary
- │ └── updater-script
- └── systemrw_1.32
- ├── config.ini
- ├── systemrw.sh
- └── tools
- ├── avbctl
- ├── e2fsck
- ├── img2simg
- ├── lpadd
- ├── lpdump
- ├── lpflash
- ├── lpmake
- ├── lpunpack
- ├── resize2fs
- ├── sh
- ├── simg2img
- ├── toybox
- └── tune2fs
复制代码 2.这个脚本实用于那些设备?
根据用户的反馈,这个工具已经在这些设备上正常工作。没有在下面列出的设备并不代表的它不能运行,只是还没有经过测试;如果它对你的设备有效你也可以反馈一下。
Xiaomi Poco X3 NFC
Xiaomi Poco X3 Pro
Xiaomi Poco X2 - Android 10/11
Xiaomi Poco X2 - Android 11
Xiaomi Poco F2 Pro - Android 11
Xiaomi Mi 10 T Lite - Android 11
Xiaomi Mi 10 T lite - Android 11
Xiaomi Mi 10 - Android 11
Xiaomi Mi 10 Ultra - Android 11
Xiaomi Mi 10i 5G (gauguin) - Android 11
Xiaomi Mi Note 10 Lite - Android 11 - OrangeFox
Xiaomi Redmi Note 12 5G - Android 12 - latest MIUI 13.0.3
Xiaomi Redmi 9 - Android 10
Xiaomi Redmi 9 - Android 10
Xiaomi Redmi Note 9 Pro joyeuse - Android 10
Xiaomi Redmi Note 9 Pro gauguin (China)
Xiaomi Redmi Note 9S - Android 11 - MIUI Global 12.5.3 Stable (RJWEUXM)
Xiaomi Redmi 9T - Android 11
Xiaomi Redmi K30 - Android 10
Xiaomi Redmi K30S Ultra(China), Android 11
Asus ROG Phone 3 - Android 10
Asus ROG Phone 5 - Android 11
OnePlus Nord - Android 11
OnePlus 8T - Android 11
Doogee S96Pro - Android 10
F150 model B2021 - Android 10
Realme C12 - Android 11
Realme GT 5G - Android 12
Pixel 4a (sunfish) - Android 11
Google Pixel 4 XL (coral) - Android 10
3.脚本怎样工作
必要root和至少10GB的可用空间,脚本只会修改 super 和 vbmeta 分区。data 分区不受影响,它仅用于转储数据和存储脚本文件。
- 提取您现有的 super 分区
- 从指定的 Super Image 中提取此中的只读子分区(system、system_ext、odm、vendor、product等)
- 使用唯一的原始 MakeRW/ro2rw 算法使这些子分区可读/写
- 将所有内容重新添加到新的 super.img 中
- 使用超快速 Kolibass 技能将可读/写的修补 Super 映像刷回设备(仅在Recovery模式下)
正如你所见,这个脚本应该有两种工作模式;一种在系统(Android)中执行脚本,一种在recovery中执行脚本。我比较推荐在Android下执行它,因为按照这个方法理论上来讲只要按照步调走你就不会碰到数据损失。
1.在Android中执行
- 解压flashable.zip并将sysrw_*VERSION* 文件夹复制到 /data/local/tmp/
- 运行以下下令使脚本可执行:
- chmod +x /data/local/tmp/sysrw_*VERSION*/systemrw.sh
- 在任意终端中使用root运行systemrw.sh
当你脚本执行完成后你会在/data/local/tmp/sysrw_*VERSION*/img/目录下找到super_patched.bin和super_original.img。如今,你可以通过任何方法将它们两个上传到你的电脑上。
使用fastboot flash super_patched.bin来刷入处理后的super分区
如果你想要恢复super分区为原厂,或执行以上操纵让你的设备出来题目,执行
fastboot flash super_original.bin
正常情况下你不必要为脚本添加任何参数,不外它其实提供了一些参数,可以让你进行更为机动的操纵
将 x 更换为您的自界说值
指定现有的超等映像作为输入 [可选]
省略此参数等同于使用 in=@auto 等同于使用设备的super分区作为输入
指定修补后的超等镜像输出文件路径 [可选]
省略此参数相当于使用 out=@auto,修补后的超等镜像将默认保存为 ./img/super_patched.bin
指定要添加到 super.img 的每个子分区的额外可用空间(以MB为单位)[可选]
省略此参数相当于使用 size=@auto 这将激活自动调解巨细功能
指定是否应以原始文件格式输出修补后的 super image [可选]
省略此参数将默认创建稀疏修补的 super image
使用示例
- su
- cd /data/local/tmp/sysrw_1.33
- chmod +x ./systemrw.sh
- # 使用默认设置运行脚本 [推荐]
- ./systemrw.sh
- # 指定super分区 [可选]
- ./systemrw.sh in=./img/super_original.img
- # 指定输出目录 [可选]
- ./systemrw.sh out=./img/super_patched_new.img
- # 指定要添加到 super.img 的每个子分区的额外可用空间(以MB为单位)[可选]
- ./systemrw.sh size=15
- # 指定是否应以原始文件格式输出修补后的 super image [可选]
- ./systemrw.sh -r
- # 示例 (警告!此命令可能会损坏您的系统。在Recovery模式下使用。风险自负!)
- ./systemrw.sh in=img/super_original.bin out=`realpath /dev/block/by-name/super` -r
复制代码 2.在recovery中执行
提示要想在recovery中执行该脚本,请保证你使用的recovery可以正常访问data分区。
- 下载下面的flashable.zip,不要启用 zip 签名验证,只需在您的第三方recovery中(实用于 TWRP、OrangeFox 和 PBRP!)安装即可
- update 二进制文件将自动检测 config.ini 中的参数并相应地启动脚本
- 您可以轻松修改包含的 config.ini 文件中的自界说脚本执行参数。只需提取flashable.zip,使用文本编辑器编辑包含的 config.ini 文件,然后保存文件。接下来,再次压缩 sysrw_*VERSION* 和 META-INF 文件夹作为新的可刷入的zip。并再次在 recovery 中安装它。
4.移除
- 要开释空间并保留脚本以及读/写功能,您只需删除位于/data/local/tmp/sysrw_*VERSION*/img
- 要删除脚本并保持读/写功能,您只需删除位于/data/local/tmp/sysrw_*VERSION*
- 要撤消脚本执行的所有更改,您只需通过 adb/fastboot 或使用随附的 avbctl 二进制文件重新刷写原始只读Super映像并重新启用 dm-verity 和验证即可。
5.Sysrw_repair用法
1. 情况预备:确保你的设备已经连接到电脑,并且已经安装了 Android 10 或更高版本的操纵系统。同时,必要确保 adb 和 fastboot 工具已经精确安装,并且设备驱动程序配置无误。
2. 运行脚本:将脚本保存为 .sh 文件,并在 Linux 情况中给予执行权限(例如使用 chmod +x script.sh )。然后,通过终端运行该脚本。
3. 脚本执行流程:
脚本首先会检查设备的连接状态,确保设备处于 recovery 或 device 状态。
如果设备处于 fastboot 模式,脚本会实验重启设备进入 Android OS。
接下来,脚本会从设备中拉取所有 .img 文件到当地的 ./img 文件夹中。
然后,脚本会实验运行 lpmake 工具,使用从设备中拉取的 myargs.txt 文件中的参数。
如果 lpmake 工具成功创建了修补后的 super 分区镜像( super_fixed.bin ),脚本会将设备重启到 bootloader 模式,并实验刷入修补后的镜像。
4. 成功与失败:如果刷入成功,脚本会提示分区已经获得读写能力,并重启设备。如果过程中碰到题目,脚本会输出相应的错误信息。
6.疑难懂答
如果您在成功创建和刷入super_patched.bin 后收到 bootloop,那可能是因为您没有精确禁用 dm-verity 和验证。
我好像记得在一些设备上必要表明某一行才可以保证它正常执行,大概是四百三十几行的一个变量。不外我其实不确定是否有这么一回事,因为在我写这篇文章时并没有找到相关记载。好吧,多留意一下脚本输出吧。
7.下载
百度云链接: https://pan.baidu.com/s/18sE7JspO8bc6xNGlVM-Z4A?pwd=yudv 提取码: yudv
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |