Create a board-specific directory beneath your company directory that matches the PRODUCT_DEVICE variable referenced in the product-specific make file above. This will include a make file that gets accessed by any product using this board.
mkdir vendor// Create a BoardConfig.mk file in the directory created in the previous step (vendor//).
# These definitions override the defaults in config/config.make for
# TARGET_NO_BOOTLOADER := false
# TARGET_HARDWARE_3D := false
TARGET_USE_GENERIC_AUDIO := true
If you wish to modify system properties, create a system.prop file in your directory(vendor//).
# system.prop for
# This overrides settings in the products/generic/system.prop file
# rild.libargs=-d /dev/ttyS0
Add a pointer to .mk within products/AndroidProducts.mk.
PRODUCT_MAKEFILES := \
An Android.mk file must be included in vendor// with at least the following code:
By now, you should have two new products, called and associated with . To verify that a product is properly configured (, for example), execute the following:
You should find new build binaries located in /out/target/product/.
New Product File Tree
The file tree below illustrates what your own system should look like after completing the steps above.
Product Definition Files
Product-specific variables are defined in product definition files. A product definition file can inherit from other product definition files, thus reducing the need to copy and simplifying maintenance.
Variables maintained in a product definition files include:
End-user-visible name for the overall product. Appears in the "About the phone" info.
End-user-visible name for the end product
A space-separated list of two-letter language code, two-letter country code pairs that describe several settings for the user, such as the UI language and time, date and currency formatting. The first locale listed in PRODUCT_LOCALES is is used if the locale has never been set before.
The brand (e.g., carrier) the software is customized for, if any
List of property assignments in the format "key=value"
List of words like source_path:destination_path. The file at the source path should be copied to the destination path when building this product. The rules for the copy steps are defined in config/Makefile