前言:最近后台有很多粉丝朋友问猴哥,关于system分区扩容的问题,首先为什么需要扩容?简单点回答,就是要刷入的系统system文件大于手机设备system分区的实际空间,导致刷不进去。
猴哥,手机设备的system分区空间大小由谁决定的?
答:当然是由手机品牌厂商决定的,即使同一个手机品牌厂商不同机型,system分区空间也是不同的。每一款具体的机型出厂时system分区大小就已固定。只要你刷入的是该机型的官方固件系统,就不需要考虑system分区扩容的问题,因为手机厂商在制作官方系统包时已替我们考虑了。100%保证系统包能够正常刷入进system分区。
猴哥,哪些情况就需要考虑system分区扩容的问题?
答:只要你刷入的不是官方固件系统包,就都有可能需要考虑system分区扩容的问题(如果刷入的第三方ROM中的system文件小于system分区实际空间,就不用考虑)。以下为我们玩机过程中常需要考虑的情况:
猴哥,system分区扩容是否可以无限制的?
答:肯定不是,一台手机的物理空间是固定的,意味着system分区扩大,那么肯定有一个其它分区大小会缩小。一般会把userdata分区缩小,空出一部分空间给到system分区。从而实现了system分区扩容的目的,原理就是这么一个原理。
猴哥,system分区能具体扩容多少?
答:上面说了,一台手机的物理空间是固定的。如何查看当前设备所有分区以及每个分区大小呢?fastboot flash --list (列出所有分区,含大小 + 路径), 一般看userdata分区大小来决定能够划拨多少空间给到system分区,划拨多少?取决于要刷入固件的系统system文件大小。
猴哥,如何进行system分区扩容操作?答:猴哥从来不想把复杂操作步骤进行复杂讲解,核心步骤:先卸载→再删分区→重建分区→格式化→验证挂载。这个地方按道理需要通过表格展示说明更容易理解,可篇幅太长。在ADB Shell模式下,输入命令:parted /dev/block/mmcblk0 print
可以看到misc和cache分区在system分区之前,这2个分区不用我们做任何操作,我们需要操作的分区system,vendor,product,userdata分区。
猴哥,能否举个具体的扩容示例加以说明?答:假设system分区需要扩容4000MB,我这里以onlyA机型为例,重建分区如何操作?
第一步:system分区起始地址500MB不变,往后移动4000MB,那么结束地址就是4500MB。分区容量=4500-500=4000MB。
第二步:vendor分区起始地址就变成了4500MB,保持分区容量1000MB,那么结束地址就是5500MB。product分区以此类推起始地址5500MB,保持分区容量1000MB,那么结束地址6500MB。
第三步:userdata分区起始地址就变成了6500MB,结束地址128000不变。
说明:以上是onlyA分区结构设备的核心操作方法。AB分区和动态分区重建分区原理差不多,但具体操作手法不一样,切莫照搬硬套,变砖了。
猴哥,我还是不敢使用命令行进行扩容操作,怕变砖,有简单的办法吗?
答:使用多系统工具箱,但这个工具箱需要手机设备有ROOT
完整原文引用来自:System分区扩容|安卓手机刷类原生LineageOShttps://mp.weixin.qq.com/s/GDi3L6Y1L3mRr-cHW9M2SA