본문
안드로이드 소스(PDK+Kernel) 다운로드
전반적인 사항은 안드로이드 오픈소스 프로젝트 홈페이지(http://source.android.com/)에서 확인할 수 있다.
1. PDK 다운로드
Source -> Getting Started -> Downloading the Source 페이지의 내용을 토대로 PDK(Platform Development Kit. 안드로이드 전체 소스)를 다운로드 할 수 있다. 소스 다운로드에는 편의성을 위해 그들이 만들어놓은 repo라는 스크립트를 사용한다. 그렇지 않으면 git repository의 모든 항목을 일일히 선택하여 git 명령을 수행해야 한다. 윈도우 버전을 위해 어느 개인이 (perl이었나..) 일일히 만들어놓은 스크립트가 있긴 한데 오래전에 만들어 놓은거라 믿음직스럽지는 않다. 따라서 윈도우 환경에서는 Virtual Machine을 사용하고, 게스트 OS와 호스트 OS간에 공유폴더를 사용함으로서 편하게 작업할 수 있다. 개인적으로는 VirtualBox 4.2.6 버전과 Fedora 3.6.10_4을 사용하여 해결하였다 (Ubuntu보다는 Fedora가 좀 더 쾌적한 느낌이다)
아래는 사용자 홈 디렉토리에 bin 폴더를 만들고 PATH 지정을 하며, curl로 repo 스크립트를 bin 디렉토리에 다운로드 받아 실행권한을 주어 어디서든 repo 스크립트를 실행할 수 있도록 설정한다. 그 후 WORKING_DIRECTORY(이것은 마음대로 수정가능)을 만들고 그안에 android 최신 버전을 다운로드 한다. 만약 특정버전을 다운로드 하고자 한다면 -b android-4.0.1_r1 을 repo init 명령에 덧붙이면 된다. (menifest 페이지에서 가능한 버전 목록을 확인할 수 있다) 그 후 해당 버전 소스를 받기 위해 sync명령을 한 것이다.
mkdir ~/bin
PATH=~/bin:$PATH
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
repo init -u https://android.googlesource.com/platform/manifest
repo sync
2. Kernel 다운로드
Source -> Getting Started -> Building Kernels 페이지의 내용을 토대로 커널 소스를 다운로드 할 수 있다. 이는 git 버전관리 이미지를 다운로드 받는 작업과 이를 소스로 푸는 작업으로 이루어진다. 각기 다른 커널이 제공되는데 사실 common만 받아도 된다. 하지만 실제로 동작하는 것을 보고자 한다면, 에뮬레이터를 위한 커널은 goldfish를, 그리고 각기 다른 기기에 대해서는 해당하는 파일만 받으면 된다(예를 들어 exynos는 Nexus 10에 해당한다든가..). 이에 대해서는 위 페이지에서 확인할 수 있다.
git clone https://android.googlesource.com/kernel/common.git
git clone https://android.googlesource.com/kernel/exynos.git
git clone https://android.googlesource.com/kernel/goldfish.git
git clone https://android.googlesource.com/kernel/msm.git
git clone https://android.googlesource.com/kernel/omap.git
git clone https://android.googlesource.com/kernel/samsung.git
git clone https://android.googlesource.com/kernel/tegra.git
이제는 현재 디렉토리에 다운받아놓은 git 이미지를 해당 branch에 맞게 풀어주는 작업을 해야 한다. git branch -r 명령을 수행하면 여러가지 버전이 나오는데, 그중에서 자신이 필요한 버전을 기억해 놓고 git checkout 명령을 수행하면 된다. 예를 들어 android-3.3 버전 소스를 얻고싶다 한다면 git checkout android-3.3을 수행하면 된다. 또한 -j 2 와같이 병렬작업 수를 지정해 두면 소요시간을 약간 더 줄일 수 있다.
댓글