안드로이드 AOSP 빌드를 보다 간략하고 쉽게 따라할 수 있도록 작성해보았습니다.

빨간색 글자는 반드시 따라 안하셔도 되며, 안드로이드 장비에 맞게 설정하시길 바랍니다.

 

권장 환경

OS : Ubuntu 18.04 이상 (낮은 버전은 python2 때문에 꼬임)

RAM : 16G 이상 (16G 이하는 빌드가 잘 안됩니다.)

용량 : 300G 이상

정신 : 튼튼한 삽질 멘탈

 

필수 설치

$ sudo apt-get update

$ sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

 

소스 코드 다운로드

$ mkdir android

$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > repo

$ chmod a+x repo

$ sudo mv repo /usr/bin

$ sudo ln -s /usr/bin/python3 /usr/bin/python

$ git config --global user.email "이메일(ex. admin@gmail.com)"
$ git config --global user.name "이름(ex. admin)"


$ repo init -u https://android.googlesource.com/platform/manifest

or

$ repo init -u https://android.googlesource.com/platform/manifest -b android-12.0.0_r27

( -b 옵션은 희망하는 빌드 번호에 맞게 repo 됩니다. )

( 단, 옵션 없을 시 최신 빌드로 받아집니다...만 엄청난 시간이 걸리므로 옵션 사용을 추천드립니다. )

( 참고 : https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds )
$ repo sync -j 32

( j 뒤에 숫자는 CPU를 보고 맞춥니다. ex. repo sync -j2, repo sync -j4, repo sync -j8 등)

$ source build/envsetup.sh
$ lunch

Nexus 빌드 네임

( 자신이 빌드하고자 하는 장비에 맞게 선택해주시면 됩니다. )

( ex. Nexus 5X인 경우 "aosp_bullhead_userdebug"으로 29번 선택 )
$ make -j 32

 

이미지 주입

※ 생성된 이미지를 가져와 윈도우10에서 작업하였습니다.

※ 키 생성 과정이 생략되어 추후 작성하겠습니다.

 

- fastboot 모드 진입은 전원키+볼륨상+볼륨하를 꾸욱 눌려줍니다.

- 언락

$ fastboot oem unlock

- 빌드

$ set ANDROID_PRODUCT_OUT=이미지가 들어가있는 폴더

$ fastboot -w flashall

 

References

https://source.android.com/setup
Building and flashing a secured AOSP build with verified boot and separate lockscreen password for the Nexus 5X
안드로이드 포팅 1-2 AOSP 빌드하기
안드로이드 에뮬레이터 환경에서 OS 이미지 적용을 위한 안드로이드 OS 풀 소스 빌드 방법
안드로이드 스튜디오의 에뮬레이터 설치 및 사용 방법

'Android' 카테고리의 다른 글

안드로이드 보안 컨테이너 Kinibi 기반 TrustZone 취약점 분석  (0) 2022.01.26
Android Security Awesome  (0) 2022.01.08
Android Application Fuzzing Review  (0) 2021.09.17
Samsung Firmware Reference  (0) 2021.02.02
scrcpy 명령어  (0) 2021.01.05