본문 바로가기

Mobile/Android

안드로이드 소스 다운로드

반응형


예전에 안드로이드 소스를 다운받는 방법에 대해 포스팅한 적이 있다.


 http://s2junn.tistory.com/30



오랜만에 안드로이드 소스를 다운받으려고 하니 아래와 같은 장애가 일어난다.



fatal: unable to connect to android.git.kernel.org:

..........


혹시나해서 브라우저로 사이트에 접속해보았지만 연결할 수 없었다.




검색으로 안드로이드 오픈 소스 프로젝트 사이트가 아래 URL 에서 운영되고 있다는 걸 알았다. 아래 URL 을 클릭하여 사이트로 이동해보자.


 http://source.android.com/source/building.html



사이트에는 안드로이드 소스를 다운로드하는 방법, 그리고 빌드하는 방법에 대해 나와있는데 리눅스와 맥만 지원하는 등의 필요한 제약조건에 대해 명시되어 있다. 리눅스 또는 맥을 이용하거나 환경을 구축하기 어렵다면 가상머신을 통해서 리눅스를 설치하고 소스를 다운받아야겠다. 여기서는 우분투를 이용하여 소스를 다운받는 과정에 대해 기술한다.




왼쪽의 메뉴트리에서 Downloading the Source 를 누르면 안드로이드 소스를 다운받는 방법에 대해 차례대로 기술되어 있다. (영어로 써있다는게 함정-_-;) 번호가 매겨져 있는 부분만 따라서 실행해보자.



 $ mkdir ~/bin

 $ PATH=~/bin:$PATH

 $ curl https://dl-ssl.google.com/dl/googlesource/git-repo > ~/bin/repo

 $ chmod a+x ~/bin/repo



위의 과정이 끝났으면 이제 작업폴더를 만들고 소스 목록을 받아보자. 마찬가지로 아래 번호 매겨진 부분을 따라서 입력한다.




두둥!



fatal: git 1.7.2 or later required

..........



git 의 버전이 낮아서 진행이 안된다. 아래를 따라서 최신 버전으로 업데이트를 해보자.



 $ sudo add-apt-repository ppa:git-core/ppa

 $ sudo apt-get update

 $ sudo apt-get install git-core



다시 돌아와서 아래의 명령어를 입력한다.



 $ repo init -u https://android.googlesource.com/platform/manifest



일련의 과정들이 진행된다.




일련의 과정이 지나면 사용자의 이름과 이메일을 물어본다.




y 를 입력하면 색상 표시에 대한 활성화 여부를 물어본다.




y 를 입력하면 manifest 에 대한 repo 초기화가 완료된다.




다시 다음의 명령어를 입력한다.



 $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1


 사이트엔 위와 같이 나와 있는데 아래와 같이 최신 버전을 명시해도 된다.


 $ repo init -u https://android.googlesource.com/platform/manifest -b android-4.2.2_r1.2b



이번에도 사용자의 이름과 이메일을 물어본다.




y 를 입력하면 안드로이드 소스에 대한 repo 가 초기화된다.




이제 다음의 명령어를 입력하여 소스를 다운로드 받자.



 $ repo sync



뭔가 진행된다.




아놔..



fatal: cannot create directory at 'sdkmanager/libs/sdklib/src/com/android/sdklib/internal': ??? ?? ??? ??

..........

error.GitError: cannot initialize work tree


cannot create directory 라.. 뭔가 권한이 문제인 것 같은데 원인을 모르겠다. 

이럴 땐 역시 관리자의 권한을 남용해주는게 인지상정! 

su 를 이용하여 root 로 변신하자.


유저가 변경되어 repo 의 PATH 가 지정되어 있지 않다. 아래의 명령어를 입력하여 PATH 를 지정하고 소스를 다운로드 받자.


 $ PATH=/home/사용자 계정/bin:$PATH

 $ repo sync



휴.. 한번에 되는 게 없네


error: The following untracked working tree files would be overwritten by checkout

..........

error: prebuilt/: platform/prebuilt checkout ...



받다가 에러나서 끊기고 다시 받아서 그런가-_-

뭔가 git 에서 충돌이 난 것 같다.


다음과 같이 입력해보자.


 $ cd prebuilt

 $ rm Android.mk

 $ git checkout HEAD -- Android.mk

 $ cd ..

 $ repo sync



안드로이드의 최신 소스를 다운로드 받았다.




커널 소스를 받으려면 아래 명령어를 이용해서 Repository 를 공유받는다.



 $ git clone https://android.googlesource.com/kernel/goldfish.git



다운받은 소스들은 Source Insight 와 같은 프로그램을 이용해서 보면 조금 편리하게 볼 수 있다. 개발이 중단되어 너무 오래된 프로그램이긴 한데 더 좋은 프로그램을 못 찾겠다.


아무튼 이제 안드로이드 공부를 조금 더 열심히 할 수 있겠군.





반응형