본문 바로가기
develop

안드로이드 플랫폼 소스 내려받기

by 찬이 2011. 5. 2.


안드로이드 앱 개발자를 위한 것은 아닙니다. 앱 개발을 하려면 SDK와 Eclipse만 있어도 충분합니다.
아래의 내용은 안드로이드 플랫폼 개발 입문자를 위해서 안드로이드 플랫폼 소스를 직접 받는 방법을 정리한 것입니다.
안드로이드 플랫폼의 컴파일 환경은 리눅스이며, 아래에 설명된 소스를 받는 방법 또한 리눅스를 기준으로 설명합니다. cygwin 등을 통한 방법은 제가 해보질 않아서 가능한지는 잘 모르겠습니다.

Repo Client 설치하기

먼저 설치에 필요한 파일을 위한 디렉토리를 만들고, Path를 연결해줍니다.

$ mkdir ~/bin
$ PATH=~/bin:$PATH

소스를 받기 위한 Repo Client를 설치합니다.

$ curl http://android.git.kernel.org/repo > ~/bin/repo

curl: (7) couldn't connect to host

성공했다면 아무런 메시지가 나오지 않을 겁니다.
만약 위와 같이 에러메시지가 나온다면 프록시 서버 설정 때문이라고 볼 수 있습니다.
이런 경우, -x proxyip:port 를 앞쪽에 추가해서 다시 해보도록 하죠.

$ curl -x 10.244.254.254:8080 http://android.git.kernel.org/repo > ~/bin/repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17451  100 17451    0     0  22288      0 --:--:-- --:--:-- --:--:-- 22287

위와 같이 다운로드 로그가 나온다면 성공입니다.

다운로드 받은 것은 쉘 스크립트로 된 Repo Client 입니다. 이 파일에게 실행권한을 주어야 사용할 수 있기 때문에, 아래와 같이 권한을 부여해줍니다.

$ chmod a+x ~/bin/repo
$ ls -l ~/bin
total 20
-rwxr-xr-x 1 chanywa chanywa 17451 2011-05-02 16:49 repo

여기까지 오셨으면 Repo Client 설치는 완료된 것입니다.

Repo Client 프록시 설정하기

이제 Repo Client를 이용해서 소스를 받아야 하는데, 앞에서 프록시 서버 설정을 해야했던 분만 작업하시면 됩니다. 해당없는 분은 그냥 넘어가세요.
이번에는 아까보다는 좀 복잡합니다.

$ cd ~/
$ curl -x 10.244.254.254:8080 http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz > corkscrew-2.0.tar.gz
$ tar zxvf corkscrew-2.0.tar.gz
$ cd corkscrew-2.0
$ ./configure
$ make
$ cp corkscrew ~/bin
$ vi ~/bin/git-proxy

여기까지 진행하셨으면 vi editor가 떴을 겁니다.
처음에는 문자입력이 안되므로, i 키를 한번 눌러주세요. 그리고 아래 내용을 입력하세요.

#!/bin/sh
exec ~/bin/corkscrew 10.244.254.254 8080 $*

물론 위의 IP가 아니라 해당 프록시 주소를 적으셔야 합니다.
그런 후에, <ESC>키를 누른 다음 콜론 키<:>를 누르면, 왼쪽 하단으로 프롬프트가 갈 겁니다. wq! 를 입력하시고 엔터를 누르시면 파일이 저장되고 vi 에디터는 종료됩니다.

그리고 앞에서 만든 git-proxy 파일에 대해서, 아래와 같이 추가 작업을 해줍니다.

$ git config --global core.gitproxy '/home/chanywa/bin/git-proxy'
$ chmod +x ~/bin/git-proxy

git config 문장에서의 경로는 '~' 기호없이 절대경로로 적어줘야하는 것 같습니다.
자~ 여기까지가 프록시 작업입니다.
프록시 설정이 필요없으신 분은 생략해도 되는 부분이겠지요.

Repo Client 설정하고 소스 받기

이제 소스를 받기 위해 Repo 초기화를 합니다.
아래와 같이 먼저 소스를 받을 디렉토리를 아무거나 만든 후에, repo init 을 합니다.

$ mkdir ~/work
$ cd ~/work
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b gingerbread

만약 프로요 버전을 받고 싶으면 'gingerbread' 대신에 'froyo'를 입력하시면 됩니다.
그런데, 이런 에러가 뜨는 경우도 있습니다.

Traceback (most recent call last):
  File "/home/chanywa/bin/repo", line 91, in ?
    import readline
ImportError: No module named readline

파이썬 버전에 따라서 readline 모듈이 없는 경우도 있다고 하네요.
이런 경우에는 repo 파일의 91 번째줄을 주석처리하시면 됩니다.

$ vi ~/bin/repo

<:> 키를 누른 다음 91 을 적고 엔터를 누르시면 바로 91번째 줄로 이동합니다.
그런 다음 <i> 키를 누르시고, <#> 키를 누르면 '#' 글자가 삽입되고,
<ESC>, <:>, <w>, <q>, <!>, <ENTER>를 누르시면 완료됩니다.

다시 한번 repo init 을 시도하시면 될 겁니다.
정상으로 진행이 됐다면 이름과 메일주소, 색상설정 등을 확인합니다.

Your Name  [찬이]: chany
Your Email [chanywa@heoseng.(none)]: chany@chanywa.com
Your identity is: chany <chany@chanywa.com>
is this correct [y/n]? y
Testing colorized output (for 'repo diff', 'repo status'):
  black    red      green    yellow   blue     magenta   cyan     white
  bold     dim      ul       reverse
Enable color display in this user account (y/n)? y
repo initialized in /home/chanywa/work
$

와~ 드디어 소스를 다운로드 받는 순간입니다.
아래와 같이 간단한 명령 한 줄을 써줍니다.

$ repo sync

용량이 상당히 많기 때문에 다운로드 받는데 오래 걸립니다. 네트워크 상태에 따라서 몇시간 걸릴 수도 있어요.

포스트 작성시 참고한 자료

 

'develop' 카테고리의 다른 글

어느 문자열 복사 C 프로그램의 오류  (4) 2012.02.01
ETSI TS 규격문서  (0) 2011.06.03
국가 약어 코드 (ISO 639 Language Codes)  (0) 2011.02.07
Eclipse에서 Android 개발시 Proxy 설정하기  (0) 2010.10.15
int의 크기  (2) 2010.08.24

댓글