Android AOSP Build
안드로이드 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
( 자신이 빌드하고자 하는 장비에 맞게 선택해주시면 됩니다. )
( 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 |