2011年05月31日
Androidのファイルシステム
Android端末でのファイルシステムの構成を調べました。
典型的なAndroidのファイルシステム
rootはinitrdのramdiskになっています。
その下にsystem, data, cache にフラッシュメモリのパーティションがマウントされます。
rootとsystemはread onlyでマウントされていて、data, cacheはread/writeでマウントされます。
rootの下には/dev, /proc, /sys 等もマウントされます。これらは通常のLinuxと同じです。
KZM-A9-Dualボードに移植するときには、これらのディレクトリツリーをまるごとNFSやSDに置くようにしています。また、実験のために全てread/write可能な状態でマウントします。
Nexus One
$ df df Filesystem Size Used Free Blksize /dev 192M 32K 192M 4096 /mnt/asec 192M 0K 192M 4096 /mnt/obb 192M 0K 192M 4096 /system 145M 127M 17M 4096 /data 196M 74M 121M 4096 /cache 95M 1M 93M 4096 /mnt/sdcard 3G 107M 3G 32768 /mnt/secure/asec: Permission denied $ mount mount rootfs / rootfs ro,relatime 0 0 tmpfs /dev tmpfs rw,relatime,mode=755 0 0 devpts /dev/pts devpts rw,relatime,mode=600 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 none /acct cgroup rw,relatime,cpuacct 0 0 tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0 tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0 none /dev/cpuctl cgroup rw,relatime,cpu 0 0 /dev/block/mtdblock3 /system yaffs2 ro,relatime 0 0 /dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev,relatime 0 0 /dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev,relatime 0 0 /sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0 /dev/block/vold/179:1 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,u id=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset =iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 /dev/block/vold/179:1 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relat ime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,ioch arset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0 $ cat /proc/mtd cat /proc/mtd dev: size erasesize name mtd0: 000e0000 00020000 "misc" mtd1: 00400000 00020000 "recovery" mtd2: 00380000 00020000 "boot" mtd3: 09100000 00020000 "system" mtd4: 05f00000 00020000 "cache" mtd5: 0c440000 00020000 "userdata" $
Xperia PLAY
$ df df Filesystem Size Used Free Blksize /dev 199M 76K 199M 4096 /mnt/asec 199M 0K 199M 4096 /mnt/obb 199M 0K 199M 4096 /system 312M 223M 88M 4096 /data 380M 155M 224M 4096 /cache 225M 2M 222M 4096 /data/idd 10M 1M 8M 4096 /mnt/sdcard 14G 1G 13G 16384 /mnt/secure/asec: Permission denied $ mount mount rootfs / rootfs ro,relatime 0 0 tmpfs /dev tmpfs rw,relatime,mode=755 0 0 devpts /dev/pts devpts rw,relatime,mode=600 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0 tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0 /dev/block/mtdblock0 /system yaffs2 ro,relatime 0 0 /dev/block/mtdblock3 /data yaffs2 rw,nosuid,nodev,relatime 0 0 /dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev,relatime 0 0 /sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0 /dev/block/mtdblock1 /data/idd yaffs2 rw,nosuid,nodev,relatime 0 0 /dev/block/vold/179:1 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,u id=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset =iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 /dev/block/vold/179:1 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,relat ime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,ioch arset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0 $ cat /proc/mtd cat /proc/mtd dev: size erasesize name mtd0: 13880000 00020000 "system" mtd1: 00a00000 00020000 "appslog" mtd2: 0e100000 00020000 "cache" mtd3: 17c00000 00020000 "userdata" $