什么是Android的文件系统?

什么是Android的文件系统?

这取决于什么文件系统,例如/system/datayaffs2/sdcard是vfat。 这是mount的输出:

 rootfs / rootfs ro 0 0 tmpfs /dev tmpfs rw,mode=755 0 0 devpts /dev/pts devpts rw,mode=600 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 tmpfs /sqlite_stmt_journals tmpfs rw,size=4096k 0 0 none /dev/cpuctl cgroup rw,cpu 0 0 /dev/block/mtdblock0 /system yaffs2 ro 0 0 /dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0 /dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0 /dev/block//vold/179:0 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 

并且就其他支持的文件系统而言,这是列表

 nodev sysfs nodev rootfs nodev bdev nodev proc nodev cgroup nodev binfmt_misc nodev sockfs nodev pipefs nodev anon_inodefs nodev tmpfs nodev inotifyfs nodev devpts nodev ramfs vfat msdos nodev nfsd nodev smbfs yaffs yaffs2 nodev rpc_pipefs 

默认情况下,它使用YAFFS – 又一个Flash文件系统。

这里的大多数答案都很古老。

在过去,当pipe理非常stream行的存储技术时,yaffs2是最常见的文件系统。 目前很less有设备使用未pipe理的nand,而那些仍在使用的设备正在慢慢迁移到ubifs。

今天最常见的存储是emmc(pipe理nand),对于这样的设备ext4是非常stream行的,但是,这个文件系统正在慢慢清除f2fs(闪存友好的fs)的方式。

编辑 :f2fs可能不会使其成为闪存设备(包括android)的常见fs,

Johan很接近 – 这取决于硬件制造商。 例如,三星Galaxy S手机使用三星RFS(专有)。 不过,搭配Android 2.3的Nexus S(也是由三星制造)使用的是Ext4(可能是因为Google告诉他们 – Nexus S是目前的Google体验手机)。 由于这种转变,许多社区开发者也开始转向Ext4。

取决于你使用的是什么硬件/平台。

由于Android在这个级别上使用Linux内核,因此使用Linux内核支持的任何文件系统或多或less是可能的。

但是由于大多数手机使用某种nand闪光灯,所以假设他们使用YAFFS是安全的。

但请注意,如果某个供应商想要销售Android上网本(带有硬盘),他们可以使用ext3或类似的东西。

在hex编辑器中分析Galaxy Ace 2.2时。 hex似乎指向使用FAT16作为其文件系统的设备。 我以为这是不寻常的。 但是Fat 16与Linux内核兼容。

由于大多数设备使用eMMC, 所以android使用的文件系统是ext4 ,除了firmware.refer- http://android-developers.blogspot.com/2010/12/saving-data-safely.html

这里是星系s4上的文件系统:

  • /系统ext4

  • /数据ext4

  • /cachingext4

  • /固件vfat

  • / data / media / mnt / shell / emulated sdcardfs

具体输出如下:

/dev/block/platform/msm_sdcc.1/by-name/system/system ext4 ro,seclabel,relatime,data = ordered 0 0

/dev/block/platform/msm_sdcc.1/by-name/userdata/data ext4 rw,seclabel,nosuid,no dev,noatime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,data = o 0 0 0

/dev/block/platform/msm_sdcc.1/by-name/cache/cache ext4 rw,seclabel,nosuid,node v,noatime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,data = ord ered 0 0

/dev/block/platform/msm_sdcc.1/by-name/efs/efs ext4 rw,seclabel,nosuid,nodev,no atime,discard,journal_checksum,journal_async_commit,noauto_da_alloc,errors = panic,data = ordered 0 0

/dev/block/platform/msm_sdcc.1/by-name/persdata/persdata/result ext4 rw,secla bel,nosuid,nodev,relatime,data = ordered 0 0

/dev/block/platform/msm_sdcc.1/by-name/apnhlos/define vfat ro,context = u:objec t_r:firmware:s0,relatime,uid = 1000,gid = 1000,fmask = 0337,dmask = 0227, codepage = cp437,iocharset = iso8859-1,shortname = lower,errors = remount-ro 0 0

/dev/block/platform/msm_sdcc.1/by-name/mdm/utils-mdm vfat ro,context = u:objec t_r:firmware:s0,relatime,uid = 1000,gid = 1000,fmask = 0337,dmask = 0227,codepage = cp437,iocharset = iso8859-1,shortname = lower,errors = remount-ro 0 0

/ data / media / mnt / shell / emulated sdcardfs rw,nosuid,nodev,relatime,uid = 1023,gid = 1 023 0 0

Android支持Linux内核支持的所有文件系统。

例如,SD卡被格式化为ext3。