酷安APP 发现科技新生活

安卓手机system分区扩容-第二版(高成功率+低风险)

忆昔以西

2022-12-26 荣耀5X

一、前言
在不支持动态分区的手机上,很多GSI一般塞不下system分区,这时你需要“扩容”。今天我就给大家带来一种参考办法。
本文最后编辑于2024.1.31(第二版)
⚠️注意事项
1.虽然本教程支持绝大多数安卓手机,但并非支持极个别手机,比如有些手机会有分区表检验机制导致扩容失败,但是这种手机少之又少!总之无论如何请先掌握救砖办法(一般刷原厂包即可自动恢复分区表)
2.有些手机特别离谱,system分区不和data分区不放在同一个“主设备节点”里(看评论区),虽然我也不知道是个啥情况,但是一旦遇到了,我就明确告诉你这篇文章是没法解决这个问题的,你可以退出然后去做你想做的事受虐滑稽
3.如果实在担心手残变砖,【EMUI设备】可以找我远程,不管是什么杂七杂八的情况,只要是EMUI的我基本都能搞定。不过也不是什么时候都有时间的,但是有时间时我肯定会安排的,你可以私信我然后等我安排了告诉你。
4.任何事情都有风险,我始终坚持帮助大家降低风险和解决问题,但我不希望你明明知道有风险还硬闯,扩容就是个风险很大的问题,所以请量力而行!
5.初次发布本教程时有一部分步骤有问题,但已经调整出现问题的步骤,所以请以最新发布的图文为准!如果有任何疑问(比如为什么有些步骤被删了),可以看评论区置顶链接,或许对你有所帮助。
————————————
————————————
🎉原理
有大量教程里说,如果system和userdata隔了很多个分区的话,需要把这些分区全部删除然后重新建立,但是这样太麻烦且失败率高!
————————————
我的方法是把userdata分区分出一部分给system,然后把原来的system分区扔掉。
这样一来操作非常便捷,风险相对更低,成功率相对更高。

我的扩容思路

这样做唯一的缺点就是userdata分区会失去好几个GB(具体损失多少由你的新system分区大小决定)。但是现在的手机有几个是存储空间不够的呢?更何况类原生系统一般都可以融合SD卡来作为额外空间。
————————————
————————————
⚠️开始扩容之前请准备以下东西
硬件
Windows 7及以上的电脑,手机,数据线两根(防止中途线坏了变砖救不回来),可供手机充电的交流电源以及充电头
软件
①你的手机的[第三方rec],注意必须要选择能通过ADB连接到电脑的rec(如何检测rec是否支持ADB请往下看)
②电脑上必须关闭[USB选择性暂停],具体步骤是:控制面板→搜索“电源选项”→找到目前选定的计划(平衡/高性能等等)→点击“更改计划设置”→更改高级电源设置→找到“USB设置”→展开并找到“USB选择性暂停设置”→选择为“已禁用”→点击确认。
③你的机子对应的救砖用的原厂包,Windows尽量更新到最新版本(尤其是驱动更新)
————————————
如果在使用本教程中有任何疑问,请翻阅教程底部的[常见问题解答],如果还是有疑问请直接评论区回复。
————————————
————————————
⭐教程正文开始⭐
⭐以华为畅享8Plus为例⭐
把这里面东西下载好并解压:
查看链接
————————————
1.手机重启到第三方rec
2.连接电脑,打开ADB工具箱里面的“启动命令行”,输入adb devices,如果啥都没有,请换个手机检查你的数据线是否能传输数据(有些线只能拿来充电)。如果能传输数据,但是输入adb devices没显示设备,那应该是你的rec不支持ADB连接电脑,你应该换一个支持ADB连接电脑的rec。
3.输入adb push xxxxxx /sbin(“xxxxxx”就是链接下parted.zip解压了之后,得到的那个名叫parted但没有后缀的文件。可以直接拖拽它到窗口内,因为路径不能有中文,所以建议从C盘根目录拖入,push后面和xxxxxx后面有个空格别打掉了)
4.电脑输入adb shell,回车
5.输入chmod 755 /sbin/parted,回车
6.输入cat /proc/partitions,回车
7.找到数字比较大并且很扎眼的那个分区对应的名字,它就是你的手机存储设备的【主设备节点】。如图,华为畅享8Plus的主分区是mmcblk0。注意不一定是数字最大的那个,数字比较大的都有可能是主分区。常见主分区一般有mmcblk0,sda,sdb,sdc等等。

8.输入parted /dev/block/xxxxxx(“xxxxxx”就是主设备节点名字)
9.输入p(加载分区表)
10.输入o(有些机型需要此步骤确认)
11.分区表出来了(如果没出来,只出来几个奇奇怪怪的,或第8,9,10步不正常那就是你主设备节点搞错了)
12.找到system和userdata附近的分区,截图保存到可靠的地方,待会要用,不要偷懒,偷懒到时候你会后悔的受虐滑稽
13.输入q退出,开始“扩容system”
————————————
⚠️注意
①带#的为命令注释
②带*的为详细说明
③啥也不带的就是命令示范(可以直接复制粘贴只需更改必要的部分)
④不管如何复杂都要认真读,每一句都很重要
⑤过程中出现任何报错全部输入i(忽略),出现确认提示全部输入y/o(确定)
⑥建议先看完本文后再操作,不要第一次看就直接操作
————————————
————————————
🌈第一步 卸载system和userdata分区
*必须取消挂载(卸载)system和userdata分区,否则删除分区会报错,即使全部选择忽略,也会留下后遗症,虽然可以解决,但是纯属自找麻烦。只有当采用下列方法还是会报错“设备正在使用”时,才应该忽略错误继续操作。以下命令输入后,出现报错是正常的。不要嫌麻烦,就是个复制粘贴的事而已。你如果不取消挂载,虽然现在删分区删得爽,但最后就会更麻烦。
# 卸载system和userdata分区
umount /dev/block/by-name/system
umount /dev/block/by-name/userdata
umount /system
umount /data

🌈第二步 删除system和userdata分区
# 启动parted选择主设备节点
parted /dev/block/xxxxxx
p
o(如果显示是否确认则输入o)
————————————
*如上图所示,先在右边那一竖行找到system和userdata分区,然后看看它们两个对应的分区号(左边那一竖行)是多少?
显而易见,我的机器system分区号是52,userdata分区号是59,那么我就需要输入以下两条命令删除它们:
# 删除system和userdata
rm 52
rm 59
————————————
#刷新分区表确认是否删除成功
p
————————————
🌈第三步 建立新的system和userdata分区

#建立新system和新userdata分区
mkpart system ext4 5570MB 10000MB
mkpart userdata ext4 10000MB 62.5GB
*上面那个例子翻译成人话就是:
①因为旧userdata头=5570MB,所以新system头=旧userdata头=5570MB
②假设刷机包是4GB,因为通常新system分区实际大小要比4GB稍微大一点,所以新system分区实际大小不妨设为4430MB,由【尾-头=实际大小】得:【尾=头+实际大小】。所以新system分区尾=5570MB+4430MB=10000MB
③由【上个分区尾=下个分区头】得:新system尾=新userdata头=10000MB。因为新userdata尾要和旧userdata尾保持一致,所以新userdata尾=旧userdata尾=62.5GB。
————————————
#刷新分区表检查是否建立成功
p

————————————
🌈第四步 格式化新建立的分区
*请在rec完成如下操作:
①清除-高级清除-勾选system-更改文件系统-选择ext4-确认
②清除-高级清除-勾选data-更改文件系统-选择ext4-确认,更改文件系统-选择f2fs-确认
③回到主页,选择高级-解除data强制加密-确定(这一步可以不执行,但是会小概率触发GSI开不了机等问题)
⚠️如果显示格式化失败,请往下翻找到“Q:有些机子确实是无法取消挂载的,那么怎么办呢?”。
————————————
🎉🎉🎉
恭喜你扩容成功啦!可以刷GSI啦!
————————————
————————————
以上就是今天带给大家的教程。
口诀:
【上一分区尾=下一分区头】
【尾-头=实际大小】
————————————
常见问题解答
Q:手机连接电脑后,电脑上识别不了手机或者显示未连接?
A:
①检查数据线是不是好的,接口是不是好的
②如果你使用Windows10系统,请在Windows更新的可选更新的[驱动程序更新]里面检查一下有没有相关的更新。Windows11可能需要在[高级选项]里面的[可选更新]才可以找到。
③有些系统需要关闭“程序兼容性助手”,这个东西在win10/11叫“内核隔离”。具体怎么关自己百度。
④打开设备管理器,连接手机看下有无黄色感叹号之类,如果有,双击它并点击更新驱动程序,选择Android ADB Interface之类的,然后等待它安装完成。
⑤有的rec连不上电脑,这种情况下你可以考虑在rec的终端扩容,具体步骤就不说了,原理和本文相同,要是你不知道如何“融会贯通”,就说明你其实还没有入这个门槛,手把手教你是不可取的。
⑥如果还是不行,我也不知道咋办了捂脸
————————————
Q:System分区没有解锁怎么办?
A:扩容不需要解锁system,你想多了doge呵斥
————————————
Q:救砖包哪里下?
A:奇兔刷机线刷大师电脑版/万维论坛/手机品牌对应的官网/手机型号对应的酷安话题/百度等等
————————————
Q:如何解除Bootloader锁?
A:一般情况下百度搜索你的手机品牌有对应解锁教程,但是[华为]不可以通过官方渠道解锁,你可以看看这位大佬@某贼 的主页,里面有解锁渠道,如果嫌麻烦请淘宝搜索“华为解锁”,一杯奶茶钱搞定。
————————————
Q:有些机子确实是难以取消挂载data和system的,那么怎么办呢?
A:我们有一个暴力手段:
①【🌈第三步】完成后,进入fastboot输入fastboot erase userdata回车再输入fastboot erase system回车,然后重启到rec
②继续完成【🌈第四步】及以后的步骤就好了
————————————
Q:支持动态分区还需要扩容吗?
A:不用。直接进fastbootd刷GSI吧。你问我啥是fastbootd?建议先看看这个:

看完上图你应该就基本上明白了吧,所以不要再来评论区问我动态分区要不要扩容了。
————————————
Q:楼主为何只愿意帮助EMUI的手机远程扩容?
A:因为有些机子很离谱,比如开头所说的userdata和system不在同一个主设备节点中,又比如评论区一款奇葩机器支持ab分区却不是动态分区...
————————————
Q:楼主何时在线帮我扩容?
A:一般情况下我在学校里呢,想要秒回等我放大假,平时一个周才回家一次才能摸到电脑,另外法定节假日也可以。平时的周一般末只有周日下午在线,有问题欢迎随时回复或私信。
————————————
好了,你还在等什么呢?快点准备好你灵巧的小手和高速的大脑,用一台电脑和一根数据线,让你年迈的老机器起死回生吧[针不戳]
#扩容system# #GSI# #ProjectTreble#