一、android配置文件所在目录
android系统刚启动的时候会读取init.rc 文件来对android系统进行初始化,一般这个初始化文件在"system/core/rootdir"目录下
maya@maya-g450:ls -l android-4.1.2/system/core/rootdir/
-rw-r--r-- 1 maya root 2255 11月 14 2014 Android.mk
drwxr-xr-x 2 maya root 4096 11月 14 2014 etc
-rw-r--r-- 1 maya root 17057 11月 14 2014 init.rc
-rw-r--r-- 1 maya root 1637 11月 14 2014 init.trace.rc
-rw-r--r-- 1 maya root 3915 11月 14 2014 init.usb.rc
-rw-r--r-- 1 maya root 3979 11月 14 2014 ueventd.rc
maya@maya-g450:ls -l android-4.1.2/system/core/rootdir/etc/-rw-r--r-- 1 maya root 935 11月 14 2014 dbus.conf
-rw-r--r-- 1 maya root 25 11月 14 2014 hosts
-rw-r--r-- 1 maya root 2344 11月 14 2014 init.goldfish.rc
-rwxr-xr-x 1 maya root 1755 11月 14 2014 init.goldfish.sh
-rwxr-xr-x 1 maya root 9280 11月 14 2014 init.testmenu
-rw-r--r-- 1 maya root 718 11月 14 2014 mountd.conf
-rw-r--r-- 1 maya root 272 11月 14 2014 ueventd.goldfish.rc
-rw-r--r-- 1 maya root 1093 11月 14 2014 vold.fsta
从上面的列表可知除了init.rc文件之外,还有其他配置配置文件:
Android.mk init.rc init.usb.rc
init.trace.rc ueventd.rc
令人困惑的是在目标设备的目录里面也存在这些配置文件:
maya@maya-g450:ls -l /android-4.1.2/device/friendly-arm/tiny4412/conf
-rw-r--r-- 1 maya root 2710 11月 14 2014 audio_codec.h
-rw-r--r-- 1 maya root 427 11月 14 2014 egl.cfg
-rw-r--r-- 1 maya root 635 11月 14 2014 fstab.tiny4412
-rw-r--r-- 1 maya root 18330 11月 14 2014 init.rc
-rw-r--r-- 1 maya root 4679 11月 14 2014 init.tiny4412.rc
-rw-r--r-- 1 maya root 2857 11月 14 2014 init.tiny4412.usb.rc
-rw-r--r-- 1 maya root 3861 11月 14 2014 ueventd.tiny4412.rc
-rw-r--r-- 1 maya root 672 11月 14 2014 vold.fstab
二、android配置文件的去向和运行机制
android配置文件虽然有两份,但其实只有一份是真正有用的,查看源码目标设备的目录device_base.mk文件就能知道真相。源码目录:device/friendly-arm/tiny4412/device_base.mk
里面有关配置文件的拷贝
# Init files
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/conf/init.rc:root/init.rc \
$(LOCAL_PATH)/conf/init.tiny4412.rc:root/init.tiny4412.rc \
$(LOCAL_PATH)/conf/init.tiny4412.usb.rc:root/init.tiny4412.usb.rc \
$(LOCAL_PATH)/conf/ueventd.tiny4412.rc:root/ueventd.tiny4412.rc \
$(LOCAL_PATH)/conf/fstab.tiny4412:root/fstab.tiny4412 \
$(LOCAL_PATH)/init.tiny4412.sh:system/etc/init.tiny4412.sh
由上可知配置文件是拷贝到"/root/"的目录下,android启动的时候会自动到"/root/"目录下读取配置文件。