Android Add new target

本文档详细介绍了如何为Android-x86创建定制设备目标的过程。包括建立目录结构、配置Makefiles等内容,并提供了关键变量的说明,如BOARD_USES_ALSA_AUDIO及BOARD_HAVE_BLUETOOTH等。

Add new target

Overview

The article describes  how to create a target for your own device under Android-x86.  Rewritten from the e-mail Chih-wei Huang sent to android-x86 discussion group. You can find the original e-mail in https://mail.google.com/mail/?ui=2&shva=1#search/Chih-wei/125eb28a674c23e9

Create a directory

First, you have to create a directory to hold all stuff specific for your target device.

mkdir vendor/xxx/yyy

or

mk dir device/xxx/yyy

where xxx is usually the vendor's name and yyy is the product name. Historically, we used the  vendor/ directory. However, Google suggested to use  device/ since Froyo. We encourage to use the new convention  device/  as AOSP does.

Create makefiles

At least you have to create four makefiles in the new directory:

  • AndroidProducts.mk
This makefile should only contain PRODUCT_MAKEFILES which is a list of product makefiles to expose to the build system. So if your product name is yyy, it is

 PRODUCT_MAKEFILES := $(LOCAL_DIR)/ yyy.mk

  • The product makefile: yyy.mk
You have to define PRODUCT_PACKAGES, PRODUCT_NAME, PRODUCT_DEVICE in it, and call inherit-product to inherit from a product makefile.  I suggest to to inherit generic_x86.mk to get all common x86 rules.

$(call inherit-product,$(SRC_TARGET_DIR)/product/generic_x86.mk)

  • The board config makefile: BoardConfig.mk
 You can override some variables before including $(GENERIC_X86_CONFIG_MK)

 - TARGET_HAS_THIRD_PARTY_APPS
 set to true if you hope to compile third party apps like ConnectBot, FileManager introduced by Android-x86.
 Default: false
  
 - BOARD_USES_ALSA_AUDIO
 Set to false if you don't want ALSA audio.
 Default: true.
  
 - BOARD_HAVE_BLUETOOTH
 If you don't need bluetooth, set it to false.
 Default: true.
  
 - BOARD_USES_TSLIB
 Set to true if you need tslib to calibrate the touchscreen.
 Default: false

 - BOARD_KERNEL_CMDLINE
 You can customize your cmdline (kernel boot options)

 - BOARD_WPA_SUPPLICANT_DRIVER
 Set to true if you need wifi support

  • The android board makefile: AndroidBoard.mk
 You can override some variables before including
 $(GENERIC_X86_ANDROID_MK)

 - LOCAL_FIRMWARES
 Specify the firmwares to be included in the target. The firmwares are supposed to be already in build/target/board/generic_x86/firmware/.
 You may also specify a different directory in LOCAL_FIRMWARES_DIR.

 - TARGET_INITRD_SCRIPTS
 Specify a hook script to be added in the initrd.img. Usually the script should contain a detect_hardware function that will be called by the init script.
 Read eeepc_info as an implementation example.

 - TARGET_PREBUILT_APPS
 If you want to include some prebuilt apps (apk files), set them to this variable.

 - TARGET_KERNEL_CONFIG
 Specify a kernel config file for this target. If not set, the default android-x86_defconfig will be used.


Besides the four makefiles, you may also add the file init.yyy.rc to do some initializations for your product
The file will be included automatically if exists,and called by Android init on booting(after executing init.rc).

转载于:https://my.oschina.net/zengsai/blog/9810

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值