커스텀 Android 빌드 환경 구성하기
Android 오픈소스 프로젝트(AOSP)를 활용하여 커스텀 Android 빌드를 구성하는 과정은 다양한 설정과 환경 구성이 필요합니다. 본 포스팅에서는 커스텀 Android 빌드 환경을 구축하는 방법을 단계별로 설명합니다.
1. 빌드 환경 준비
AOSP를 빌드하기 위해서는 특정한 소프트웨어 패키지가 필요합니다. Ubuntu 20.04 또는 22.04 LTS 환경에서 진행하는 것이 일반적이며, 필요한 패키지는 다음과 같습니다.
필수 패키지 설치
Ubuntu에서 AOSP 빌드를 위해 필요한 패키지를 설치합니다.
sudo apt update && sudo apt upgrade -y
sudo apt install -y git-core gnupg flex bison build-essential zip curl zlib1g-dev \
gcc-multilib g++-multilib libc6-dev-i386 libncurses5 libncurses5-dev \
x11proto-core-dev libx11-dev libgl1-mesa-dev libxml2-utils xsltproc unzip \
python3 python3-pip python3-venv
Android 13(Tiramisu) 이후 버전의 빌드를 위해서는 repo
도구와 추가적인 패키지가 필요할 수 있습니다.
repo 도구 설치
AOSP 소스를 관리하는 repo
도구를 다운로드하고 실행 권한을 부여합니다.
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
2. AOSP 소스 코드 다운로드
AOSP 소스 코드를 다운로드하기 전에 Google의 공식 저장소에서 코드를 가져오기 위한 초기화 작업이 필요합니다.
mkdir ~/aosp
cd ~/aosp
repo init -u https://android.googlesource.com/platform/manifest -b android-14.0.0_r3
repo sync -j$(nproc --all)
위의 명령어에서 -b android-14.0.0_r3
는 특정 버전의 AOSP를 가져오는 옵션이며, 최신 버전을 사용하려면 공식 문서를 참고하여 적절한 브랜치를 지정하면 됩니다.
3. 빌드 환경 설정
AOSP 빌드를 시작하기 전에 환경을 설정해야 합니다. AOSP 빌드 스크립트는 특정한 환경 변수를 필요로 합니다.
source build/envsetup.sh
lunch aosp_x86_64-userdebug
위의 lunch
명령어에서 aosp_x86_64-userdebug
는 x86_64 아키텍처를 기반으로 한 에뮬레이터용 빌드를 설정하는 예제입니다. 기기별 빌드를 하려면 적절한 타겟을 선택해야 합니다.
4. 커스텀 모듈 추가하기
AOSP에서는 커스텀 모듈을 추가하여 Android의 기능을 확장할 수 있습니다. 예를 들어, device/custom/device_name/
디렉토리를 생성하여 특정 기기의 빌드를 구성할 수 있습니다.
mkdir -p device/custom/device_name
cd device/custom/device_name
Android.bp 파일을 생성하여 커스텀 모듈을 빌드할 수 있도록 설정합니다.
template {
name: "custom_module",
srcs: ["custom_code.cpp"],
cflags: ["-Wall"],
shared_libs: ["liblog"],
}
해당 모듈을 PRODUCT_PACKAGES
에 추가하면 빌드 시 자동으로 포함됩니다.
PRODUCT_PACKAGES += custom_module
5. AOSP 빌드 실행
모든 설정이 완료되면 AOSP 빌드를 실행할 수 있습니다.
make -j$(nproc --all)
빌드가 완료되면 out/target/product/generic_x86_64/
디렉토리에 생성된 이미지 파일을 확인할 수 있습니다.
6. 에뮬레이터 실행
빌드된 이미지를 에뮬레이터에서 실행하려면 다음 명령어를 사용합니다.
emulator -avd aosp_x86_64
실제 기기에 플래싱하려면 fastboot
를 이용하여 이미지를 플래싱할 수 있습니다.
fastboot flashall
7. 마무리
이와 같이 AOSP 소스를 다운로드하고 빌드 환경을 구성하면, 커스텀 Android 빌드를 생성할 수 있습니다. 이후에는 시스템 설정을 변경하거나, 새로운 기능을 추가하는 방식으로 커스텀 빌드를 확장할 수 있습니다. 추가적으로 빌드 속도를 최적화하거나 특정 기기에 맞춘 빌드를 진행하는 방법도 고려할 수 있습니다.
'Android > Framework' 카테고리의 다른 글
HAL의 구조 및 Android 프레임워크와의 관계 (0) | 2025.03.20 |
---|---|
HAL이 필요한 이유 (0) | 2025.03.19 |
Android 빌드 시스템의 구조 (Soong, Makefile) (0) | 2025.03.17 |
Android 시스템 부팅 과정 개요 (0) | 2025.03.16 |
Android의 전체 아키텍처 개요 (0) | 2025.03.15 |