在Android源码中增加对自己产品的支持
作者: 华嵌嵌入式培训 长沙中心 讲师:周龙
要在android源码中增加对自己特定产品的支持,只需要在[android_root]/device目录下,增加自己的产品目录和配置文件就可以了。如: [android_root]/device/whhq/tq210/ whhq: 一般为公司名,或者其他任意的目录名; tq210: 具体产品名; 在上面增加的产品目录下,增加相应的配置文件(配置文件主要配置一些环境变量,指定哪些模块需要编译,哪些文件需要拷贝到最终的目标板上面去等等)。三个必须要有的文件: vendersetup.sh AndroidProducts.mk BoardConfig.mk ⑴vendersetup.sh 这个文件会被build/envsetup.sh调用执行,所以这个文件里可以调用所有的在build/envsetup.sh定义的变量和函数;一般地,我们在这个文件里调用build/envsetup.sh定义的add_lunch_combo函数,以增加一个lunch选项: 如:add_lunch_combo $TARGET_PRODUCT-$TARGET_BUILD_VARIANT $TARGET_PRODUCT : 用具体的目标产品名替代 $TARGET_BUILD_VARIANT: eng, user ,userdebug 如下,一个很简单的例子:(device/whhq/tq210/vendersetup.sh) ⑵AndroidProducts.mk 这个是产品的主makefile,主要设置PRODUCT_MAKEFILES := 一系列与产品相关的makefile文件; 上述变量中至少要包含一个目标产品同名的.mk文件,即$(TARGET_PRODUCT).mk; 被包含的.mk文件,主要定义哪些packages或资源文件将要编译到最终的system.img中。 如下,一个很简单的例子:(device/whhq/tq210/AndroidProducts.mk)
full_tq210.mk里面主要调用full_base.mk(这里面定义一些的基本的变量,及需要编译的模块等),另外再定义一些与具体产品相关的变量,以及需要拷贝到目标板上面去的文件。
⑶BoardConfig.mk 主要设置前面讲述的那些环境变量的值: 如下,一个很简单的例子:(device/whhq/tq210/BoardConfig.mk)
未完.....待续..... 更多内容请关注华嵌官网
|