이번 포스팅은 안드로이드 OS 풀 소스를 Nexus 4 실제 기기 기준에 맞춰 빌드하는 과정과 빌드 완료 후, Nexus 4 기기에 생성된 이미지 파일을 플래싱하여 구동시키는 것을 설명한다.

출처 : http://source.android.com/source/building.html

 

안드로이드 OS 풀 소스 빌드 시, 기기에 적용하기 위해서는 해당 기기의 드라이버 바이너리 파일을 적용하여야 하며, 드라이버 바이너리 파일을 적용하지 않고 빌드 후 기기에 적용할 경우, 다음과 같이 Android 로고 화면에서 넘어가지 않는다.

 

 


그 이유로는 해당 기기의 지원하는 드라이버가 설치되어 있지 않아 발생하는 문제인데, 이를 해결하기 위해서는 각각의 기기별 지원하는 드라이버 바이너리 파일들을 다운 받은 소스 코드에 적용 시키고 난 후 빌드를 해야한다.

 

 

1. 드라이버 바이너리 파일 다운로드 및 적용

각각 기기별 안드로이드 버전에 대한 드라이버는 아래에서 다운 받을 수 있다.
Android Device Driver https://developers.google.com/android/nexus/drivers

 

테스트 환경 기기는 Nexus 4이고, OS 버전은 Build:LMY48T / Branch:android-5.1.1_r19​ 이므로, 해당 환경과 동일한 드라이버를 다운로드 하였다.

 


 

해당 기기와 빌드할 안드로이드 버전을 선택하여 다운 받는다.

$ get Link_URL



 

각각의 드라이버 파일을 다운받아 압축을 풀면, 압출 파일당 하나의 쉘 스크립트가 나온다.

 

 


각각의 쉘 스크립트를 다운받은 소스 코드 경로에서 실행시켜, 드라이버 바이너리 파일들을 소스 코드에 적용한다.

 

 


해당 쉘 스크립트를 실행하면 다음과 같의 라이센스에 대한 내용이 나온다.

 


 

"more" 명령어를 이용하여 원문을 보여주기 때문에 Skip을 원한다면 Ctrl+C 키로 Skip 하고, "I ACCEPT"를 정확하게 입력하여 적용한다.

 


 

다운 받은 쉘 스크립트들을 실행하여 각각의 드라이버 파일들이 소스 코드에 적용되면, 기기에 적용할 이미지 파일 생성 빌드 환경 구성이 완료된다.

 

 

2. 빌드 환경 설정

$ source build/envsetup.sh

 

 

 

3. 빌드 하드웨어 타겟 설정​

  - 다음의 명령어를 입력하여 원하는 기기에 맞는 항목을 선택한다.

$ lunch


Nexus 4 기기에 빌드가 완료된 이미지를 올릴 것이므로 13. aosp_mako-userdebug를 선택하였다.

기기의 코드네임을 모를 경우 아래에서 해당 Nexus에 알맞은 코드네임을 찾아서 선택하면 된다.

Android Factory Imagehttps://developers.google.com/android/nexus/images

 

 

 

4. 빌드 시작 (참고 : VM환경 - CPU : Intel Core i5-4690K 3.50GHz, RAM : 4GB, 약 2시간 30분 소요)
​빌드 시 "-j"뒤 숫자는 CPU 코어의 2배를 하면 된다.

$ make -j4

 

 


 


5. 빌드 결과물 확인

$ cd out/target/product/{CodeName}

  ex) cd out/target/product/mako


  

 


6. 기기에 빌드된 이미지 적용

​생성된 이미지 경로를 export 한다.

$ export ANDROID_PRODUCT_OUT=/root/work/out/target/product/{코드네임}

  ex) export ANDROID_PRODUCT_OUT=/root/work/out/target/product/mako


adb 명령어로 기기가 정상적으로 연결되어 있는지 확인

$ adb devices

 

 

 

adb 명령어를 이용하여 부트로더로 리부팅한다.

$ adb reboot bootloader

 


 

Fastboot 명령어로 디바이스에 이미지를 플래싱 한다.

 $ fastboot flashall


 


다음과 같이 모델 번호와 빌드 번호가 AOSP on Mako로 빌드한 이미지가 올라간 것을 확인할 수 있다.

 


 

+ Recent posts