1、在 android/device/fsl 下新建一个产品目录
android/device/fsl$mkdir tq
android/device/fsl$ ls
arm2_6dq sabresd_6dq arm2_6sl imx53_smd rsb_4410 tq
common imx5x rsb_4410_solo ubc_200 evk_6sl imx6 sabreauto_6q ubc_ds31
2、 进入到产品目录中继续完善文件。
要完成以下文件:
tq$ ls
AndroidBoard.mk build_id.mk recovery.fstab system.prop
audio_effects.conf fstab.freescale recovery_sata.fstab ubi
audio_policy.conf gpsreset.sh recovery_sd.fstab usbCtrl_signal
bluetooth init.rc required_hardware.xml vendorsetup.sh
BoardConfig.mk overlay shutdownanimation.zip vold.fstab
bootanimation.zip recovery_emmc.fstab start.sh
这些文件可以从相近的产品目录中复制过来
build_id.mk的内容是定义显示在系统版本中的ID信息。
export BUILD_ID=1.0.2-product
几个fstab定义与分区挂载相关的内容。比较重要的是freescale.fstab 注意其中的mmcblock是第几个block,以及vold.fstab与热插拔相关,定义U盘,SD卡的挂载。
system.prop --系统属性
vendorsetup.sh 中的内容为 add_lunch_combo tq-eng, 这样在编译的时候执行lunch,列表中将会出现产品名。
init.rc -- 开机启动程序init用到。
BoardConfig.mk 是与板级相关的文件。对于E9来说,可以复用imx6的东西,根据需要修改。
BoardConfig.mk文件包含了device/fsl/imx6/soc下的mk文件,该mk文件定义了内核配置文件 TARGET_KERNEL_DEFCONF (arch/arm/configs)
BoardConfig.mk定义了 uboot配置文件TARGET_BOOTLOADER_CONFIG 。
准备就绪后执行 source build/envsetup.sh -> lunch
提示
build/core/product_config.mk:222: *** Can not locate config makefile for product "tq"
因为没有在 fsl/imx6/AndroidProducts.mk中的PRODUCT_MAKEFILE添加 相关变量。
再次执行lunch
Which would you like? [aosp_arm-eng] 14
build/core/product_config.mk:241: *** No matches for product "tq"
修改
vi device/fsl/imx6/tq.mk
fsl/imx6/tq.mk:8:PRODUCT_NAME := tq
fsl/imx6tq.mk:9:PRODUCT_DEVICE := tq