HTC DEV 사이트 안드로이드 2012. 2. 17. 10:23

 


개발자에게 있어서 HTC DEV 사이트는 상당히 흥미를 끌게 만든다.


1. OpenSense SDK 는 Android 기본 SDK 를 받으면 추가적인 Add-on 으로 받을 수 있으며,

 


HTC 기기의 framework 를 이용하여 간단한 API 들을 제공하는 역할을 한다.

... 사실 그다지 볼 건 없었다.


2. Boot Loader 의 Unlock 을 지원한다.

htcdev.com 사이트에 계정을 등록하고, 로그인을 해야 진행할 수 있는 절차.

제조사에서 Boot Loader Unlock 에 대해 이렇게 상세하게 설명을 해 놓은 것은 보기 드물다.

 


그림으로 상세히 설명도 되어 있다. -_-b

차근 차근 따라하면 되겠지만... 한글이 아닌 언어에 대해 거부감을 가지고 있는 분들을 위해

이를 나중에 포스팅 한번 해볼까 한다.


3. Kernel Source

어디까지 공개가 되어 있는지.

어디는 라이브러리화 해서 볼 수 없는 지는 잘 모르겠다. (소스 분석이 안됐다. -_-;)

하지만 귀중한 자료임에는 틀림없다.

 


KT 용으로 발매된 EVO 4G+ 의 커널 소스도 쉽게 다운로드가 가능하다.

다운로드에는 로그인이 필요하지 않다.
안드로이드 전체 소스 코드 빌드 방법
 
먼저 안드로이드 소스를 빌드하기 위해선 리눅스 ubuntu 환경을 만드는 것이 바람직할 듯 합니다.
구글도 ubuntu 를 추천하고 있기 때문이고, 다른 package 사용하면 리눅스 초보자의 경우 작업이
힘들 수 있을 것으로 보입니다. 가급적 우분투를 사용하시기 바랍니다.
 
그럼 이제부터, 제가 build한 절차를 os 설치에서 부터 순차적으로 설명드리도록 하겠습니다.
최종적으로 모두 build하기 까지 꽤 많은 시간이 소비되니 충분한 시간을 가지고 빌드하시기 바랍니다.
 
1. 리눅스 Ubuntu 패키지 설치.
 
   전 참고로 ubuntu-8.04.1 desktop-i386을 사용하였음을 알려드립니다.
 
   - 먼저 아래의 url에서 우분투 iso 이미지를 얻으셔서 리눅스 설치 CD를 만듭니다.

      ftp://ftp.daum.net/ubuntu-releases/8.04.1/ubuntu-8.04.1-desktop-i386.iso
 
   - 그 이후 적당한 컴퓨터에 리눅스를 설치합니다.
 
2. 리눅스가 모두 설치되면 루트 passwd를 일단 설정합니다
 
    $ sudo passwd root

여기까지는 우분투 리눅스를 설치하면 알아서 진행되는 구간입니다.
현재 우분투 리눅스는 8.10 까지 나와 있으므로 가급적 최신 버전을 사용하길 바랍니다.
 
3. 만약 설치된 리눅스 Desktop에서 직접 작업을 원하시지 않는다면 ssh를 설치합니다
    저의 경우엔 ssh client를 사용하여 windows에서 접속하여 안드로이드 소스를 빌드하였습니다.
    ssh 설치 방법은 다음과 같습니다.
 
    $ sudo apt-get install ssh
 
4. 안드로이 설치 환경 준비
 
    - 기본적으로 다음과 같은 package를 인스톨하여야 합니다.
 
       $ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
       $ sudo apt-get install valgrind
 
    - 안드로이드는 Phython 2.4 이상이 요구됩니다.
       우분투 8.04.1에는 이미 Phython 2.5가 포함되어 있기 때문에 이 부분은 skip하셔도 됩니다.
 
    - JDK 5.0, Update 12 또는 그 이상이 요구됩니다.
       이를 위해선 다음과 같이 설치하시면 됩니다.
 
       $ sudo apt-get install sun-java6-jdk
 
    - Git 1.5.4 또는 그 이상 버전, 그리고 Repo가 요구됩니다.
 
       $ cd ~
       $ mkdir bin
 
       vi 로 ~/.bashrc 에 다음과 같이 환경변수를 추가합니다.
 
       $ vi ~/.bashrc
 
       export LANG=c
       export PATH=/home/<your_home>/bin:$PATH:.
       export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.07
       export ANDROID_JAVA_HOME=$JAVA_HOME
 
vi 에디터 사용하여 환경변수를 추가 변환하는 부분입니다만.
안드로이드 설정이 모두 완료되면 반드시 삭제하도록 바랍니다.

자신의 계정이 "ADMIN" 이라는 이름으로 되어 있다면
       export PATH=/home/<your_home>/bin:$PATH:.

       export PATH=/home/ADMIN/bin:$PATH:.
으로 바꿔주셔야 합니다.

       환경설정을 반영하기 위해 다시 로그인 하시던가 아니면 터미날을 종료했다 다시 실행하세요.
       csh의 경우엔 source ~/.cshrc를 하면 되는데..bash를 잘 모르겠네여.
 
       다음으로 git와 repo를 설치입니다.
 
       $ sudo apt-get install git-core gnupg      
 
       $ 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
  
       여기까지 실행하시면, repo initialized in /home/<your_home>/mydroid 란 메시지가 나옵니다.
       이렇게 되면 환경설정은 이제 마무리 되었다고 보셔도 됩니다.
 
입력도중 이름과 메일 주소를 입력하고 색 설정을 하느냐 마느냐 <Y/N>를 묻는 것이 나옵니다.
그 후에 repo initialized in /home/<your_home>/mydroid 가 나옵니다.

5. 안드로이드 소스 얻기
 
       아래과 같이 수행하면 안드로이드 전체 소스를 다운로드 하게 됩니다.
 
       $ repo sync

안드로이드 전체 Fulle Source는 총 1.6G 정도이므로 네트웍 다운로드시에 시간이 꽤 소요됩니다.
성공적으로 소스가 다운로드 되어지면
bionic ,bootloader ,build ,dalvik , development ,external ,frameworks ,
hardware ,kernel ,packages ,prebuilt ,recovery ,system  으로 구성됩니다.

invain님의 글 인용

 
6. 안드로이드 빌드 하기
 
      $ make
 
      이 과정을 수행하는 동안 zlib.h error가 발생할 수 있습니다.
      이 경우에는 아래와 같이 zlibb1g-dev를 설치하시고 계속 make를 수행하면 됩니다.
 
      $ sudo apt-get install zlib1g-dev
      $ make
 
우분투 8.10 버전에서는 이미 zlibb1g-dev 가 최신 버전이므로 네트워크 설치를 할 필요가 없습니다.

      이 과정을 수행하는 동안 -lncurses error가 발생할 수 있습니다.
      이 경우에는 아래와 같이 libncurses5-dev를 설치하시고 계속 make를 수행하면 됩니다.
 
       $ sudo apt-get install libncurses5-dev
       $ make
 
역시 우분투 8.10 버전에서는 이미 libncurses5-dev 가 최신 버전으로 나타납니다.

build/core/product_config.mk:211: WARNING: adding test OTA key
============================================
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=
============================================
build/core/main.mk:180: implicitly installing apns-conf_sdk.xml

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
 
        $ 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-
 
p.s.
 
가급적, source.android.com의 절차대로 수행하는 과정에서 빌드해 본 것입니다.
약간의 차이들은 발생되는 문제들을 해결하기 위해 추가한 것입니다.
그리고 시간이 나면 이렇게 build 된 결과물을 직접 target에 올려볼 생각입니다.
그럼 전 이만..
 
좋은 하루 되세요.


원출처 : http://www.kandroid.org/board/board.php?board=androidsource&command=body&no=4
글쓴이 : 들풀

글상자내의 글은 원문에 없는 내용입니다.