안드로이드를 직접 빌드하기 위해 가장 먼저 필요한것은 소스코드입니다. 몇년전 피처폰 시절만하더라도 제조사들은 모두 꽁꽁 숨겨두고 자신들만의 소스코드에 각자들만의 휴대폰을 만들어왔습니다. 하지만 구글이 안드로이드를 공개하면서 상황은 180도 달라졌습니다. 구글은 안드로이스 소스를 100% 공개 했고, 안드로이드를 구동시키는 리눅스 커널 역시 완전공개를 원칙으로 하고 있습니다. 안드로이드를 채택한 제조사들 또한 이런 원칙을 받아 들일수 밖에 없게 되었습니다. 누구나 자유롭게 공짜로 안드로이드 소스를 다운로드 하고, 빌드하고, 자신만의 휴대폰을 만들 수 있게 된거죠.
안드로이드 소스는 크게 두부분으로 나눌 수있습니다. 바로 안드로이드와 리눅스 커널입니다. 커널은 안드로이드라는 자동차의 엔진이라고 할 수 있습니다. 구글은 이 두가지 소스를 따로 다운 받을수 있도록 관리하고 있습니다. 한번에 다운로드 받을 수 있지만 커널 소스만 다운로드 받기를 원하거나 안드로이드 소스만 원하는 사람들을 위해 그냥 따로 관리 한다고 하네요.
안드로이드 개발의 가장 먼저 그럼 이런 안드로이스 소스코드를 다운 받는 방법을 소개해 드리겠습니다. 아래 다운로드에 대한 설명은 우분투에서 안드로이드 빌드 환경에 대한 셋팅이 모드 끝났다는 가정하에 정리해봤습니다.
구글 안드로이드 소스 다운 받기
링크: http://source.android.com/source/downloading.html
(1) bin 폴더를 만들고 Path를 등록(어디서나 bin 폴더 내용을 실행할수 있게한다는 의미)
(2) repo 스크립트를 다운로드하고, 실행권한 설정
(3) 소스를 다운로드하기 위한 폴더 생성
(4)최신 버전의 repo를 다운로드
$ repo init -u https://android.googlesource.com/platform/manifest
또는, 안드로이드4.0 아이스크림을 다운로드 받고 싶을때,
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
(5) 소스 다운로드 하기
$ repo sync
여기까지 실행 후 30분~2시간 정도 다운로드가 자동으로 진행됩니다. 구글 서버 속도에 따라 속도가 많이 다르기 떄문에 매우 빠를 수도 있고 엄청 느릴수도 있습니다. 소스 다운로드가 끝나면 이제 폴더로 들어가 다운 받은 소스를 확인해 봅세요.
안드로이드 커널 소스 다운로드
(1) 다운받을 폴더 생성
git clone https://android.googlesource.com/kernel/common.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
칩셋 제조사별 안드로이드 & 커널 소스 다운로드
칩셋 제조사에서 공개하는 안드로이드 소스란, 퀄컴이나 TI에서 자신들의 각 칩의 레퍼런스 보드에 맞게 포팅된 안드로이드 소스코드를 말합니다. 예를 들어 퀄컴의 경우 스냅드레곤칩에 맞게 커널과 안드로이드를 포팅해 공개하고 있고, TI 역시 omap칩으로 만든 레퍼런스 보드용 안드로이드를 포팅에 공개하게 됩니다. 모든 휴대폰 개발의 기본이 되는 안드로이드 코드라고 할수 있죠.
퀄컴에서는 codeaurora.org라를 비영리커뮤니티 사이트를 이용해 각 칩셋별 코드를 공개하고 있습니다. 각 칩셋별 소스코드 다운로드 방법은 아래 주소에서 확인 할 수 있습니다.
링크: https://www.codeaurora.org/xwiki/bin/QAEP/
웹 Git: https://www.codeaurora.org/gitweb/quic/la/
예) msm8660 칩셋의 ics 코드를 다운로드 하고 싶을때
$ repo init -u git://codeaurora.org/platform/manifest.git -b ics -m M8260AAABQNLZA30112.xml --repo-url=git://codeaurora.org/tools/repo.git$ repo sync
$ repo sync
TI 역시 Omap칩 레퍼런스 보드인 Panda보드용 안드로이드 소스를 공개하고 있습니다. 최근 출시된 갤럭시 넥서스가 마로 omap4460칩으로 만들어 졌기 떄문에 안드로이드 4.0 소스코드도 같이 공개 하고 있습니다.
링크: http://omappedia.org/wiki/Main_Page
웹 Git: http://omapzoom.org
안드로이드 소스 받기
$ repo init -u git://git.omapzoom.org/platform/omapmanifest.git
$ repo sync
커널 소스 받기
$ git clone git://git.omapzoom.org/kernel/omap.git
휴대폰 제조사별 오픈소스 웹 링크
(1) 삼성 전자 오픈소스
opensource.samsung.com
(2) LG 전자 오픈소스
http://www.lg.com/global/support/opensource/opensource.jsp
(3) HTC 오픈소스
(5) 모토로라
http://sourceforge.net/motorola/
각 오픈소스 사이트에서 원하는 모델의 파일을 다운로드 받아 폴더에 압축을 풀면 됩니다. 오픈소스 라이센스에는 공개되는 코드는 빌드 가능해야하고, 빌드하는 방법 또한 공개하도록 하고 있기 떄문에 각 오픈소스 압축을 풀게 되면 간단한 빌드 방법을 확인할 수 있습니다.