背景

  • Platform: RK3399
  • OS: Android7.1.2
  • Kernel: v4.4.103

需求

RK3399添加Android新的产品,来区别多个项目产品

解决

Uboot添加

如果Uboot配置或驱动有差异,可以考虑兼顾所有的,或者每种产品单独再对应一个defconfig

内核添加

新建一个项目产品对应的dts,可参考已有的产品
如果内核驱动配置有差异,可以考虑兼顾所有的,或者每种产品单独再对应一个defconfig

Android添加

产品命令规则: Box 产品名中需带有“box”字样

  1. 新增文件夹device/rockchip/rk3399/rk3399_box_xxx, 基于 rk3399_box.mk 创建rk3399_box_xxx.mk,将 rk3399_box 目录下的所有文件拷贝至 rk3399_box_xxx 目录下,或者参考自己已有的一个产品
    cd device/rockchip/rk3399 
    mkdir rk3399_box_xxx 
    cp rk3399_box.mk ./rk3399_box_xxx.mk 
    cp rk3399_box/* rk3399_box_xxx/
  2. device/rockchip/rk3399/AndroidProducts.mk 中添加:
    PRODUCT_MAKEFILES := \ 
    $(LOCAL_DIR)/rk3399.mk \ 
    $(LOCAL_DIR)/rk3399_box.mk \ 
    $(LOCAL_DIR)/rk3399_box_xxx.mk \
  3. device/rockchip/rk3399/vendorsetup.sh 中添加产品对应的 lunch 选项:
    add_lunch_combo rk3399_box_xxx-userdebug 
    add_lunch_combo rk3399_box_xxx-user
  4. 修改 rk3399_box_xxx.mk 及 rk3399_box_xxx 目录下的新产品所需要修改的配置

特别注意要修改rk3399_box_xxx.mk对应的PRODUCT_NAMEPRODUCT_DEVICE字段,要与rk3399_box_xxx相同
5. 修改编译脚本,重新 lunch 产品名称进行新产品编译