自定义一个产品:
1, device目录必须有公司名
a, 产品列表文件: AndroidProducts.mk
PRODUCT_MAKEFILES := $(LOCAL_DIR)/full_product.mk 列举出产品的描述文件是什么
b,full_product.mk产品描述文件
$(call inherit-product, $(SRC_TARGET_DIR)/product/full_base.mk)继承通用产品所必
PRODUCT_NAME := full_vax114 #产品名, 非常重要,一定要和lunch中的名字保持一致
PRODUCT_DEVICE := vax114 #产品的配置文件夹
PRODUCT_BRAND := Android
PRODUCT_MODEL := Full AOSP on 114
c, 配置产品文件夹
mkdir vax114
BoardConfig.mk
TARGET_CPU_ABI := armeabi-v7a
TARGET_CPU_ABI2 := armeabi
TARGET_CPU_SMP := true
TARGET_ARCH := arm
TARGET_ARCH_VARIANT := armv7-a-neon
TARGET_CPU_VARIANT := cortex-a7
d, 需要给用户提供一个选择的方式:
vendorsetup.sh
|
add_lunch_combo full_vax114-eng
注:不要去编译
如一个新平台给你:
AndroidProducts.mk--》产品描述文件--》产品配置文件夹--》BoardConfig.mk
变量名 | 作用 | 使用方式 |
PRODUCT_PACKAGES | 系统预置的模块列表,不仅仅只是Android应用程序,还可以包含库,可执行程序等 | 直接将系统中要安装的模块名以空格隔开列出 |
PRODUCT_PROPERTY_OVERRIDES | 系统设置的属性值 | 将所有预设的属性以空格隔开列出,属性格式为:key-value |
PRODUCT_COPY_FILES | 要拷贝的文件 | 将文件列表拷贝到文件系统中,文件格式为:源文件:目标文件 |
PRODUCT_NAME | 产品名 | 该产品名要和编译项中产品名一致 |
PRODUCT_BRAND | 产品品牌 |
|
PRODUCT_DEVICE | 产品对应的设备名 | 该名字要和产品设备主板配置文件(BoardConfig.mk)所在目录名一致 |
PRODUCT_MODEL |
|
|
创建新产品编译项时创建的目录与文件结构如下:
device/mycompany/ # 厂商目录
└── vendorsetup.sh # 添加编译项命令文件
└── myphone/ # 设备名目录
├── AndroidBoard.mk # 设备属性和键值映射配置文件
├── AndroidProducts.mk # 产品列表文件
├── BoardConfig.mk # 设备硬件配置及目标架构配置文件
├── full_product.mk # 目标产品配置文件
├── system.prop # 系统默认属性配置文件
├── tuttle2.kcm # Android系统键值映射文件
├── tuttle2.kl # Linux内核按键布局文件