Android: 修改手机system, data分区大小
TWRP刷入包时报Error 70错误,说明手机system分区空间不足,需要使用parted通过adb修改system分区大小。
警告:本操作将会永久失去手机中储存的数据,请做好备份,同时有使手机变砖的风险。
需要准备:
twrp recovery,parted文件,adb工具及驱动,需要刷入的rom,GAPPS包
步骤一:
连接手机与电脑,关闭手机,同时按住手机音量下键及开机键,重启至fastboot,电脑端打开adb工具的文件夹,按住shift并右键打开命令行输入:
fastboot flash recovery “你下载的recovery的文件名” fastboot boot “你下载的recovery的文件名”
按住手机音量上键,同时电脑运行下面命令重启手机,直至进入 TWRP recovery 界面。
fastboot reboot
手机端进入recovery界面后
1. 滑动允许recovery修改系统文件。
2. 此时MTP可用,将parted文件复制到手机的某个目录,并在recovery中将其复制到手机的 "/sbin/" 目录下并授予755权限。
3. 在挂载菜单中取消挂载system,cache和data分区
步骤二:
电脑端adb命令窗口,输入
adb shell
会有类似提示,可能会有乱码:
~ # [6n
输入
parted /dev/block/mmcblk0
提示
GNU Parted 1.x.x.x-xxx Using /dev/block/mmcblk0 Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
输入
p
会给出手机分区信息:
Model: MMC M8G1GC (sd/mmc) Disk /dev/block/mmcblk0: 7818MB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 2097kB 2080kB sbl1 2 2097kB 4177kB 2080kB sbl1bak 3 4177kB 5225kB 1049kB rpm 4 5225kB 6274kB 1049kB rpmbak 5 6274kB 7323kB 1049kB tz 6 7323kB 8371kB 1049kB tzbak 7 8371kB 8379kB 8192B ssd 8 8379kB 9428kB 1049kB sdi 9 9428kB 10.5MB 1049kB DDR 10 10.5MB 14.7MB 4194kB aboot 11 14.7MB 18.9MB 4194kB abootbak 12 18.9MB 24.1MB 5243kB bk1 13 24.1MB 28.3MB 4194kB misc 14 28.3MB 36.7MB 8389kB logo 15 36.7MB 67.1MB 30.4MB bk2 16 67.1MB 68.7MB 1573kB modemst1 17 68.7MB 70.2MB 1573kB modemst2 18 70.2MB 70.3MB 1024B fsc 19 70.3MB 134MB 64.0MB bk3 20 134MB 136MB 1573kB fsg 21 136MB 168MB 32.0MB bk4 22 168MB 201MB 33.6MB bk5 23 201MB 268MB 67.1MB fat16 modem 24 268MB 285MB 16.8MB boot 25 285MB 302MB 16.8MB recovery 26 302MB 336MB 33.6MB ext4 persist 27 336MB 1174MB 839MB ext4 system 28 1174MB 1577MB 403MB ext4 cache 29 1611MB 7818MB 6208MB ext4 userdata (parted)
先复制保存一下手机分区信息,以备不时之需。
以此分区信息为例,此时可以看到 system, cache, userdata(即data分区)的编号,删除这三个分区:
rm 27 rm 28 rm 29
现在从336MB到7818MB都是未使用区域了,可以自由划分 system, cache, userdata 分区的大小。
可以查看:Linux: parted 分区命令,简单使用如下:
mkpart
按提示输入分区名(例:system),文件系统(直接Ext2就可以,后续可以在twrp recovery中修改),分区起始位置,结束位置,就可以重新建立需要的分区了。
最后一个userdata分区的结束位置,使用原分区信息的结束位置即可。
步骤三:
twrp 中重启手机,再次进入recovery,在wipe界面下system, cache, userdata各分区的高级操作界面中,格式化各分区为Ext4,然后查看分区大小是否为修改后的大小,若大小不对,点击Resize修复。
步骤四:
刷入需要的ROM包,重启,进入系统UI后,再次重启至recovery。
注意:若刷写ROM时,报错:Error E1001: Failed to update system,可能是twrp版本太低,可尝试使用更高版本的twrp。
若此时直接刷入GAPPS包,可能还会报Error 70错误。
因为此时system, userdata分区的大小可能因为刷写ROM,又不对了,所以类似步骤三的操作,仅Resize修复分区大小,不要再次wipe。
步骤五:
此时就可以刷入其它包了,例如GAPPS包。应该就可以正常使用了。
参考: