ディレクトリ (Android)
読み:ディレクトリ
Androidのファイルシステムが持っているディレクトリ。
概要
AndroidのOSはLinuxであるが、それはカーネルのみで、ディレクトリ構成などは完全に独自である。
Linuxで一般的な構成とは大きく異なっている。
それは、Androidが組み込み用のOSであること、シングルユーザーが前提であることなど、一般的なLinuxとは用途が異なるためと思われる。
構成
Android 5.0のとある機種では、次のような構成となっていた。
ルート直下は全てだが、それ以外のサブディレクトリについては重要そうなものを取捨している(ABC順ソート)。
- / ‐ ルートディレクトリ
- /acct
- /cache
- /config
- /d ‐ /sys/kernel/debug へのシンボリックリンク
- /data
- /data/anr
- /data/app ‐ インストールされたアプリケーションのapkファイル
- /data/app-private
- /data/backup
- /data/dalvik-cache
- /data/data ‐ アプリケーションのデータ保存用
- /data/dontpanic
- /data/local
- /data/lost+found
- /data/misc
- /data/property
- /data/security
- /data/shared
- /data/system
- /data/tombstones
- /dev ‐ デバイスファイル
- /etc ‐ /system/etc へのシンボリックリンク
- /mnt ‐ マウントポイント
- /mnt/asec
- /mnt/obb
- /mnt/sdcard ‐ Android 4.2以降は、内部ストレージへのシンボリックリンク (/storage/emulated/legacy など。機種依存あり)
- /mnt/secure
- /persist
- /proc ‐ プロセスファイルシステム
- /root ‐ root用のホームディレクトリ
- /sbin ‐ システム管理用バイナリ
- /sdcard ‐ Android 4.2以降は、内部ストレージへのシンボリックリンク (/storage/emulated/legacy など。機種依存あり)
- /storage ‐ ストレージ用のマウントポイント
- /sys ‐ sysfs
- /system
- /system/app ‐ アンインストールできない、標準インストールapkファイル
- /system/bin ‐ Linuxの /bin に相当するディレクトリ
- /system/etc ‐ Linuxの /etc に相当するディレクトリ
- /system/fonts ‐ フォント(TrueType)
- /system/framework
- /system/lib
- /system/lost+found
- /system/media
- /system/usr
- /system/vendor
- /system/xbin
- /vendor ‐ /system/vendor へのシンボリックリンク
特徴
df
Androidのdfは、Linuxなどで一般的なものと違い、何がどこにマウントされているかが分からず、マウントされた結果のディレクトリしか表示されない。また、オプションにも一切対応していない。
以下は、とある国産機種の使用中のものの結果一例。
# df
Filesystem Size Used Free Blksize
/dev 185M 32K 185M 4096
/mnt/asec 185M 0K 185M 4096
/mnt/obb 185M 0K 185M 4096
/system 348M 247M 100M 4096
/data 441M 197M 244M 4096
/persist 30M 12M 17M 4096
/cache 100M 2M 97M 4096
/mnt/sdcard 1G 40M 1G 32768
/mnt/secure/asec 1G 40M 1G 32768
#
mount
mountコマンドを使えば、Androidでもマウントの状況が分かる。
以下は、とある国産機種のmountの結果。
- rootfs / rootfs rw,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/mtdblock1 /system yaffs2 rw,relatime 0 0
- /dev/block/mtdblock6 /data yaffs2 rw,nosuid,nodev,relatime 0 0
- /dev/block/mtdblock4 /persist yaffs2 rw,nosuid,nodev,relatime 0 0
- /dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev,relatime 0 0
- /dev/block/vold/179:1 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=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,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
- tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/proc/mtd
とある国産機種では、「cat /proc/mtd」の結果は次の通りだった。
# cat /proc/mtd
dev: size erasesize name
mtd0: 00a00000 00040000 "boot"
mtd1: 15c00000 00040000 "system"
mtd2: 06400000 00040000 "cache"
mtd3: 00100000 00040000 "misc"
mtd4: 01e00000 00040000 "persist"
mtd5: 00a00000 00040000 "recovery"
mtd6: 1b9c0000 00040000 "userdata"
#
mtdの消去単位が256Kiバイト単位となっているところが、いかにもフラッシュメモリーである。
再検索