分类: 嵌入式
2011-07-25 21:43:48
bootloader: arm9boot, arm11boot,
pda:kernel, recovery, system, userdata,
phone: amss
csc: cache
远程文件系统(RFS)是一个分布式文件系统,类似于网络文件系统(NFS)。
三星出厂和官方ROM里头的system分区,cache分区和data分区,用的是所谓Samsung RFS Filesystem, 官方ROM里头的pda.tar里包括factoryfs.rfs和datafs.rfs,CSC.tar里是cachefs.rfs。
一直不明白,这个RFS是什么格式,尝试按fat挂载,不成功,用ext2挂载,不成功,用android root filesystem,也不成功,ramfs也不成功。我就靠了,怎么会有个这么变态的私有文件系统啊。
尝试了一下分析其blocks,居然发现,和fat格式的区别是每隔2048就多了一个64bits的东东,再上google搜索一下,伟大的Samsung RFS的实质,居然,居然是:Fat格式再带一个日志,就是每隔2048记录一下,以起到断电保护的作用。
靠,Fat本身就是性能低下的格式,还要再直接嵌入日志,你每次开机mount的时间和所花费的内存,会非常大! 难怪每次开机5700都要一分钟以上了。为什么不用ext3呢?
根据这个原理,将每隔2048去除64bits,得到一个新文件,再将该文件转成fat,然后以硬盘镜像挂载,终于看到了每一个官方ROM里头的文件。
ps, 这些文件没有新意,pda包的factoryfs.rfs就是rom里头system的内容,包括各种系统自带apk和odex, 和MOD的zip里的主体结构几乎是一样的,datafs.rfs里仅仅是几个文本文档,csc包里的cachefs.rfs相当于一个recovery,就是给系统打上补丁,补丁一般是指定语言区域的apk和其它系统文件。
只要不刷csc包,你的机子就是一个纯净的国际版ROM,不带中文。
这样的ROM文件系统,明显祸害不小啊,速度和内存开销,输在起跑线上了。