2007 2013 Kandroid
www.kandroid.org »
kandroid s/w fundamentals 교육 »
Android Open Source 
▶ HTC Android Kernel Open Source
▶ Samsung Android Kernel Open Source
▶ Motorola Android Kernel(+α) Open Source
▶ LGE Android Kernel(+α) Open Source
Mac OS에서 Android 소스 받기 및 빌드
작성자 ratharn
작성일 2008-10-27 (월) 09:49
ㆍ추천: 0  ㆍ조회: 8888      
IP: 61.xxx.221

Mac OS에서 Android 빌드하기
Android 소스설명에 Mac OS 환경에 대한 언급이 있어서...호기심 차원에서 한번
빌드 환경 구축 및 빌드를 해 봤습니다.
Mac OS에서 구축하시는 분들 참고하세요!
 



반드시 필요한 사항:

INTEL X86기반의 MAC"Case-sensitive Journaled HFS+" 파일 시스템: 이게 Mac에서 가장 중요합니다. Mac을 처음 사면 대부분 Journaled HFS+로 포맷되어 있기때문에 결국에 외장하드에 있는 데이터를 다 날리고 새로 포맷을 해야 했습니다. Case-sensitive가 아니면 Android 빌드 시작도 못합니다.


1. XCode 설치하기,  http://developer.apple.com, 저는 IPone SDK를 설치 했기때문에

2. MacPorts 설치하기

1.   http://www.macports.org/ 에서 소스를 다운받아 압축을 풀어둡니다.

                   해당 디렉토리로 이동합니다. 저는 /MacPorts-1.6.0 입니다.

2.   다음과 같은 순서로 MacPorts를 컴파일 합니다.
  $ ./configure
  $ make
  $ sudo make install
  $ sudo port selfupdate ->
이게 시간이 오래 걸립니다.

3. 주의, ‘sudo port selfupdate’ 명령 실행시 에러가 발생하는데 이것은 

                     Path 설정이 잘못되서 문제가 되는 것입니다. 따라서 Path를 추가해야 합니다.
  $ echo $PATH 명령을 실행시켜 현재 패스를 확인합니다.
 ‘/opt/local/bin’패스가 포함되어 있는지 확인하고 없으면 추가 합니다.

           $HOME/.bash_profile에 아래와 같이 추가합니다.

                    "export PATH=/opt/local/bin:$PATH

                    저는 .bash_profile이 어디에 있는지 도대체 찾을 수 없어서 그냥 shell에서 실행시켰습니다.

3. GNU make를 업그레이 합니다.
  $ sudo port install gmake
  $ sudo ln -s gmake /opt/local/bin/make

4. libsdl 설치합니다.
  $ sudo port install libsdl

5. .bash_profile 파일에 아래와 같이 추가하라고 했으나 저는 역시 몰라서 그냥 넘어감. 큰 문제는 안생김
  
# set the number of open files to be 1024
   ulimit -S -n 1024

6. 다음과 같이 추가 패키지를 설치합니다.
  
$ sudo port install xemacs +sumo
   $ sudo port install gimp





Git 설치

 Android 소스를 가져오기에서 사용하는 소스코드 컨트롤 소프트웨어 입니다. 본 과정중 가장 혼란을 일으켰던 툴입니다. 소스를 가져와 빌드를 하고 패스를 설정하면 제대로 소스를 가져와야하는데 Git가 제대로 설정되지 않아서 소스를 가져오지 못했습니다. 그래서 바이너리 설치본을 설치하고 나서 제대로 됐습니다.

따라서 왠만하면 Git 설치본을 다운받아서 설치하는 것이 더 효과적입니다.

Git 와 GNU Privacy Guard 설치 

1. sudo port install gnupg 로 gnupg 설치

2. Git 설치 - http://git.or.cz/ 



Repo script 다운로드

이제부터 본격적으로 다운로드 작업이 시작됩니다.:

1. repo script를 다운로드 받고 실행가능하도록 합니다.
$ curl http://android.git.kernel.org/repo >~/bin/repo 

     $ chmod a+x ~/bin/repo



2. 소스를 다운로드 받을 디렉토리를 만들고 해당 디렉토리로 이동합니다.:
$ mkdir mydroid
$ cd mydroid

3. ‘repo init’ 명령으로 Android 소스를 받기 시작합니다.
$ repo init -u git://android.git.kernel.org/platform/manifest.git

4. 제대로 동작한다면 gmail계정이나 이메일을 요구할 것입니다.

     

다음과 같은 메시지가 나왔다면 소스 받기 준비에 성공한 것입니다.

   repo initialized in /mydroid



Git를 제대로 설치하고 Repo를 제대로 받았는데도 다시 3번을 하는데 또 에러가 나내요. 소스를 가져온게 신기하네요.



소스 가져오기



이제 소스를 가져오는 명령을 실행시킵니다.



   $ repo sync  



소스를 가져오는데는 속도에 따라 오랜 시간이 걸리기도 합니다. 다음 그림은 소스를 가져오는 화면 입니다.





Android 빌드하기

안드로이드를 빌드하는 것은 의외로 간단합니다. 해당 디렉토리로 이동한 후 make:



    $ cd ~/mydroid  

    $ make



build/core/product_congig.mk



위 mk 파일에 타겟을 설정합니다. 현재는 generic으로 설정되어 있습니다.



ifeq ($(strip $(TARGET_PRODUCT)),)

TARGET_PRODUCT := generic

endif





빌드된 이미지

안드로이드를 빌드하는 것은 의외로 간단합니다.



$  cd    ~/myandroid 

$  make    







위의 그림은 이미지를 빌드한 후 생성된 이미지를 지우고 다시 빌드했을때 생성된 이미지 입니다. 기본 설정된 상태에서는 generic으로 타겟이 설정이 된 것으로 알수 있습니다. Target을 해당 타겟으로 설정하고(이부분을 사용하시는 개발 보드에 맞게 커널을 설정해야 할 것으로 예상합니다.) 빌드해야 제대로 커널이 만들어 질 것입니다.



빌드된 이미지



이것으로 제대로 빌드된 것을 확인할 수 있습니다. 하지만 타겟이 제대로 설정되지 않았다면 실행시켜볼 수 없다는 아쉬움이 남네요. 그래서 에뮬레이터를 실행시켜 그 아쉬움을 대신합니다.



 
Microsoft Windows Embedded MVP
Youngho Ra(ratharn@naver.com)
www.embeddedce.com
이름아이콘 invain
2008-10-27 10:08

좋은글 감사합니다. 구글이 리눅스 배포판중에 우분투를 공식지원배포판으로 채택했는데 왜 deb방식이 아닌 tar형식으로 배포를 하는지 맥에서의 설치방법을 보고서야 이해가 되었습니다. ^^
   
이름아이콘 회색
2008-10-27 10:29
Case Sensitive Jurnaled 에 포맷하기 귀찮아서 포기
   
이름아이콘 들풀
2008-10-27 10:57
Thanks for your information...
   
이름아이콘 Jenix
2009-03-19 02:39
이게 참. 애매한데요. 전 외장하드 따로 맹글어서 안드로이드 개발환경 구축했습니다.
case sensitive 로 하드디스크를 포맷하면 와우(WoW)가 안돌아갑니다. ㅠ.ㅠ;;;;;
와우를 사랑하시는 분들은 참고해주세용 ^^; 팁아닌 팁 댓글이였습니다;
   
이름아이콘 Hoppang
2009-05-21 15:21
Case-sensitive Journaled HFS+로 디스크 이미지(DMG)를 만들어서 마운트했는데요,
지금까진 별 문제 없습니다. 외장하드가 꼭 필요하진 않을 것 같아요.
   
이름아이콘 팬더링
2009-11-05 11:15
Mac OS X 레오퍼드에서 처음 설치된 상태의 일부를 나눠 Case-sensitive Journaled HFS+ 파티션을 나눌 수 있는 방법이 있나요?
디스크 유틸리티를 사용하여 파티션 나누다가 맵수정 중 에서 계속 waiting  되면서 진행이 안됩니다. 다른 방법이 있나요?
리눅스는 성공했는데 맥에서 성공하고 싶습니다.
인베인 팬더링님 아쉽게도 들풀님, 인베인 모두 맥컴이 없어서 밀착 답변이 요건 힘듭니다. ㅡ.ㅡ;; 다른 맥사용자분이 도움글 올리는 것을 기대해봅니다. 11/5 18:03
자하랑 위의 호빵님처럼 dmg하나 더 만드시면 간단하게 되는데요.
구글 사이트의 installation 부분에도 설명이 있습니다.
11/6 16:11
인베인 자하랑님 답변글 감사합니다. 11/6 22:53
   
이름아이콘 팬더링
2009-11-10 23:07
그냥 레오퍼드를 새로 설치하면서 파티션 나눴습니다.
그런데 sudo port install gimp실행 시 ---> Building gcc43에서 진행이 안되고 있습니다.
gimp 설치 다른 방법은 없나요?
   
이름아이콘 팬더링
2009-11-11 10:11
gimp 설치도 성공하였습니다. 그런데 컴파일 되다
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libwebcore_intermediates/LINKED/libwebcore.so] 오류 1
하면서 커파일 실패하였습니다. 어떤것이 잘 못 설치되어 이런건지 알 수 있을까요?
인베인 김프?? 팬더링님~ 안드로이드 설치중인신거죠? 메모리부족현상같은데, make clean-libwebcore & make 후에도 다시 재발한다면 swap 파티션을 아래처럼 충분히 확보한후에 다시 시도해보세요.
invain#> dd if=/dev/zero of=/opt/swapfile bs=2048 count=512K
invain#> mkswap /opt/swapfile
invain#> swapon /opt/swapfile
invain#> swapon -s
Filename Type Size Used Priority
/opt/swapfile file 1048576 0 -5
11/11 21:49
   
이름아이콘 팬더링
2010-01-09 12:32
libwebcore 컴파일 에러에 대해 누군가 올린 글을 찾아 해본 후 성공하여 올립니다.
flex의 버전에 이상이 있나봅니다.  macport를 통해 새로 설치한 후 아래처럼 처리해주니까 컴파일이 성공됩니다.

$ POSIXLY_CORRECT=1 sudo port install flex
$ cd prebuilt/darwin-x86/flex/
$ mv flex-2.5.4a flex-2.5.4a-OLD
$ ln -s /opt/local/bin/flex flex-2.5.4a
$ cd ../../..
$ touch external/webkit/WebCore/css/tokenizer.flex
$ make
   
이름아이콘 postar
2010-03-27 11:45
snow leopard로 android compile 해 보시분 있나요?
자하랑 빌드 깨져있다가 패치가 얼마전부터 대부분 적용되었습니다.
제가 그저께 최신 빌드 때렸는데 acc에 사이즈 에러나는 부분 하나만 수정하면 빌드 잘 됐습니다.
3/27 23:55
   
 
덧글 쓰기 0
32000
※ 회원등급 레벨 0 이상 읽기가 가능한 게시판입니다.
    N     분류     제목    글쓴이 작성일 조회
65 9회 kandroid 컨퍼런스를 기다리며~ [10]+8 행복아 2012-02-01 2442
64 안드로이드 전체소스의 맵(OS+플랫폼) [8]+7 인베인 2012-01-19 6047
63 안드로이드 그래픽스와 9회 kandroid 컨퍼런스 들풀 2012-01-04 2437
62 ICS4.0 (Prelink와 ASLR)와 9회 kandroid 컨퍼런스 [2]+3 들풀 2012-01-04 3031
61 [완결] 안드로이드 커널피쳐가 리눅스 메인라인에 들어오다... [4]+3 인베인 2011-12-20 2791
60 새로운 안드로이드버젼(ICS)의 공식 git 저장소 [3]+4 인베인 2011-12-19 9054
59 Gif파일 만들기 [2] 별찌 2011-12-05 1768
58 [덧글필독]안드로이드 system_server 디버깅 기법 [2]+8 들풀 2011-10-23 5870
57 ICS버젼 쓰레드의 TLS 동작구조(ver 0.3) [6]+10 인베인 2011-10-18 4295
56 [Android-MMF] 안드로이드 미디어 프레임워크의 개요 - 04.. [4]+1 소오강호 2011-05-29 8371
55 [Android-MMF] 안드로이드 미디어 프레임워크의 개요 - 03.. [2] 소오강호 2011-05-29 7550
54 [Android-MMF] 안드로이드 미디어 프레임워크의 개요 - 02.. [4] 소오강호 2011-05-14 7447
53 [Android-MMF] 안드로이드 미디어 프레임워크의 개요 - 01.. [9]+1 소오강호 2011-05-10 13160
52 안드로이드 Gingerbread Source Open 및 Build [6]+3 lesmin 2010-12-20 9708
51 Optimus-Q 리눅스 커널 오픈소스 URL [1] onjo 2010-10-01 4634
50 Galaxy-S 리눅스 커널 오픈소스 URL [2] 들풀 2010-07-21 9818
49 안드로이드 Froyo Source Open [5]+1 lesmin 2010-06-24 11807
48 안드로이드 내장 APKs 개발방법(초안) [28]+20 들풀 2010-03-05 33792
47 모토로이 소스 공개 [7]+3 Beto 2010-03-01 14879
46 안드로이드 2.1 Source Open [3]+2 자하랑 2010-01-21 12560
45 Android 1.6 브랜치 업데이트(1.3->1.4) [2]+1 인베인 2009-10-24 3773
44 SH4 CPU 아키텍쳐 지원을 위한 Android [2]+1 인베인 2009-09-17 4607
43 Samsung Galaxy 안드로이드 커널 빌드 [7]+14 들풀 2009-09-15 10939
42 Online PDK(Platform Dev. Kit) - donut [2]+1 들풀 2009-09-01 4787
41 MIPS용 안드로이드 소스코드 릴리즈 및 빌드방법.. [4]+6 인베인 2009-08-11 8880
40 iPAQ HX4700 PDA에 안드로이드를 포팅하자 [9] 좋은이 2009-08-10 8105
39 CENTOS 5.5에서 Android PDK설치방법 (Froyo브랜치) [1] 인베인 2009-07-27 13096
38 Ubuntu 9.04 + Android 1.5 Build [4] bluedisk 2009-05-06 8533
37 Android Porting on x86 PC [10]+1 SPARC 2009-04-29 10436
36    Re.. 질문이요. VBoxManage convertfromraw 문제 [8] coojin 2009-05-15 10275
35 Create AVDs for SDK 1.5 [1] 이광우 2009-04-28 10327
34 [빙고]1.5 SDK Win & Linux 링크입니다 참고하세요 [13]+10 와이드오픈 2009-03-10 5112
33 ADT 0.9 Cupcake 용 [5] 자하랑 2009-02-10 3626
32    Re..No resource identifier found for attribute... [2] Leone 2009-02-18 4878
31 X86용으로 안드로이드 포팅하기(on Virtualbox) [7]+2 인베인 2009-02-09 10251
30 REAL TARGET BOARD 없이 안드로이드 포팅기술 익히기.. [17]+15 좋은이 2009-01-30 14985
29    Re..REAL TARGET BOARD 없이 안드로이드 포팅기술 익히기.. [4]+2 NPain 2009-03-21 5445
28    Re..REAL TARGET BOARD 없이 안드로이드 포팅기술 익히기.. [5] 딱신 2009-03-18 3838
27 Dalvik JNI 를 이용한 cpp 함수 추가 및 SDK 에서 사용하기.. [9] unbiari 2008-12-26 8431
26 안드로이드 전체소스 빌드(For X86) - Fedora 사용자.. [3] 인베인 2008-12-24 17575
25    Re..ASUS/EEE LapTop PC의 플랫폼 드라이버 코드 [2] 인베인 2009-02-09 2665
24    Re..안드로이드 전체소스 빌드(For X86) - Fedora 사용자.. 인베인 2008-12-29 3064
23 안드로이드 전체소스 빌드(For X86) - Ubuntu사용자.. [14] 인베인 2008-12-24 11808
22 안드로이드 Native Development Kit(NDK) 사용법 [18]+3 들풀 2008-12-11 16779
21    Android NDK r3 공식 릴리즈 [3]+1 들풀 2010-03-09 4239
20    Re..android-ndk-1.6_r1 미리보기 [3]+1 들풀 2009-09-20 3705
19    Re.. android-ndk-1.5_r1 사용법 [windows] [7]+3 들풀 2009-06-29 8970
18 안드로이드 SDK Build 방법 [5] 들풀 2008-12-09 12041
17 Android Porting Guide for TI OMAP Zoom [1] 들풀 2008-12-07 4889
16 Git Community Book [3] 들풀 2008-12-07 3380
15 android build system [8]+2 베이징숀 2008-11-19 8235
14 Android Telephony for CDMA [1] 들풀 2008-11-28 4485
13 안드로이드 PDK (Platform Development Kit) [1] 들풀 2008-10-28 7963
12 Mac OS에서 Android 소스 받기 및 빌드 [10]+5 ratharn 2008-10-27 8888
11 Android 전체소스 빌드 방법(For ARM) on Fedora 배포판 -2008.. [8]+1 invain 2008-10-26 10704
10    Re.. Fedora배포판에서 Cupcake빌드시의 TroubleShooting.. 인베인 2010-03-18 3521
9 [Samsung SC32442]용 Android 소스 빌드 [7] 들풀 2008-10-26 7339
8    Re.. sc32442 안드로이드 탑재 screen shot [15]+5 들풀 2009-01-12 3631
7    Neo 1973 phone [9] 들풀 2008-11-06 3428
6 안드로이드 전체 소스 코드 빌드 방법 [54]+7 들풀 2008-10-24 45694
5    HTC_DREAM Build (Donut) [6]+1 불타는주작 2009-08-04 3653
4    안드로이드 cupcake 빌드방법 [5]+5 들풀 2009-01-28 6364
3    안드로이드 플랫폼 개발을 위해 Eclipse 사용하기.. 들풀 2008-12-07 8335
2    안드로이드 소스 코드 빌드 테스트 [8]+1 들풀 2008-10-27 8521
1 안드로이드 오픈 소스 [7] 들풀 2008-10-22 12990
1