AOSP 개발 설정(9.0 이상)

Android 소스의 main 브랜치를 다운로드하고 빌드하기 전에 필수 요구사항을 하드웨어가 충족하는지 필수 소프트웨어가 적절히 설치되어 있는지 확인해야 합니다. 다음 용어도 알고 있어야 합니다.

Git
Git은 오픈소스로 배포된 무료 버전 제어 시스템입니다. Android는 브랜칭, 커밋, diff, 수정사항과 같은 로컬 작업에 Git를 사용합니다. Git에 관한 자세한 내용은 Git 문서를 참고하세요.
Repo
Repo는 여러 Git 저장소에 걸쳐 복잡한 작업의 실행을 간소화하는 Git의 Python 래퍼입니다. Repo는 모든 버전 제어 작업에서 Git을 대체하지 않으며 복잡한 Git 작업을 쉽게 달성할 수 있도록 할 뿐입니다. Repo는 매니페스트 파일을 이용하여 Android 슈퍼 프로젝트에 Git 프로젝트를 집계합니다.
매니페스트 파일
매니페스트 파일은 Android 소스의 다양한 Git 프로젝트가 AOSP 소스 트리 내에 배치되는 위치를 지정하는 XML 파일입니다.

하드웨어 요구사항 충족

개발 워크스테이션은 다음 하드웨어 요구사항을 충족하거나 초과해야 합니다.

  • A 64비트 시스템

  • 코드를 체크아웃하고 빌드하려면 디스크 여유 공간이 400GB 이상 있어야 합니다(체크아웃하는 데 250GB, 빌드하는 데 150GB).

  • 64GB 이상의 RAM. Google에서는 RAM이 64GB인 72코어 머신을 사용하여 Android를 빌드합니다. 이 하드웨어 구성을 사용하면 Android 전체 빌드에 약 40분이 소요되며 Android의 증분 빌드에는 몇 분밖에 걸리지 않습니다. 이와 대조적으로 RAM이 64GB인 6코어 머신을 사용하면 전체 빌드에 약 6시간이 걸립니다.

운영체제 요구사항 충족

개발 워크스테이션은 GNU C 라이브러리(glibc)가 2.17 이상인 64비트 Linux 배포판을 실행해야 합니다.

필수 패키지 설치

Android 11 이상을 빌드하려면 Ubuntu 18.04 이상을 사용해야 합니다. Ubuntu 18.04 이상을 위한 필수 패키지를 설치하려면 다음 명령어를 실행하세요.

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

설치된 패키지 중에서 이 명령어는 Git을 설치하며 Git은 AOSP 소스를 다운로드하는 데 사용됩니다.

필수 소프트웨어 설치

AOSP를 사용하려면 OpenJDK, Make, Python 3, Repo가 설치되어 있어야 합니다. Android의 AOSP main 브랜치는 사전 빌드된 버전의 OpenJDK, Make, Python 3가 함께 제공되므로 설치 단계가 추가로 필요하지 않습니다. 다음 섹션에서는 Repo 설치 방법을 설명합니다.

Repo 설치

Repo를 설치하려면 다음 단계를 따르세요.

  1. 현재 패키지 정보를 다운로드합니다.

    sudo apt-get update
    
  2. 다음 명령어를 실행하여 Repo 런처를 설치합니다.

    sudo apt-get install repo
    

    Repo 런처가 제공하는 Python 스크립트를 사용하여 체크아웃을 초기화하고 전체 Repo 도구를 다운로드합니다.

    성공하면 4단계로 건너뜁니다.

  3. (선택사항) 일련의 다음 명령어를 사용하여 수동으로 Repo를 설치합니다.

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
    

    처음 세 개의 명령어는 임시 파일을 설정하여 파일에 Repo를 다운로드하고 제공된 키가 필수 키와 일치하는지 확인합니다. 이러한 명령어가 성공하면 마지막 명령어는 Repo 런처를 설치합니다.

  4. Repo 런처 버전을 확인합니다.

    repo version
    

    출력에는 버전 2.5 이상이 표시되어야 합니다. 예를 들면 다음과 같습니다.

    repo launcher version 2.40

대체 출력 디렉터리 설정

기본적으로 각 빌드의 출력은 일치하는 소스 트리의 out/ 하위 디렉터리에 저장됩니다. 이 디렉터리는 OUT_DIR 환경 변수를 내보내서 재정의할 수 있습니다. 예를 들어 다른 드라이브에 출력을 저장하려면 OUT_DIR이 해당 드라이브를 가리키도록 할 수 있습니다.

export OUT_DIR=my_other_drive

다음 단계는 무엇일까요?