Android系统目录结构

时间:2022-09-07 15:04:04
对于HD2来说,其ROM(不论模拟还是直刷)主要由initrd、zImage、system组成。
这三个部分,对于熟悉Linux的人来说应该并不陌生。
initrd负责的就是启动,其本质就是一个临时的系统,在引导时使用。(呵呵,话说开机最初那五花八门的开机第一二屏就在这里,比如第一个直刷ROM的那个灰底DFT……)
zImage即为Linux内核镜像,所谓的Android基于Linux内核,事实上也就是基于它。
在直刷中,很多大大通常把这两项单独打包成boot.img,也就是统成为引导镜像。(这两部分将在后面有机会时详细介绍)

至于常出现的system.img、system.bin、system.ext2,即为system。
对应的就是那些原生机的卡刷用的update.zip中的system目录,这里面的一切成就了Android的各种特性。
在这部分,先只重点分析一下system目录结构(从别处剪了剪放过来,所以这里涵盖不全,而且不同系统由于有各自的定制,内容不相同)
(提前补充,用户安装程序会存在data目录,sd卡被挂载在sdcard目录):

1 system/app

在这个文件夹下的程序为系统默认的组件,可以看到都是以APK格式结尾的文件,但有些自制的ROM里面还有和APK文件名对应的odex文件。
android系统源代码下的JAVA源代码将被默认编译成APK包,并放到system/app目录下,相关工作请参考mk文件的LOCAL_MODULE_TAGS,变量的值有user optional debug eng tests samples。

\\system\\app\\AlarmClock.apk 闹钟
\\system\\app\\Browser.apk浏览器
\\system\\app\\Bugreport.apk Bug报告
\\system\\app\\Calculator.apk 计算器
\\system\\app\\Calendar.apk 日历
\\system\\app\\CalendarProvider.apk 日历提供
\\system\\app\\Camera.apk 照相机
\\system\\app\\com.amazon.mp3.apk 亚马逊音乐
\\system\\app\\Contacts.apk联系人
\\system\\app\\DownloadProvider.apk下载提供
\\system\\app\\DrmProvider.apk DRM数字版权提供
\\system\\app\\Email.apk 电子邮件客户端
\\system\\app\\FieldTest.apk 测试程序
\\system\\app\\GDataFeedsProvider.apkGoogleData提供
\\system\\app\\Gmail.apk Gmail电子邮件
\\system\\app\\GmailProvider.apk Gmail提供
\\system\\app\\GoogleApps.apk谷歌程序包
\\system\\app\\GoogleSearch.apk 搜索工具
\\system\\app\\gtalkservice.apk GTalk服务
\\system\\app\\HTMLViewer.apk HTML查看器
\\system\\app\\HtcTwitter.apk 集成Twitter客户端PEEP
\\system\\app\\IM.apk 即使通讯组件包含MSN、yahoo通
\\system\\app\\ImCredentialProvider.apk
\\system\\app\\ImProvider.apk
\\system\\app\\Launcher.apk 启动加载器
\\system\\app\\HtcNaviPanel.apk导航软件
\\system\\app\\Maps.apk 电子地图
\\system\\app\\MediaProvider.apk 多媒体播放提供
\\system\\app\\Mms.apk短信、彩信
\\system\\app\\Music.apk 音乐播放器
\\system\\app\\MyFaves.apk T-Mobile MyFaves程序
\\system\\app\\NewsReader.apk 新闻阅读器
\\system\\app\\PackageInstaller.apk apk安装程序
\\system\\app\\Phone.apk电话拨号器
\\system\\app\\Settings.apk 系统设置
\\system\\app\\SettingsProvider.apk 设置提供
\\system\\app\\SetupWizard.apk 设置向导
\\system\\app\\SoundRecorder.apk 录音工具
\\system\\app\\Street.apk 街景地图
\\system\\app\\Sync.apk 同步程序
\\system\\app\\Talk.apk 语音程序
\\system\\app\\TelephonyProvider.apk 电话提供
\\system\\app\\Updater.apk 更新程序
\\system\\app\\VpnServices.apk VPN服务
\\system\\app\\Vending.apk 制造商信息
\\system\\app\\VoiceDialer.apk 语音拨号器
\\system\\app\\VoiceSearch.apk 语音搜索
\\system\\app\\YouTube.apk Youtube视频

2 \\system\\bin

这个目录下的文件都是系统的本地程序,里面主要是Linux系统自带的组件:
\\system\\bin\\akmd
\\system\\bin\\am
\\system\\bin\\app_process 系统进程
\\system\\bin\\dalvikvm Dalvik虚拟机宿主
\\system\\bin\\dbus-daemon 系统BUS总线监控
\\system\\bin\\debuggerd 调试器
\\system\\bin\\debug_tool 调试工具
\\system\\bin\\dexopt DEX选项
\\system\\bin\\dhcpcd DHCP服务器
\\system\\bin\\dumpstate 状态抓取器
\\system\\bin\\dumpsys 系统抓取器
\\system\\bin\\dvz
\\system\\bin\\fillup
\\system\\bin\\flash_image 闪存映像
\\system\\bin\\hciattach
\\system\\bin\\hcid HCID内核
\\system\\bin\\hostapd
\\system\\bin\\hostapd_cli
\\system\\bin\\htclogkernel
\\system\\bin\\input
\\system\\bin\\installd
\\system\\bin\\itr
\\system\\bin\\linker
\\system\\bin\\logcat Logcat日志打印
\\system\\bin\\logwrapper
\\system\\bin\\mediaserver
\\system\\bin\\monkey
\\system\\bin\\mountd 存储挂载器
\\system\\bin\\netcfg 网络设置
\\system\\bin\\ping Ping程序
\\system\\bin\\playmp3 MP3播放器
\\system\\bin\\pm 包管理器
\\system\\bin\\qemud QEMU虚拟机
\\system\\bin\\radiooptions 无线选项
\\system\\bin\\rild RIL组件
\\system\\bin\\sdptool
\\system\\bin\\sdutil
\\system\\bin\\service
\\system\\bin\\servicemanager 服务管理器
\\system\\bin\\sh
\\system\\bin\\ssltest SSL测试
\\system\\bin\\su**ceflinger 触摸感应驱动
\\system\\bin\\svc 服务
\\system\\bin\\system_server
\\system\\bin\\telnetd Telnet组件
\\system\\bin\\toolbox
\\system\\bin\\wlan_loader
\\system\\bin\\wpa_cli
\\system\\bin\\wpa_supplicant

3 \\system\\etc

从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。
\\system\\etc\\apns-conf.xml APN接入点配置文件
\\system\\etc\\AudioFilter.csv 音频过滤器配置文件
\\system\\etc\\AudioPara4.csv
\\system\\etc\\bookmarks.xml 书签数据库
\\system\\etc\\dbus.conf 总线监视配置文件
\\system\\etc\\dhcpcd
\\system\\etc\\event-log-tags
\\system\\etc\\favorites.xml 收藏夹
\\system\\etc\\firmware固件信息
\\system\\etc\\gps.confGPS设置文件
\\system\\etc\\hcid.conf内核HCID配置文件
\\system\\etc\\hosts 网络DNS缓存
\\system\\etc\\init.goldfish.sh
\\system\\etc\\location 定位相关
\\system\\etc\\mountd.conf 存储挂载配置文件
\\system\\etc\\NOTICE.html提示网页
\\system\\etc\\permissions.xml 权限许可
\\system\\etc\\pvplayer.conf
\\system\\etc\\security
\\system\\etc\\wifi WLAN相关组件
\\system\\etc\\location\\gps
\\system\\etc\\location\\gps\\location 定位相关
\\system\\etc\\location\\gps\\nmea GPS数据解析
\\system\\etc\\location\\gps\\properties
\\system\\etc\\security\\cacerts.bks
\\system\\etc\\security\\otacerts.zip OTA下载验证
\\system\\etc\\wifi\\Fw1251r1c.bin
\\system\\etc\\wifi\\tiwlan.ini
\\system\\etc\\wifi\\wpa_supplicant.conf WPA验证组件


4 \\system\\fonts

字体文件夹
\\system\\fonts\\DroidSans-Bold.ttf
\\system\\fonts\\DroidSans.ttf
\\system\\fonts\\DroidSansFallback.ttf
\\system\\fonts\\DroidSansMono.ttf
\\system\\fonts\\DroidSerif-Bold.ttf
\\system\\fonts\\DroidSerif-BoldItalic.ttf
\\system\\fonts\\DroidSerif-Italic.ttf
\\system\\fonts\\DroidSerif-Regular.ttf

\\system\\framework


5 framework主要是系统平台框架

\\system\\framework\\am.jar
\\system\\framework\\am.odex
\\system\\framework\\android.awt.jar AWT库
\\system\\framework\\android.awt.odex
\\system\\framework\\android.policy.jar
\\system\\framework\\android.policy.odex
\\system\\framework\\android.test.runner.jar
\\system\\framework\\android.test.runner.odex
\\system\\framework\\com.google.android.gtalkservice.jar GTalk服务
\\system\\framework\\com.google.android.gtalkservice.odex
\\system\\framework\\com.google.android.maps.jar 电子地图库
\\system\\framework\\com.google.android.maps.odex
\\system\\framework\\core.jar 核心库,启动桌面时首先加载这个
\\system\\framework\\core.odex
\\system\\framework\\ext.jar
\\system\\framework\\ext.odex
\\system\\framework\\framework-res.apk
\\system\\framework\\framework-tests.jar
\\system\\framework\\framework-tests.odex
\\system\\framework\\framework.jar
\\system\\framework\\framework.odex
\\system\\framework\\input.jar 输入库
\\system\\framework\\input.odex
\\system\\framework\\itr.jar
\\system\\framework\\itr.odex
\\system\\framework\\monkey.jar
\\system\\framework\\monkey.odex
\\system\\framework\\pm.jar 包管理库
\\system\\framework\\pm.odex
\\system\\framework\\services.jar
\\system\\framework\\services.odex
\\system\\framework\\ssltest.jar
\\system\\framework\\ssltest.odex
\\system\\framework\\svc.jar 系统服务
\\system\\framework\\svc.odex

6 \\system\\lib

lib目录中存放的主要是系统底层库,如平台运行时库。
\\system\\lib\\libaes.so
\\system\\lib\\libagl.so
\\system\\lib\\libandroid_runtime.soAndroid运行时库
\\system\\lib\\libandroid_servers.so 系统服务组件
\\system\\lib\\libaudio.so 音频处理
\\system\\lib\\libaudioeq.so EQ均衡器
\\system\\lib\\libaudioflinger.so 音频过滤器
\\system\\lib\\libbluetooth.so蓝牙组件
\\system\\lib\\libc.so
\\system\\lib\\libcamera.so 超相机组件
\\system\\lib\\libcameraservice.so
\\system\\lib\\libcorecg.so
\\system\\lib\\libcrypto.so 加密组件
\\system\\lib\\libdrm1.so DRM解析库

7 \\system\\media

媒体文件夹,除了常规的铃声外还有一些系统提示事件音以及开机动画(bootanimation.zip)等
\\system\\media\\audio
\\system\\media\\audio\\alarms 闹铃音
\\system\\media\\audio\\notifications 提示音
\\system\\media\\audio\\ringtones 铃声
\\system\\media\\audio\\ui 界面操作事件音

\\system\\sounds
默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。
\\system\\sounds\\test.mid

\\system\\usr
用户文件夹,包含共享、键盘布局、时间区域文件等。
\\system\\usr\\keychars
\\system\\usr\\keylayout
\\system\\usr\\share
\\system\\usr\\srec