1. 리눅스 Ubuntu 패키지 설치
가벼운 virtualbox(oracle)을 사용 아니면 vmware를 구해서 설치 혹은 리눅스를 직접 설치

2. 리눅스가 모두 설치되면 루트 passwd를 설정
$ sudo passwd root

3. 만약 설치된 리눅스 Desktop에서 직접 작업을 원하시지 않는다면 ssh를 설치
ssh 설치 방법은
$ sudo apt-get install ssh

4. 안드로이드 설치 환경 준비
- 기본적으로 다음과 같은 package를 인스톨
- 안드로이드는 Phython 2.4 이상이 요구 (단, 일반 현재 나오는 리눅스에는 2.4 이상이 포함)
$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev
build-essential zip curl
$ sudo apt-get install valgrind

4.1 자바 설치
- JDK 5.0, Update 12 또는 그 이상이 요구됩니다. (android froyo(2.2) 버전에서는 1.5 버전 사용추천 -> @override 옵션에서 에러가 나기 때문 (참고 : 안드로이드 인사이드 책)
$ sudo apt-get install sun-java5-jdk (자바 설치)
$ sudo update-java-alternatives -l (자바 버전화인)
$ sudo update-java-alternatives -s java-1.5.0-sun (여러개의 자바 설치가 된 경우 1.5.0으로 변경)
$ java -version (자바 버전 확인)
-------------------------------------------------------------------------------------
(자바 경로 설정) , which java -> 자바가 설치된 홈 폴더의 위치를 찾는 명령
$ export JAVA_HOME=/usr/bin/java
$ export ANDROID_JAVA_HOME=$JAVA_HOME
$ export PATH=$JAVA_HOME/bin:$PATH

5. Git 1.5.4 또는 그 이상 버전, 그리고 Repo 설치
 - 환경설정을 반영하기 위해 다시 로그인 하시던가 아니면 터미날을 종료했다 다시 실행(추천)
$ cd ~
$ mkdir bin
$ export PATH=$PATH:~/bin
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo

$ mkdir mydroid
$ cd mydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
(-b는 버전 옵션, froyo를 설치 하겠다는 의미)
여기까지 실행 후, repo initialized in /home/<your_home>/mydroid 란 메시지 출력
-> 제 경우는, /home/<your_home> 여기에 initialized 되서, 아무 생각 없이 repo sync로 소스를 받았다가, 제가 만들어 둔 myandroid 안에 안 깔려서 계속 찾아 다녔습니다.
ls -a 명령으로 .repo 폴더가 어디에 initialized 되었는지 먼저 확인 하시면, 그 폴더에 소스들이 다운로드 되니, 참고 하세요-

이렇게 되면 환경설정은 이제 마무리!


5. 안드로이드 소스 다운로드
$ repo sync

6. 안드로이드 빌드 하기
$ make
(일반 빌드는 그냥 make , 타겟팅을 따로 설정해야 하는 경우는 복잡!)

참고 :
   - 이 과정을 수행하는 동안 zlib.h error가 발생할 수 있습니다.
   - 이 경우에는 아래와 같이 zlibb1g-dev를 설치하시고 계속 make를 수행하면 됩니다.
$ sudo apt-get install zlib1g-dev
$ make

   - 이 과정을 수행하는 동안 -lncurses error가 발생할 수 있습니다.
   - 이 경우에는 아래와 같이 libncurses5-dev를 설치하시고 계속 make를 수행하면 됩니다.
$ sudo apt-get install libncurses5-dev
$ make

7. 결과 확인하기
out 디렉토리에 build된 안드로이드 full package가 위치하게 됩니다.
$ cd out

8. Kernel 별도로 빌드하기
- msm
$ cd ~/mydroid/kernel
$ make msm_defconfig ARCH=arm
$ make ARCH=arm
CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
- goldfish(1.5에서 merge됨, 따라서 msm_defconfig로 변경)
$ cd ~/mydroid/kernel
$ make goldfish_defconfig ARCH=arm
$ make ARCH=arm
CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-



테스트
1. 먼저 mydroid 의 out directory에서 아래의 세가지 image를
android sdk가 설치된 desktop에 download를 합니다.
~mydroid/out/target/product/generic/ramdisk.img
~mydroid/out/target/product/generic/system.img
~mydroid/out/target/product/generic/userdata.img
2. android sdk 1.0 이 설치된 desktop의 아래의 directory에서 ramdisk.img, system.img, use
rdata.img를 임시로 다른 곳으로 저장한 뒤에
android-sdk-windows-1.0_r1/tools/lib/images
3. 위에서 다운로운한 세가지 img 파일을 위의 디렉토리에 위치지운 후,
android-sdk-windows-1.0_r1/tools/emulator.exe를 실행
4. 만약 emualor가 정상적으로 실행되고, 내부 app. 들이 정상적으로 작동한다면,
안드로이드 source는 정상적으로 build 되었다고 판단!


Posted by DANIEL.H.KIM