device/ 에 새로운 기기를 추가하는것으로 시작해보자.


$ cd ~/aosp6.0 (aosp가 빌드된곳 여기서는 aosp6.0 이라 한다.)

$ . build/envsetup.sh

$ mkdir -p device/corp/whkongpad    // 보통 회사이름 안에 기기 이름을 적는다.

$ cd device/corp/whkongpad


whkongpad 에서 사용할 여러가지 AOSP 요소를 써 넣을 AndroidProducts.mk 파일 만들기


파일내용:

PRODUCT_MAKEFILES := \

     $(LOCAL_DIR)/full_whkongpad.mk      //연결할mk파일 이름을 넣는다. 


full_whkongpad.mk 만들기


파일내용:

$(call inherit-product, $(SRC_TARGET_DIR)/product/languages_full.mk)    //다른 제품의 설명을 기초하여 빌드를 진행하도록

$(call inherit-product, $(SRC_TARGET_DIR)/product/full.mk)                  // inherit-product 함수를 사용한다.


DEVICE_PACKAGE_OVERLAYS :=      //AOSP 소스에 적용될 오버레이(overlay)의 기반이 될 디렉토리를 지정하여 기본 패키지

                                               // 자원을 기기에 특화된 자원으로 대체할 수 있게 해준다. (뭔소리임??  ㅡ,.ㅡ)


PRODUCT_PACKAGES +=              // 상속한 설정 정보에 포함되 ㄴ패키지 외에 더 추가할 패키지 직접 지정

PRODUCT_COPY_FILES +=             //대상 파일시스템에 복사할 파일과 그 파일을 보사해올 경로를 지정


PRODUCT_NAME := full_whkongpad           //lunch 에 인자로 넘길때 설정할 수 있는 TARGET_PRODUCT

PRODUCT_DEVICE := whkongpad               // 고객에에 전달되는 완제품의 이름

                                                         // PRODUCT_DEVICE의 값과 같은 이름의 디렉터리가 존재해야한다.

                                                          //BoardConfig.mk 파일을 이 폴더에서 찾음

PRODUCT_MODEL := Full Android on WhkongPad              //About the phone 메뉴에 표시되는 모델명


BoardConfig.mk 만들기


 파일내용:

TARGET_NO_KERNEL := true

TARGET_NO_BOOTLOADER := true

TARGET_CPU_ABI := armeabi

TARGET_ARCH := arm

TARGET_ARCH_VARIANT := armv7-a

TARGET_CPU_VARIANT := generic

BOARD_USES_GENERIC_AUDIO := true


USE_CAMERA_STUB := true


#이는 빌드 성공에 필요한 최소한만을 담은 BoardConfig.mk 이다.

#현실적인 예는 device/asus/grouper/BoardConfigCommon.mk 를 참고


Android.mk 만들기

기기의 디렉터리에 포함 시킬 모든 모듈을 빌드하기 위해서는 Androidl.mk 가 필요하다.


 파일내용:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)


ifneq ($(filter coyotepad,$(TARGET_DEVICE)),)

include $(call all-makefiles-under,&(LOCAL_PATH))

endif


vendorsetup.sh 만들기


 파일내용:

add_lunch_combo full_whkongpad-eng

저장후 실행할수 있게

쉘:

$ chmod 755 vendorsetup.sh


변경점 확인하기 


$ croot  //루트로이동

$ . build/envsetup.sh

$ lunch

이제 자신이 추가한 full_whkong-eng가 있는것을 확인할 수 있다.

 


+ Recent posts