0%

Android添加新设备遇到的问题

以RK3328 Android 7.1 的源码为例,在roc_rk3328_cc_box的基础上,新建一个新的设备型号:rk3328_demo。

步骤如下:

创建 device/rockchip/rk3328/rk3328_demo.mk

cp roc_rk3328_cc_box.mk  rk3328_demo.mk
cp -r roc_rk3328_cc_box rk3328_demo

修改 device/rockchip/rk3328/AndroidProducts.mk

PRODUCT_MAKEFILES := \
    $(LOCAL_DIR)/rk3328.mk \
    $(LOCAL_DIR)/rk3328_box.mk \
    $(LOCAL_DIR)/roc_rk3328_cc_box.mk \
    $(LOCAL_DIR)/rk3328_demo.mk \

修改 device/rockchip/rk3328/vendorsetup.sh

add_lunch_combo rk3328_box-eng
add_lunch_combo rk3328_box-userdebug
add_lunch_combo rk3328_box-user
add_lunch_combo roc_rk3328_cc_box-eng
add_lunch_combo roc_rk3328_cc_box-userdebug
add_lunch_combo roc_rk3328_cc_box-user
add_lunch_combo rk3328_demo-eng
add_lunch_combo rk3328_demo-userdebug
add_lunch_combo rk3328_demo-user

修改完之后运行

source build/envsetup.sh
lunch rk3328_demo-userdebug
make

按照一般的教程,这个时候应该就没问题了。可是我编译的时候却报错,提示没有找到init.tablet.rc这个文件。但是我在 rk3328_demo.mk 里面定义的产品特性是box,不是tablet

PRODUCT_CHARACTERISTICS := box

后来发现 Characteristics选 box的时候,设备名也要以_box结尾!所以,把rk3328_demo改成rk3328_demo_box,然后再编译就不会出错了。