Configuring a New Product
来源:互联网 发布:网络建设 需求分析 编辑:程序博客网 时间:2024/05/14 19:56
一、细节描述
下面几步描述了如何配置makefile来为运行Android的设备编译系统。1、在//vendor/目录下创建company目录mkdir vendor/<company_name>2、在company目录下创建一个 products目录mkdir vendor/<company_name>/products/3、创建一个设备相关的makefile:vendor/<company_name>/products/<first_product_name>.mk这个make文件中至少要包含下面代码:$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk) # # Overrides PRODUCT_NAME := <first_product_name> PRODUCT_DEVICE := <board_name>4、在产品定义文件中添加设备相关的变量。5、在products目录下,创建一个AndroidProducts.mk文件,这个文件指向设备的make文件。 # # This file should set PRODUCT_MAKEFILES to a list of product makefiles # to expose to the build system. LOCAL_DIR will already be set to # the directory containing this file. # # This file may not rely on the value of any variable other than # LOCAL_DIR; do not use any conditionals, and do not look up the # value of any variable that isn't set in this file or in a file that # it includes. # PRODUCT_MAKEFILES := / $(LOCAL_DIR)/first_product_name.mk /6、在company目录下创建一个包含特定board特征的目录,这个目录需要与PRODUCT_DEVICE这个变量中的<board_name>相匹配。这个目录下会包含一个make文件,这个make文件可以用下面的方式访问到,比如:mkdir vendor/<company_name>/<board_name>7、在上步的目录(vendor/<company_name>/<board_name>)下,创建一个BoardConfig.mk文件# These definitions override the defaults in config/config.make for <board_name> # # TARGET_NO_BOOTLOADER := false # TARGET_USE_GENERIC_AUDIO := true8、如果你想修改系统属性,在目录vendor/<company_name>/<board_name>下创建一个system.prop文件。# system.prop for # This overrides settings in the products/generic/system.prop file # # rild.libpath=/system/lib/libreference-ril.so # rild.libargs=-d /dev/ttyS09、在products/AndroidProducts.mk文件中添加一个指向<second_product_name>.mk的引用。PRODUCT_MAKEFILES := / $(LOCAL_DIR)/first_product_name.mk / $(LOCAL_DIR)/second_product_name.mk10、目录vendor/<company_name>/<board_name>下必须包含一个Android.mk文件,这个文件中至少包含下面的代码: # make file for new hardware from # LOCAL_PATH := $(call my-dir) # # this is here to use the pre-built kernel ifeq ($(TARGET_PREBUILT_KERNEL),) TARGET_PREBUILT_KERNEL := $(LOCAL_PATH)/kernel endif # file := $(INSTALLED_KERNEL_TARGET) ALL_PREBUILT += $(file) $(file): $(TARGET_PREBUILT_KERNEL) | $(ACP) $(transform-prebuilt-to-target) # # no boot loader, so we don't need any of that stuff.. # LOCAL_PATH := vendor/<company_name>/<board_name> # include $(CLEAR_VARS) # # include more board specific stuff here? Such as Audio parameters. #11、想为相同的board创建第二个product时,创建一个名字为vendor/company_name/products/<second_product_name>.mk的make文件,这个文件中包含:$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk) # # Overrides PRODUCT_NAME := <second_product_name> PRODUCT_DEVICE := <board_name>目前为止,你已经有了两个新product,<first_product_name>和<second_product_name>,都属于<company_name>。验证一下一个product是否配置正确,运行 . build/envsetup.sh make PRODUCT-<first_product_name>-user在/out/target/product/<board_name>目录下,你可以看到生成的二进制文件。二、产品文件树没有翻译三、product定义文件不同的产品,在它的product定义文件中会对一些变量赋予不同的值,product定义文件可以从其它product定义文件中继承。Product定义文件中包含的变量如下:
Parameter
Description
Example
PRODUCT_NAME
End-user-visiblename for the overall product. Appears in the "About thephone" info.
PRODUCT_MODEL
End-user-visiblename for the end product
PRODUCT_LOCALES
A space-separatedlist of two-letter language code, two-letter country code pairsthat describe several settings for the user, such as the UIlanguage and time, date and currency formatting. The first localelisted in PRODUCT_LOCALES is is used if the locale has never beenset before.
地区标识
en_GBde_DE es_ES fr_CA
PRODUCT_PACKAGES
Lists the APKs toinstall.
在这个product中要安装的APK列表。
CalendarContacts
PRODUCT_DEVICE
Name of theindustrial design
生产商的名字
dream
PRODUCT_MANUFACTURER
Name of themanufacturer
制造商的名字
acme
PRODUCT_BRAND
The brand (e.g.,carrier) the software is customized for, if any
软件定制后的分支标识。
PRODUCT_PROPERTY_OVERRIDES
List of propertyassignments in the format "key=value"
属性列表,以"key=value"形式列出。
PRODUCT_COPY_FILES
List of wordslike source_path:destination_path
.The file at the source path should be copied to the destinationpath when building this product. The rules for the copy steps aredefined in config/Makefile
当编译时,源路径上的文件会被复制到目标路径上去,具体的复制规则在config/Makefile中定义。
PRODUCT_OTA_PUBLIC_KEYS
List of OTApublic keys for the product
PRODUCT_POLICY
Indicate whichpolicy this product should use
PRODUCT_PACKAGE_OVERLAYS
Indicate whetherto use default resources or add any product specific overlays
vendor/acme/overlay
PRODUCT_CONTRIBUTORS_FILE
HTML filecontaining the contributors to the project.
包含了项目贡献者名字列表的HTML文件。
PRODUCT_TAGS
list ofspace-separated words for a given product
下面给出了一个经典的product定义文件$(call inherit-product, build/target/product/generic.mk)#OverridesPRODUCT_NAME := MyDevicePRODUCT_MANUFACTURER := acmePRODUCT_BRAND := acme_usPRODUCT_LOCALES := en_GB es_ES fr_FRPRODUCT_PACKAGE_OVERLAYS := vendor/acme/overlay
- Configuring a New Product
- Configuring a New Product
- Configuring a New Product
- Configuring a New Product
- Android --Configuring a New Product
- 定制新设备 (Configuring a New Product)
- Configuring a New Product of Android 2.2 Froyo
- android 定制新产品】 定制新设备 (Configuring a New Product)
- Configuring A New Kernel
- Announcement of a New Product
- Create a new android product project
- a new product:north face winter coats 485
- a new product:north face winter coats 485
- A new way of real-time product costing
- Configuring a Serial Port
- Configuring a Liferay cluster
- (OK) Adding a New Device - for company build and product teams only
- Configuring a Solaris NTP Server
- onmode -BC 1
- Customization
- 编程技巧:用JQuery的lazyload.js实现图片异步载入
- magento--12--24--2010
- SET TRANSACTION ISOLATION LEVEL (Transact-SQL)
- Configuring a New Product
- 这就是生活
- Android_Build_System
- 爆笑
- MAGENTO数据转移/换服务器/换域名
- 真心话大冒险经典问题
- 刘若英的四十一句让人心疼的话
- Linux中文显示乱码问题
- H264 解码 主函数