Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Today
Total

Android: AOSP ROM

Android: AOSP ROM 본문

카테고리 없음

Android: AOSP ROM

KRONNA 2012. 7. 2. 22:18



안드로이드 오픈소스 프로젝트 개발에 사용될 컴퓨터의 최소 요구 하드웨어 스펙은 안드로이드 소스 트리 풀 세트를 빌드한다는 가정 하에:

90GB 하드디스크 저장공간

16GB 램 메모리 + 스왑 메모리

가 갖춰져 있어야하며 운영체제는

64비트 리눅스 운영체제 (Ubuntu 권장)

이 설치되어 있어야 합니다.


컴퓨터가 갖춰진 후 개발을 하려면 우선 개발툴을 다운로드 받고 설치해야 합니다. 설치하게 될 툴들을 요약하자면

Python 2.5 ~ 2.7

GNU Make 3.81 ~ 3.82

JDK 6

Git 1.7 혹은 그보다 최신 버전

입니다.


구글의 공식 AOSP 사이트 (source.android.com) 에서는 JDK 설치를

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

로 하라고 하지만 Sun사가 Java를 Oracle사로 넘기면서부터 이 방법이 작동하지 않게 되었습니다.


그래서 오라클 자바 다운로드 페이지에서 다운로드 받아야 합니다.

JDK 설치파일은 bin 파일인데 bin 파일 설치는 아래와 같이 가능합니다.

cd ~/Downloads

chmod 755 jdk-version.bin

. jdk-version.bin

mv JDKfolder ~/


그 다음에는 PATH 설정을 해주어 터미널에서 어디에서나 Java 툴들을 쓸 수 있게 해주어야합니다.

export JAVA_HOME=/usr/local/jdk1.6.0_33

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH="."



JDK의 경우 Java SE 6 버전을 깔지 않으면 AOSP ROM make 파일이 설치를 허용하지 않지만 오라클에서는 자바 버전 관리를 Sun사와 같은 방식으로 하지 않기 때문에 어떤 버전을 깔아도 에러가 뜨게 되어 있습니다. 


그래서 build/core/main.mk 파일을 여신 후 


# Check for the correct version of java

java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1\.6[\. "$$]')
ifeq ($(strip $(java_version)),)
endif


이와 같이 입력된 부분을 삭제하시면 됩니다.



그게 끝났으면 남은 툴을 sudo apt-get install 명령어를 사용해서 다운로드 후 설치 받으시면 됩니다.


$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so


참고로 위의 코드를 복사해서 터미널 안에서 붙여넣기 할 때에는 control + shift + v 입니다.


이로써 소스트리를 다운로드 받고 롬을 빌드할 수 있는 개발 환경이 구축되었습니다.






구글은 Repo라는 툴을 사용해서 안드로이드 소스 트리를 배포합니다. 그래서 소스 트리를 다운로드 받으려면 우선 Repo를 설치하고 초기화한 후 값을 설정해주어야합니다.


Repo 설치법은 이와 같습니다:

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

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


Repo 초기화 방법은 이와 같습니다:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

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


Repo를 사용하여 파일들을 다운로드 받는 방법은 이와 같습니다:

$ repo sync






소스 트리를 다운로드 받았다면 이제 ROM을 빌드하기만 하면 됩니다.



ROM 초기화 방법은 이와 같습니다:

$ source build/envsetup.sh

or

$ . build/envsetup.sh



그리고는 빌드 타겟을 정할 수 있는 데 타겟 지정 방법과 지정할 수 있는 타겟들은 이와 같습니다:

$ lunch full-eng
Build nameDeviceNotes
fullemulatorfully configured with all languages, apps, input methods
full_maguromagurofull build running on Galaxy Nexus GSM/HSPA+ ("maguro")
full_pandapandafull build running on PandaBoard ("panda")

BuildtypeUse
userlimited access; suited for production
userdebuglike "user" but with root access and debuggability; preferred for debugging
engdevelopment configuration with additional debugging tools



그리고는 빌드만 하면 됩니다! 빌드 시에는 make 뒤에 -j 옵션을 붙일 수 있는데 이는 컴퓨터에게 주어진 스레드 중 컴파일러가 사용할 스레드 수를 지정하는 것입니다. 스레드의 경우 CPU 2개, CPU당 코어 4개, 코어당 스레드 2개라면 make -j16이나 make -j32가 가장 높은 성능을 보여줄 수 있는 것 입니다. 저의 경우는 밑과 같이 씁니다:

$ make -j4






Comments