이번 포스팅에서는 원문에서 설명된 안드로이드 OS 컴파일을 위한 환경 구축과 소스코드 다운로드 방법을 설명한다.
안드로이드는 오픈 소스 라이센스로 구성되어 있기 때문에 구글에서는 이를 공개하여 git으로 다운로드 할 수 있도록 제공한다.
다운로드에 대한 원문 설명은 아래와 같다.
Android OS Soruce Code : http://source.android.com/source/index.html
원문에서는 GNU/Linux와 Mac OS (Intel/x86) 두 가지에 대한 환경 구축을 설명하지만, 이번 포스팅에서는 리눅스 환경에서 구축하는 것을 주로 하여 설명한다.
1. 환경 구축 요구사항
- http://source.android.com/source/requirements.html
하드웨어 요구사항
- 진저브레드(2.3.x) 이상의 OS 버전에서는 64-bit 환경 필요
- checkout에 필요한 공간은 최소 100GB이며, 싱글 빌드시 150GB가 필요하고, 그 이상일 경우 최소 200GB를 필요
- 가상 머신환경에서는 최소 16GB의 RAM/swap 크기 필요
소프트웨어 요구사항
- Android 6.0 (Marshmallow) - AOSP master: Ubuntu 14.04 (Trusty)
- Android 2.3.x (Gingerbread) - Android 5.x (Lollipop): Ubuntu 12.04 (Precise)
- Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu 10.04 (Lucid)
Java Development Kit (JDK)
- The master branch of Android in AOSP: Ubuntu - OpenJDK 8, Mac OS - jdk 8u45 or newer
- Android 5.x (Lollipop) - Android 6.0 (Marshmallow): Ubuntu - OpenJDK 7, Mac OS - jdk-7u71-macosx-x64.dmg
- Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat): Ubuntu - Java JDK 6, Mac OS - Java JDK 6
- Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu - Java JDK 5
주요 패키지
- Python 2.6 -- 2.7 from python.org
- GNU Make 3.81 -- 3.82 from gnu.org; Android 3.2.x (Honeycomb) and earlier will need to revert from make 3.82 to avoid build errors
- Git 1.7 or newer from git-scm.com
2. 환경 구축
필자의 경우 Ubuntu 14.04.4 LTS 에서 구동되는 것을 확인하였으며, Build:LMY48T / Branch:android-5.1.1_r19의 소스 코드를 다운받아 빌드되는 것을 확인하였다.
- 필요 패키지 설치
$ apt-get update
$ apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
3. Repo 설치
- http://source.android.com/source/downloading.html
- root 디렉토리 아래에 bin 디렉토리를 만들고 PATH 환경 변수 설정
$ mkdir ~/bin
$ PATH=~/bin:$PATH
- Repo 도구를 다운로드하고 실행 퍼미션 설정
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
4. Repo 클라이언트 초기화
- 소스 코드를 다운받아 작업할 디렉토리 생성
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
- 해당 git에 이름과 이메일 주소 등록
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"
- 등록하지 않은 상태에서 Repo 클라이언트 초기화를 진행하면 다음과 같은 에러가 발생
- 기본 마스터로 설정된 코드를 다운받고 싶다면 아래와 같이 입력
$ repo init -u https://android.googlesource.com/platform/manifest
- 만약 원하는 특정 버전의 소스 코드를 받고 싶다면 -b 옵션으로 해당 브런치 네임을 사용하여 초기화
$ repo init -u https://android.googlesource.com/platform/manifest -b {BranchName}
ex) repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.1_r19
- 원하는 브런치를 확인하기 위해서는 아래의 주소를 참고하면 된다.
Android SourceCode : http://source.android.com/source/build-numbers.html#source-code-tags-and-builds
- 다음과 같이 'y'를 누르면 Repo 클라이언트 초기화 작업은 완료된다.
5. 안드로이드 소스 코드 다운로드 (android-5.1.1_r19 기준 약 40GB, 1시간 반 소요)
$ repo sync
- 소스 코드 다운로드 완료 후, 저장된 소스 코드 목록
'Android' 카테고리의 다른 글
안드로이드 에뮬레이터 환경에서 OS 이미지 적용을 위한 안드로이드 OS 풀 소스 빌드 방법 (0) | 2017.05.02 |
---|---|
Nexus 4 실제 기기 환경에서 OS 이미지 적용을 위한 안드로이드 OS 풀 소스 빌드 방법 (0) | 2017.05.02 |
NDK를 이용한 안드로이드 환경의 Hello World 프로그램 작성 (0) | 2017.05.02 |
안드로이드 앱 apk 추출 방법 (0) | 2017.05.02 |
안드로이드 Nexus 시리즈 루팅 (Rooting) (0) | 2017.05.02 |