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
위의 주소에서 패치들을 받아 소스에 적용해서 한번 더 만들어 주면 됩니다.
칸드로이드에 다 있을 듯 하지만.. 요런데도 있더군... 이미 알고 있겠지만..
답글삭제http://androidhuman.tistory.com/
감사합니다 많은 도움이 됐습니다.^^
답글삭제