Android 什么是安卓&x27;s文件系统?

Android 什么是安卓&x27;s文件系统?,android,filesystems,Android,Filesystems,Android的文件系统是什么?默认情况下,它使用另一个Flash文件系统。取决于您使用的硬件/平台 由于Android在这个级别上使用Linux内核,所以或多或少可以使用Linux内核支持的任何文件系统 但由于大多数手机使用某种nand闪存,因此可以安全地假设它们使用YAFFS 但请注意,如果一些供应商想销售Android上网本(带硬盘),他们可以使用ext3或类似的东西。Android支持Linux内核支持的所有文件系统,除了少数几个移植的文件系统,如NTFS 例如,SD卡的格式是ext3。

Android的文件系统是什么?

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

取决于您使用的硬件/平台

由于Android在这个级别上使用Linux内核,所以或多或少可以使用Linux内核支持的任何文件系统

但由于大多数手机使用某种nand闪存,因此可以安全地假设它们使用YAFFS


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

Android支持Linux内核支持的所有文件系统,除了少数几个移植的文件系统,如NTFS


例如,SD卡的格式是ext3。

它取决于什么文件系统,例如
/system
/data
yaffs2
,而
/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

约翰很接近——这取决于硬件制造商。例如,三星Galaxy S手机使用三星RFS(专有)。然而,搭载安卓2.3的Nexus S(同样由三星制造)使用了Ext4(可能是因为谷歌告诉他们——Nexus S是目前谷歌的体验手机)。由于这种转变,许多社区开发者也开始转向Ext4。

在十六进制编辑器中分析Galaxy Ace 2.2时。hex似乎指向使用FAT16作为文件系统的设备。我觉得这很不寻常。不过,FAT16与Linux内核兼容。

这里的大多数答案都非常陈旧

在过去,当非托管nand是最流行的存储技术时,yaffs2是最常见的文件系统。如今,很少有设备使用未管理的nand,而那些仍在使用的设备正在慢慢迁移到ubifs

今天,最常见的存储是emmc(托管nand),对于这样的设备,ext4要流行得多,但是,这个文件系统慢慢为f2fs(闪存友好型fs)扫清了道路


编辑:f2fs可能不会成为flash设备(包括android)的通用fs

因为大多数设备使用eMMC,android使用的文件系统是ext4,除了固件。请参阅-

下面是galaxy s4上的文件系统:

  • /系统ext4

  • /数据ext4

  • /缓存ext4

  • /固件vfat

  • /数据/媒体/mnt/shell/模拟的sdcardfs

详细输出如下:

/dev/block/platform/msm_sdcc.1/by-name/system/system ext4 ro、seclabel、relatime、数据=订购的0

/dev/block/platform/msm_sdcc.1/by-name/userdata/data ext4 rw,seclabel,nosuid,no dev,noatime,discard,journal\u checksum,journal\u async\u commit,noauto\u da\u alloc,data=o 红色0 0

/dev/block/platform/msm_sdcc.1/by-name/cache/cache ext4 rw,seclabel,nosuid,节点 v、 noatime、discard、journal\u checksum、journal\u async\u commit、noauto\u da\u alloc、data=ord 0

/dev/block/platform/msm_sdcc.1/by-name/efs/efs ext4 rw,seclabel,nosuid,nodev,no atime、discard、journal\u checksum、journal\u async\u commit、noauto\u da\u alloc、errors=panic ,数据=有序的0

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

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

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

/数据/媒体/mnt/shell/模拟sdcardfs rw、nosuid、nodev、relatime、uid=1023、gid=10230


与Linux类似:

  • /靴子

  • /系统

  • /恢复

  • /资料

  • /缓存

  • /杂项


Hmm安卓还支持其他文件系统吗?@PaulLammertsma是否要求制造商遵守此规定?@Pacerier我不知道制造商需要或不需要执行哪些政策,但请快速查看一些姜饼前和后设备(
adb shell mount
)确认Gingerbread的文件系统是ext4,Froyo和更早的是YAFFS。@PaulLammertsma顺便问一下,你知道如何使用代码获取文件系统的名称吗?不,sd卡使用的是基于fat的文件系统,否则Windows无法安装它。大多数sd卡的格式都是fat32,尽管你可能会偶然发现一些小sd卡(你说得对,罗伯特-很抱歉弄错了。不是ext3。它不是很好的嵌入式设备。你的链接断了,我找不到其他选择。我刚在缓存和系统分区上都有一个损坏的文件系统。我是否应该将它们重新格式化为f2f?