跳过正文
  1. Posts/

一次刷机经历,让我开始了解安卓文件系统

·1438 字·3 分钟
刷机 安卓
目录

🤔What happened ?
#

我奶奶那手机挺老了,Redmi 7。最近说用着卡,我就准备刷个类原生。

逛了逛酷安,看这个机型里有人说cherishOS不错,所以我先选择的是cherish的A11。

按照常规操作解BL,进fastboot,刷Rec(我用的OrangeFox),adbsideload侧载rom,开机

开不开机!一直卡在开机界面上

无奈,换dotos的A11,再刷

这次的dotos就还可以了,也不能开机,但是可以显示一个报错的界面,全英文,具体是啥我也忘了,就是说需要格式化此设备才行,下面直接一个按钮Reboot to Recovery。

那行,那我就Reboot to Recovery去格式化呗。格式化data分区后…不行。

此时我以为是rec问题,于是又换了TWRP,同时去下了los的每夜版(因为这个设备根本没有正式版啊喂!)再试一次。

噔噔,结果还是和刷dotos时一样的。看着这台没刷好的手机,我开始慌了。

😀怎么解决的?
#

不知道啊!我去网上搜来搜去好像没人说到这个,后来不知道看了哪篇文章还是xda某个帖子提到了文件系统的事,索性去TWRP里碰碰运气,把data分区的文件系统改为ext4,开机,欸,竟然可以了。

F2FS ROM 引发的悲剧及其解决方案

诺,这篇blog中提到了,但和我遇到的情况并不一样。

☁对安卓文件系统的新了解
#

这里这位博主提到了

这次「灾难」的导火索是严格要求 F2FS 文件系统的 Android 类原生 ROM——Dot OS (Droid on Time),而其它 ROM 譬如 Lineage OS、Pixel Experience 等均只要求 ext4 文件系统。

dotos真的只认f2fs吗?其实不然。安卓系统对于文件系统的支持要看内核是否支持。

比如说我刷的这台Redmi 7,其内核不支持f2fs,而TWRP等rec刷入进去默认文件系统就是f2fs,就导致了开机报错或cherish那种严重的无法开机的情况。

再说这个f2fs不是很广泛了?为什么竟然不被部分内核支持。这里引用一段

F2FS(Flash-Friendly File System)是一种闪存文件系统,最初就是为了 NAND 闪存存储设备设计的。相比之下,ext4 最初设计是考虑到运行在机械硬盘(磁盘)等区块存储设备上的,而由于其读写性能远不如 SSD 固态硬盘等闪存存储设备,所以现在很多场景都使用固态硬盘。Linux 随后也推出了 MTD 这一硬件抽象层,它能让闪存设备看起来像是一种区块设备,从而使针对区块设备的文件系统直接应用在闪存上。

ext4 即为第四代扩展文件系统(Fourth extended filesystem,ext4),2006 年被首次公开、2008 年被当成稳定版本并入 Linux 源代码并成为官方建议的默认文件系统。而 Android 正是基于 Linux 开发,早在 Android 2.3 就已用 ext4 取代 YAFFS,市面上绝大多数 Android ROM 也确实使用的是 ext4 文件系统。

注意看,早在安卓2.3时ext4就已经被安卓官方支持,但是这段文字里没有提到f2fs的支持情况,具体又是怎样的呢?

在谷歌所维护的AOSP中,F2FS并不是官方支持的文件系统,但是仍然有一些设备树可以选择支持f2fs。少数派的这篇文章中有提到:

给你的 Android 手机换个文件系统 - 少数派

而AOSP默认所支持的文件系统是ext4。

这也道出了另一个事实:不是Linux支持的文件系统安卓就支持。

image

💦Ending
#

这次刷机“翻车”让我学到了一些关于安卓文件系统的知识。还是不得不感叹:安卓的系统机制真是神奇且有趣啊?到底还有什么更多的东西等着我去发掘呢?


📚参考资料
#

给你的 Android 手机换个文件系统 - 少数派

F2FS ROM 引发的悲剧及其解决方案

ext4

Android 内核文件系统支持  |  Android 开源项目  |  Android Open Source Project

[OFFICIAL][RECOVERY][ONCLITE] OrangeFox Recovery Project…

叫我小雨好了
作者
叫我小雨好了
愿意善待每一个人,目标是创造只有爱的世界!