2009년 9월 11일 금요일

안드로이드 소스 빌드 for x86

x86용 안드로이드 소스 빌드를 하며 이것저것 수정 했던 기록 입니다.

참고한 글은 kandroid의 인베인님 글이며  다음과 같습니다.

http://groups.google.co.jp/group/android-porting/browse_thread/thread/66862bdb52dac936

위 링크의 글을 보며 빌딩을 하면서 다음과 같은 부분에서 헤맸습니다.

1. repo가 없다.. 어디서 받아야 하는가
 - 이부분은 kandroid의 들풀님 글에서 찾아 해결했습니다.
  $ sudo apt-get install git-core gnupg      
  $ curl http://android.git.kernel.org/repo >~/bin/repo
  $ chmod a+x ~/bin/repo

2. javac 버전관련 오류
 - 이 부분은 소스 빌드할때 java-sdk 5 만 설치해서 컴파일 하는 것으로 넘겼습니다.
 - java-sdk 6 이 같이 설치 되었을때는 /usr/lib/jvm/java-1.5.0-sun/bin에 있는 해당 파일들을
   sudo update-alternatives --config <실행파일명> 을 해서 기본으로 1.6에 맞춰져 있는 것을
   전부 1.5로 변경해 줬습니다. (실행파일들이 제법 많습니다.. 전부 변경해 주세요)

   <java6 으로 변경하기>

   $sudo update-java-alternatives --set java-6-sun <--이 방법을 쓰면 한번에 전부 변환 되더군요.

   <java5 로 변경하기>

   $sudo update-java-alternatives --set java-1.5.0-sun


3. local_manifest.xml을 수정하는 부분
 - 기본적으로 repo sync가 막 끝났을때는 local_manifest.xml이 존재 하지 않습니다
   ~$gedit ./.repo/local_manifest.xml 을 실행하여 복사해 넣으면 되는데 그냥 위 링크의 글을 복사하면
   줄넘김이 들어가기 때문에
   <project name="platform/vendor/asus/eee_701" path="vendor/asus/eee_701"/>
    이렇게 윗줄이 1줄이 되어야 합니다. (안그러면 피봅니다.)

4. make -j2 installer_img 를 하면 파일 이름을 바꿔주라는 메세지가 나옵니다.
   $cd vendor/asus/eee_701
   $mv Android.mk AndroidBoard.mk 를 하여 이름을 변경해 줍니다.

5. 그리고 external/e2fsprogs/Android.mk를 수정합니다.
  ifneq ($(TARGET_SIMULATOR),true) 되어 있는 첫 줄을
  ifeq ($(TARGET_ARCH),x86) 로 변경 해 줍니다.

  그리고 2번째 줄의 주석을 풀어 줍니다.

  ifeq ($(TARGET_ARCH),x86)

  include $(call all-subdir-makefiles)

  endif

 

6. vendor/asus/eee_701/eee_701.mk에서 generic_with_google.mk를 generic.mk로 변경

7. 이제 다시 빌드 하면 안드로이드 x86용 이미지가 만들어 집니다.

8. 하지만 아직 패치 안된 것들이 많기 때문에
   http://code.google.com/p/patch-hosting-for-android-x86-support/downloads/list
   위의 주소에서 패치들을 받아 소스에 적용해서 한번 더 만들어 주면 됩니다.

댓글 2개:

  1. 칸드로이드에 다 있을 듯 하지만.. 요런데도 있더군... 이미 알고 있겠지만..

    http://androidhuman.tistory.com/

    답글삭제
  2. 감사합니다 많은 도움이 됐습니다.^^

    답글삭제