OPPO Find7 System分区教程

Find7从14年陪我到现在也是有着深深的感情了,前几天无故亮屏和无法识别前置摄像头让我有了重新刷机的念头,刷完之后连内置储存分区都不认了。线刷解决,但是升级到Android8.1后Gapps由于system分区空间不够,连nano包都刷不进去(nano包160M,但是我system剩余240+M),尝试了mokee和lineagos,只有lineagos包提示system大小不够,而mokee的包卡到生活不能自理,还是自己动手丰衣足食。

后来发现类原生会自动分割system….因为无法识别国内5.0分区,会自动把剩下的部分分给 sdcard0,假装有内置储存

前期准备

**Adb工具,Fastboot.exe,aboot恢复镜像,线刷救砖工具**

正式开始

adb devicesadb shell
df -h   //选择合适的单位输出空间大小

当然部分系统会报错,只需输入 df 即可
OPPO Find7 system分区教程-编程知识网

查看system分区信息,只有1007.9 M

FIND7:/ # fdisk -l /dev/block/platform/msm_sdcc.1/by-name/system
Disk /dev/block/platform/msm_sdcc.1/by-name/system: 1944 MB, 2038431744 bytes, 3981312 sectors
62208 cylinders, 4 heads, 16 sectors/track
Units: cylinders of 64 * 512 = 32768 bytes

发现国内5.0合并分区的system分区有1.9G(1944MB) (图忘记截了…)
OPPO Find7 system分区教程-编程知识网
官方4.3 /data和/sdcard未合并分区
OPPO Find7 system分区教程-编程知识网
官方lvm分区
这两个分区system均有1.3G
OPPO Find7 system分区教程-编程知识网
但是刷了类原生之后只能识别1007MB,剩余的空间被自动分出去作为sdcard0。这个问题从CM13就存在了,一直没有被解决,一直在迭代…….

如果你只是单纯需要让Lineagos等类原生正常识别`system分区,只需备份system,直接再次还原就行(TWRP直接能够完成)

下面介绍的是重新划分system分区的方法


开始动手

建议重新线刷一次,线刷完成后会停留在磁盘模式,此时打开diskgenius备份所有分区
备份好分区之后你就可以按照你的兴趣直接分区了

如果需要整个手机储存全部进行自己的喜好重新分区,请务必备份下图中框出的分区,至关重要,独一无二,线刷包中不会包括这些分区。否则会出现OPPO_NVerror等问题
aboot分区要备份!!!便于以后的更改,不然进入磁盘模式后可能就回不去了。
OPPO Find7 system分区教程-编程知识网OPPO Find7 system分区教程-编程知识网

进入磁盘模式

进入fastboot [ Find7 是按住电源和音量+ ],擦除fastboot所在的aboot分区,进入磁盘模式。X9077可以使用我提供的aboot备份镜像重新恢复。

fastboot erase aboot

OPPO Find7 system分区教程-编程知识网
然后重启手机(记得不要把数据线拔了……如果你没有aboot备份…拔了就可能真回不去了)

fastboot reboot

OPPO Find7 system分区教程-编程知识网
此时电脑可能会提示
OPPO Find7 system分区教程-编程知识网
千万别手贱…..不然你就凉了
打开Diskgenius,软件已经把我们的手机当成可移动介质了
OPPO Find7 system分区教程-编程知识网
如果提示分区表错误,直接忽略
初步思路是放弃原有的system(1.9G全套Gapps有点吃紧),直接从data里面划出一部分
备份system分区,userdata分区。
【原则上是 需要动哪些分区 就备份 那些分区】

重新建立system

若直接格式化system会报错
OPPO Find7 system分区教程-编程知识网

  1. 删除原有system,userdata分区( 会显示userdata或者分区(xx),看挂载点就好 )
  2. 重新建立system分区
    Ext4格式,输入自己想要的大小
    扇区对齐到4096
  3. 点击 详细信息 按图设置
    OPPO Find7 system分区教程-编程知识网
    分区名字一定要填写!!!勾上 只读,隐藏,无盘符

  4. 把剩下的空间作为/data
    OPPO Find7 system分区教程-编程知识网
    依样画葫芦就行…..

    恢复原有备份(不然会丢失挂载点)

    OPPO Find7 system分区教程-编程知识网
    然后再恢复aboot分区备份
    OPPO Find7 system分区教程-编程知识网
    拔掉数据线,长按电源键或者扣电池重启!大功告成!


    成果

    OPPO Find7 system分区教程-编程知识网
    system 4.5G 直接上图不解释!
    放上最后的分区表,当然浪费了1.9G原有的 system….
    主要是不想重新一个个建立分区再一个个恢复了。我懒┑( ̄Д  ̄)┍ 怪我咯

已知问题:之后每次重新刷入类原生后,system仍然会被分割成1007MB(此时因为los误判system空间,会破坏原有的gapps)

5.0合并分区补丁该刷的还是得刷

只需TWRP中备份一下system,再次恢复,重新刷入Gapps即可


附上一段未经测试的代码(来自MIUI论坛)

用于刷入aboot分区 (非使用diskgenius的备份)

fastboot getvar product 2>&1 | findstr /r /c:"^product: *MSM8974" || echo Missmatching image and device
fastboot getvar product 2>&1 | findstr /r /c:"^product: *MSM8974" || exit /B 1
fastboot getvar board_version 2>&1 | findstr /r /c:"^board_version: *4.4" && echo Missmatching board version
fastboot getvar board_version 2>&1 | findstr /r /c:"^board_version: *4.4" && exit /B 1
fastboot getvar board_version 2>&1 | findstr /r /c:"^board_version: *5.[0-9]" && echo Missmatching board version
fastboot getvar board_version 2>&1 | findstr /r /c:"^board_version: *5.[0-9]" && exit /B 1

按我的理解是重新恢复fastboot的部分功能….然后再

fastboot flash aboot emmc_appsboot.mbn

重新写入aboot分区,不过 emmc_appsboot.mbn 这个文件需要找到高通线刷包才行…
不过这个还是有挺大的风险的,aboot分区挂了要是这个刷不进去你就只能线刷了