AOSP의 버전 관리



Overview



AOSP에 포함된 Git repository의 전체 리스트는

android.googlesource.com (Git Web Interface) 

에서 확인 가능하다. 


약 100개가 넘는 repository가 있다. 

Git 명령어로 하나씩 pulling 하는것은 매우 지루한 일이다.


그래서 구글에서는 Repo 유틸리티를 제공한다, 

Repo를 이용하면 이것들을 통합해서 git repositories들이 다운 받아 진다.


Repo는 manifest.xml 파일에 정의된 사항에 따라 Git repository를 받아오게 된다.

각각의 Git repository는 독립적인 Project로 관리 된다.


Repo 명령어의 사용 방법: https://source.android.com/source/using-repo.html#sync



Repo Init


repo init을 통해서 어떤 branch를 가져올지를 정하게 되는데,

https://android.googlesource.com/platform/manifest

platform/manifest 이 부분에 모든 branch들이 정의가 되어 있다.


repo init 뒤의 branch를 생략하게 되면 master branch를 다운 받아지게 된다.

master branch는 진행중인 project이므로 Google Developer들의 주석이나 팁들이 많이 포함되어 있다.

그리고 일반 개발자들이 기여한 코드들도 들어 있다.

따라서 정상적인 동작을 보장하지는 않는다.


이러한 branch들의 확인을 위해서 Git web site에서 직접 봐도 되고 git 명령어를 이용해도 된다.


git clone https://android.googlesource.com/platform/manifest.git

cd manifest



git tag

git branch -a

위 두 명령어를 이용해서 세부적인 리스트를 확인할 수 있다.


그리고 각 Branch 마다 지원하는 Device model과 특성이 다르가. 그것을 이해하기 위해서는

Codenames, Tags, and Build Numbers

를 읽어 보면 된다.


세부 사용법

$ repo init -u <URL> [<OPTIONS>]


Repo를 현재 작업 디렉터리에 설치

.repo 디렉터리를 생성함.

이것은 Repo 소스코드를 위한 Git 저장소와 표준 안드로이드 manifest 파일을 가지고 있다.

manifest.xml 이라는 심볼링 링크도 있다. 이것은 .repo/manifests/directory를 가리킨다.



Repo Sync



repo sync -j8

-j 뒤의 숫자는 병렬로 repository를 읽어올 숫자이다.

현재 network 상황에 맞추어 option을 줄 수 있다.




시도 리스트


Android 5.0.0_r6 프로젝트에

Android 51.0_r3을 repo init와 sync로 받았더니, 그냥 모두 덮어 씌어져 버렸다.





+ Recent posts