admin管理员组文章数量:1531463
2024年1月6日发(作者:)
Android系统根目录的结构
经过这几天在网上搜索关于Android文件系统的相关资料,发现已经有很多高手分析了Android的文件系统,这些高手多从不同的方面分析了其文件系统的结构和运行原理。我这里就写一下自己的理解。
首先是Android的文件系统根目录的结构:
# pwd && ls -a -l
/
drwxrwxrwt root root 2009-06-10 09:53 sqlite_stmt_journals
drwxrwx--- system cache 2008-09-06 22:51 cache
d---rwxrwx system system 1970-01-01 08:00 sdcard
lrwxrwxrwx root root 2009-06-09 22:11 etc -> /system/etc
drwxr-xr-x root root 2008-09-06 22:45 system
drwxr-xr-x root root 1970-01-01 08:00 sys
drwxr-x--- root root 1970-01-01 08:00 sbin
-rw-r--r-- root root 117 1970-01-01 08:00
dr-xr-xr-x root root 1970-01-01 08:00 proc
-rwxr-x--- root root 1704 1970-01-01 08:00
-rwxr-x--- root root 9329 1970-01-01 08:00
-rwxr-x--- root root 1677 1970-01-01 08:00
-rwxr-x--- root root 106636 1970-01-01 08:00 init
-rw-r--r-- root root 118 1970-01-01 08:00
drwxrwx--x system system 2008-09-06 22:51 data
drwx------ root root 2009-06-07 16:29 root
drwxr-xr-x root root 2009-06-09 22:11 dev
sqlite_stmt_journals:一个根目录下的tmpfs文件系统,用于存放临时文件数据。
cache : 是缓存临时文件夹,据说是除了T-mobile的OTA更新外,别无用处。
sdcard:是SD卡中的FAT32文件系统挂载的目录
etc :指向 /system/etc ,众所周知的配置文件存放目录
system :是一个很重要的目录,系统中的大部分东西都在这里了,以下是目录结构:
# ls -a -l /system
drwxr-xr-x root 208 1970-01-01 08:00 xbin
drwxr-xr-x root root 1970-01-01 08:00 modules
drwxr-xr-x root root 2008-08-01 20:00 framework
drwxr-xr-x root root 2008-08-01 20:00 fonts
drwxr-xr-x root root 2008-08-01 20:00 etc
-rw-r--r-- root root 2197 2008-08-01 20:00
drwxr-xr-x root root 2008-08-01 20:00 media
drwxr-xr-x root shell 2008-08-01 20:00 bin
drwxr-xr-x root root 2008-08-01 20:00 usr
drwxr-xr-x root root 2008-08-01 20:00 app
drwxr-xr-x root root 2008-09-06 22:45 lost+found
drwxr-xr-x root root 2008-08-01 20:00 lib
drwxr-xr-x root root 2008-08-01 20:00 sd
-rw-r--r-- root root 145 2008-08-01 20:00
sys :用于挂载 sysfs文件系统。 在设备模型中,sysfs文件系统用来表示设备的结构.将设备的层次结构形象的反应到用户空间中.用户空间可以修改sysfs中的文件属性来修改设备的属性值
sbin: 只放了一个用于调试的adbd程序。
proc :/proc 文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。
data :存放用户安装的软件以及各种数据。
root :什么都没有。
dev :不用多说了,设备节点文件的存放地。
下面介绍非目录的文件:
用于 SD 卡中 EXT2文件系统的自动挂载动作的脚本。
,, 是初始化文件.
init是系统启动到文件系统的时候第一个运行的程序。
从以上的根目录分析来看,Android的根文件系统并非标准的Linux文件系统,所以以后还得仔细分析一下启动过程,才能认识Android系统。
今天要来分析一下Android文件系统的/system目录的结构。
/system目录是在Android文件系统占有及其重要的位置,基本上所有的工具和应用程序都在这个目录下,我看来是一个真正的rootfs。他在Android手机中存放在nandflash的mtd3中,是一个yaffs2文件系统,在启动时被挂载在root的/system目录下,其中包含有:
# pwd && ls -a -l
/system
drwxr-xr-x root 208 1970-01-01 08:00 xbin
drwxr-xr-x root root 1970-01-01 08:00 modules
drwxr-xr-x root root 2008-08-01 20:00 framework
drwxr-xr-x root root 2008-08-01 20:00 fonts
drwxr-xr-x root root 2008-08-01 20:00 etc
-rw-r--r-- root root 2197 2008-08-01 20:00
drwxr-xr-x root root 2008-08-01 20:00 media
drwxr-xr-x root shell 2008-08-01 20:00 bin
drwxr-xr-x root root 2008-08-01 20:00 usr
drwxr-xr-x root root 2008-08-01 20:00 app
drwxr-xr-x root root 2008-09-06 22:45 lost+found
drwxr-xr-x root root 2008-08-01 20:00 lib
drwxr-xr-x root root 2008-08-01 20:00 sd
-rw-r--r-- root root 145 2008-08-01 20:00
下面逐个分析其中的目录:
xbin
:下放了很多系统管理工具,这些工具不是到toolbox的链接,每个都是可执行程序。如果你看到这些命令你会发现他们根本不常用,他们都是为系统管理员准备的,是一些系统管理和配置工具。这个文件夹的作用相当于标准Linux文件系统中的/sbin。我的手机此目录下有busybox,肯定是改过的,应该是破解者加上的。
modules:使用来存放内核模块(主要是fs和net)和模块配置文件的地方。
framework:
是JAVA平台的一些核心文件,属于JAVA平台系统框架文件。里面的文件都是.jar和.odex文件。
备注:什么是odex文件? odex是被优化过的JAVA程序文件,体积通常是.jar的4倍左右。执行效率比.jar高。
fonts
:很显然,这是字体库文件的存放目录。
etc
:这里存放了系统中几乎所有的配置文件,根目录下的/etc就链结于此。
:是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似于/etc中的文件。
media
:里面主要是存放了系统的铃声的,分为 notifications(通知)、ui(界面)、alarms(警告)和ringtones(铃声),里面都是.ogg音频文件。
bin
:众所周知,是存放用户常用的工具程序的,其中大部分是到toolbox的链接(类似嵌入式Linux中的busybox)。toolbox应该是google简化版的busybox,我还没深入研究过。
usr
:用户的配置文件,如键盘布局、共享、时区文件等等。您可以cat
来看看。
app
:顾名思义,存放的是Android系统自带的JAVA应用程序。
lost+found
:yaffs文件系统固有的,类似回收站的文件夹,只有是yaffs文件系统都会有。
lib
:存放几乎所有的共享库(.so)文件。
sd
:SD卡中的EXT2分区的挂载目录
:一个初始化脚本,用于将/system/modules和/system/xbin挂载为cramfs,避免系统被无意破坏。
下面是/sys目录下文件介绍
android操作系统详细目录结构
systemapp
这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件。在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是data文件夹中。下面是详细的介绍:
闹钟
浏览器
Bug报告
计算器
日历
日历提供
照相机
亚马逊音乐
联系人
下载提供
DRM数字版权提供
电子邮件客户端
测试程序
GoogleData提供
Gmail电子邮件
Gmail提供
谷歌程序包
搜索工具
GTalk服务
HTML查看器
即使通讯组件包含MSN、yahoo通
启动加载器
电子地图
多媒体播放提供
短信、彩信
音乐播放器
T-Mobile MyFaves程序
apk安装程序
电话拨号器
系统设置
设置提供
设置向导
录音工具
街景地图
同步程序
语音程序
电话提供
更新程序
制造商信息
语音拨号器
Youtube视频
systembin
这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件,Android手机网就主要文件做下简单的分析介绍:
systembinakmd
systembinam
systembinapp_process 系统进程
systembindalvikvm Dalvik虚拟机宿主
systembindbus-daemon 系统BUS总线监控
systembindebuggerd 调试器
systembindebug_tool 调试工具
systembindexopt DEX选项
systembindhcpcd DHCP服务器
systembindumpstate 状态抓取器
systembindumpsys 系统抓取器
systembindvz
systembinfillup
systembinflash_image 闪存映像
systembinhciattach
systembinhcid HCID内核
systembinhostapd
systembinhostapd_cli
systembinhtclogkernel
systembininput
systembininstalld
systembinitr
systembinlinker
systembinlogcat Logcat日志打印
systembinlogwrapper
systembinmediaserver
systembinmonkey
systembinmountd 存储挂载器
systembinnetcfg 网络设置
systembinping Ping程序
systembinplaymp3 MP3播放器
systembinpm 包管理器
systembinqemud QEMU虚拟机
systembinradiooptions 无线选项
systembinrild RIL组件
systembinsdptool
systembinsdutil
systembinservice
systembinservicemanager 服务管理器
systembinsh
systembinssltest SSL测试
systembinsurfaceflinger 触摸感应驱动
systembinsvc 服务
systembinsystem_server
systembintelnetd Telnet组件
systembintoolbox
systembinwlan_loader
systembinwpa_cli
systembinwpa_supplicant
systemetc
从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
APN接入点配置文件
音频过滤器配置文件
书签数据库
总线监视配置文件
systemetcdhcpcd
systemetcevent-log-tags
收藏夹
systemetcfirmware 固件信息
GPS设置文件
内核HCID配置文件
systemetchosts 网络DNS缓存
systemetclocation 定位相关
存储挂载配置文件
提示网页
权限许可
systemetcsecurity
systemetcwifi WLAN相关组件
systemetcdhcpcddhcpcd-hooks
systemetcdhcpcddhcpcd-run-hooks
systemetcdhcpcddhcpcd-hooks01-test
systemetcdhcpcddhcpcd-hooks95-configured
systemetclocationgps
[page_break]
systemetclocationgpslocation 定位相关
systemetclocationgpsnmea GPS数据解析
systemetclocationgpsproperties
OTA下载验证
systemetcwifiwpa_ WPA验证组件
systemfonts
字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T-Mobile G1上可以清楚的看到显示简体中文正常,其中文件大小
systemframework
framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。
AWT库
GTalk服务
电子地图库
核心库,启动桌面时首先加载这个
输入库
包管理库
系统服务
systemlib
lib目录中存放的主要是系统底层库,如平台运行时库。
systemliblibandroid_ Android运行时库
systemliblibandroid_ 系统服务组件
音频处理
EQ均衡器
音频过滤器
蓝牙组件
超相机组件
加密组件
DRM解析库
systemliblibdrm1_
systemliblibGLES_
systemliblibhtc_
systemliblibmedia_
systemliblibpvnet_
systemliblibstdc++.so
systemliblibsystem_
systemliblibthread_
systemliblibUAPI_
systemliblibwbxml_
systemliblibwpa_
systemlibmodules
systemmedia
[page_break]
铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
systemmediaaudio
systemmediaaudioalarms 闹铃音
systemmediaaudionotifications 提示音
systemmediaaudioringtones 铃声
systemmediaaudioui 界面操作事件音
systemmediaaudioalarmsAlarm_Beep_
systemmediaaudioalarmsAlarm_Beep_
systemmediaaudioalarmsAlarm_Beep_
systemmediaaudioalarmsAlarm_
systemmediaaudioalarmsAlarm_
systemmediaaudioalarmsAlarm_Rooster_
systemmediaaudionotificationsBeat_Box_
systemmediaaudionotificationsF1_
systemmediaaudionotificationsF1_New_
systemmediaaudionotificationsF1_New_
systemmediaaudioringtonesRing_Classic_
systemmediaaudioringtonesRing_Digital_
systemmediaaudioringtonesRing_Synth_
systemmediaaudioringtonesRing_Synth_
systemmediaaudiouiEffect_
systemsounds
默认的音乐测试文件,仅有一个文件,用于播放测试的文件。
systemusr
用户文件夹,包含共享、键盘布局、时间区域文件等。
systemusrkeychars
systemusrkeylayout
systemusrshare
systemusrsrec
systemusrkeylayouth2w_
systemusrsharebsk
systemusrsharezoneinfo
systemusrsharebskV_FD_speed_
systemusrsharebskV_FD_std_
systemusrsrecconfig
ionary
2p
mars
ls
marsVoiceDialer.g2g
lsgeneric11_
lsgeneric11_
lsgeneric8_
lsgeneric8_
版权声明:本文标题:Android系统根目录的结构 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1704478405a92875.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论