1. 前言

device目录为平台产品定制目录,这边将以某平台为例,讲一下结构设计思路,但这里并不会涉及到源码设计,仅供参考。

2. 目录结构

定制的目录如下:
在这里插入图片描述
下面说一下重要的文件或者目录:

1.vendorsetup.sh
主要作用是为lunch菜单添加新的产品项,这里是出于平台定制化考虑。
里面内容如下:

add_lunch_combo Orange-eng
add_lunch_combo Orange-user

2.AndroidProducts.mk
产品的实际属性由product目录下的AndroidProducts.mk,这个文件实际是一个散转,作用为包含其他命名的*.mk文件,这些文件下面可能会有各种以“PRODUCT_”开头的属性:PRODUCT_NAME、PRODUCT_MODEL、PRODUCT_BRAND等等。

内容如下:

PRODUCT_MAKEFILES := \
        $(LOCAL_DIR)/Orange.mk

3.BoardConfig.mk
通过上面的AndroidProducts.mk被包含进来,主要描述目标架构、硬件设备属性、编译器条件标识、boot地址、ramdisk大小等一系列硬件参数。

4.Orange.mk
也是通过AndroidProducts.mk被包含进来,我们在这里定义了一些变量以及属性,并包含了devie.mk的内容。

5.devie.mk
这里描述该产品需要将哪些软件功能模块编译进镜像,定义默认属性和拷贝之类的操作,还有就是在这里包含了customer.mk

6.customer.mk
我们在这里设置了一些系统默认属性值。

7.xxx_customization
这个目录为平台定制化目录,平台定制化核心目录。

3. 其他

不同的芯片厂家及开发平台对device都做了大量定制化操作,这里面的东西远不止这些东西,这里不再赘述,有过有兴趣的话可以在下方评论区讨论,感谢您的阅读!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐