Android full source 를 빌드할 때, 새로운 product 를 추가하는 과정을 정리했습니다.
다음의 글에 이어집니다.
http://forum.falinux.com/zbxe/index.php?mid=android&document_srl=785265
5. 보드 정보를 포함하는 <board_name> 디렉토리를 <company_name> 안에 생성합니다.
board_name 은 <product_name>.mk 파일의 DEVICE_NAME 에 값과 일치해야합니다.
mkdir vendor/<company_name>/<board_name>
6. BoardConfig.mk 파일을 <board_name> 디렉토리안에 생성합니다. vendor/<company_name>/<board_name>
# These definitions override the defaults in config/config.make for <board_name> # # TARGET_NO_BOOTLOADER := false # TARGET_HARDWARE_3D := false # TARGET_USE_GENERIC_AUDIO := true
7. 시스템 properties 를 변경할 필요가 있다면 <board_name> 디렉토리안에 system.prop 파일을 생성합니다.
vendor/<company_name>/<board_name>
# system.prop for# This overrides settings in the products/generic/system.prop file # # rild.libpath=/system/lib/libreference-ril.so # rild.libargs=-d /dev/ttyS0
8. <board_name> 디렉토리에 Android.mk 파일을 추가합니다. Android.mk 파일은 반드시 다음의 내용을 포함해야 합니다.
# make file for new hardwarefrom # 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. #
9. 빌드시 다음과 같은 명령으로 해당 product 를 빌드할 수 있습니다.
. build/envsetup.sh make PRODUCT-<product_name>-user
10. New Product File Tree
+ <company_name>
+ <board_name>
+ Android.mk
+ product_config.mk
+ system.prop
+ products
+ AndroidProducts.mk
+ <product_name>.mk
* 이 문서는 다음 문서를 참조햇습니다.
http://www.kandroid.org/online-pdk/guide/build_new_device.html