티스토리 뷰

AOSP (Android Open Source Project) 소스를 받고 빌드해보자

이번에는 순수 안드로이드인 AOSP를 다운받고, 빌드해보는 시간을 가져보겠습니다

AOSP와 CM는 빌드소스와 방식부분에서 조금 차이를 보일수 있으므로 cm소스 그대로 AOSP가 빌드되는것은 아닙니다



0. 사전 필독 글들 && 관련 글들

필독글

[Android Build] - 1) 안드로이드를 빌드하기 전에 빌드 환경을 구축하자


권장글

[Android Build] - 2) CyanogenMod 소스를 받고 빌드해 보자

[Ubuntu] - Ubuntu의 저장소를 daum.net으로 바꿔보자 (apt-get 속도향상)




1. repo 설정

aosp는 cm과 다르므로 다시 폴더를 만들고 repo를 설정해 주어야 합니다

mkdir ~/aosp

cd ~/aosp

그다음 repo를 설정해 주세요

repo init -u https://android.googlesource.com/platform/manifest


명령어 뒤에 -b를 붙힌후 원하는 버전을 다운받을수도 있습니다

android-2.3.7_r1

android-4.0.4_r2

android-4.1.1_r6

android-4.1.2_r2

android-4.2.1_r1

android-4.2.2_r1

android-4.3_r3

android-4.4_r1

android-4.4.1_r1

android-4.4.2_r1

참고 : https://android.googlesource.com/platform/manifest/+refs


최신버전인 4.4.2 버전을 받는다고 한다면

repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.2_r1

이렇게 입력해 주세요


repo has been initialized in /home/whdghks913/aosp

이런 문장이 나타난다면 완료된것입니다




2. repo sync

이제 소스를 받아봅시다

repo sync


명령어 뒤에 -j옵션을 붙혀 더 빠르게 받을수 있습니다

repo sync -j4


2, 4, 8, 16정도에서 골라주시길 바라며 숫자가 크다고 더 빠른건 아닙니다



완료후 한번더 repo sync를 해서 수정된 내역을 한번 확인해 주세요




3. 디바이스 소스 생성

AOSP도 device폴더에 들어가보면 원하는 기기 소스가 없을겁니다

CyanogenMod와 비슷하지요


이것도 몇가지 방법이 있습니다


(1) 정식 지원기기

구글에서 정식 지원하는 기기는 소스 다운받을때 device/(제조사)에 소스가 들어있습니다

예를들어 넥서스s의 경우 4.1.2의 manifest를 보면

<project path="device/samsung/crespo" name="device/samsung/crespo" />

https://android.googlesource.com/platform/manifest/+/refs/heads/android-4.1.2_r2.1/default.xml

그러므로 따로 소스 준비는 필요 없습니다



(2) 지원이 끊긴 레퍼 / CyanogenMod 정식 기기

예를들어 넥서스s는 4.1.2가 끝입니다

4.1.2를 빌드할때는 아래에서 소스코드를 다운로드할수 있습니다

https://android.googlesource.com/device/samsung/crespo


그러나 그 위 버전은 구글 aosp소스로는 힘들수 있습니다

가장 대표적으로 CyanogenMod에서 가져온다음 파일을 수정하면 됩니다

https://github.com/cyanogenmod/android_device_samsung_crespo

수정해야 하는 파일은 따로 정리하겠습니다


(빌드를 진행하다 보면 ~파일을 찾을수 없습니다 라던지 ~가 정의되지 않았습니다 같은게 나옵니다

그걸 수정해야 합니다.. 제가 aosp소스가 지금 없어서..)



구글 레퍼런스는 아니지만 CyanogenMod 지원기기도

cm 디바이스 소스를 aosp로 바꿔주면 되는대요

따로 포스팅 할 예정입니다



(3) CM소스를 AOSP소스로 바꾸기

다음편에 이어집니다



(3) 소스 직접 만들기

이건.... AOSP는 찾아보니 CyanogenMod처럼 소스를 만드는 스크립트도 존재하지 않는것 같습니다

따라서 먼저 cm소스를 만든다음 aosp로 바꾸던지, 아니면 일일히 노가다 하면서 만들어야 합니다

cm소스를 만드는 것은 [Android Build] - 2) CyanogenMod 소스를 받고 빌드해 보자 를 참고해 주세요




4. 빌드하기

cm은 brunch라는것으로 빌드가 가능하지만 aosp는 이게 없는걸로 알고있습니다

그래서 make명령어로 빌드해 주어야 합니다

. build/envsetup.sh

lunch 또는 lunch (기기명)

make -j4 otapackage


lunch를 하면 번호가 쭉 나올탠대 이때 원하는 기기의 번호를 눌러주시면 됩니다

제 기억으론 lunch (기기명) (예를들면 lunch crespo)해도 된거 같습니다


그다음 cm과 다르게 make otapackage를 입력해 주세요

꼭 otapackage를 입력해 주세요 그냥 make만 칠경우 구글 호환성 검사부터 모두 빌드하는것 같습니다




끝입니다~ AOSP를 즐기시면 됩니다


다음편은 CM소스를 AOSP로 바꿔서 빌드하는 것을 해보겠습니다

조금 시간이 걸릴수도 있겠내요..

저작자 표시 비영리 변경 금지
신고
댓글
  • 효서 구금한게 있습니다. android~~~ manifest -b android-4.1.2_r2 하고 repo sync하면 4.1.2소소만 받는게 아니라 다른 소소들도 다 받아 지는 듯한데..젤리빈(4.1대 )만 골라서 받을 순 없을까요????? 2014.03.11 05:07 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 아닙니다 repo sync을 android-4.1.2_r2버전으로 가져오면 android-4.1.2_r2으로 받아집니다

    4.1.2_r2 버전에 이전 버전 소스가 조금 있을수 있습니다
    (상관 없습니다)
    2014.03.12 17:59 신고
  • 달려 Aosp빌드할려고해도 cm디바이스때문에 막히네요ㅜ 2014.05.18 10:01 신고
  • 갤5 갤럭시S5 코드를 받아서 모두 빌드를 완료하였습니다.

    이후 포팅을 해보아도 안되는데,
    따로 방법이 있나요?ㅠㅠ
    2014.08.09 20:34 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 빌드 이후에 어떻게 작업하셨나요?
    "올바른 디바이스 소스"로 "정상적인 빌드"를 완료하셨다면 이제 부팅이 안되는 오류를 잡아서 다시 수정해야 합니다
    부팅이 안되는 원인은 init.rc에 있거나 커널에 있거나 원인이 많아서 자세히는 저도 모르겠습니다
    2014.08.10 13:02 신고
  • 질문드립니다 혹시 이것으로 젤리빈 킷캣을 먹일수있나요? 제조사가 정식지원을 하지않았을지라도 디바이스 소스와 aosp로 안드로이드 버전을 업데이트 할 수 있나요? 2014.10.01 00:32 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 넵 가능합니다
    그렇지만 부팅 성공만 하더라도 엄청난 오류와 삽질이 있어야만 합니다
    비슷한 기기가 없을경우 혼자하기에는 1년 이상 걸릴수도 있습니다
    2014.10.01 00:35 신고
  • 질문드립니다 삼성에서 디바이스 소스를 공개하는데 그 디바이스 소스를 사용해도 되나요? 2014.10.01 08:12 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 디바이스 소스 짤때 제조사에서 오픈한 소스가 있다면 그것을 바탕으로 소스를 짭니다
    이때 device 소스에 대한 전반적인 지식이 필요합니다
    2014.10.01 22:52 신고
  • 질문드립니다 직접 해보는게 좋겠지만 경험자의 의견을 들어보고싶어서 질문드립니다
    삼성의 갤럭시플레이어70플러스는 GB 갤럭시플레이어5.8 기종ICS인데 제가 알기로는 카메라 사운드 칩 해상도만 다른걸로 알고있습니다. 그러면 갤럭시 플레이어5.8의 커널을 갤럭시플레이어70플러스에 해상도를 수정하고 넣으면 부팅이 가능할까요?
    만약 부팅이 가능하다면 갤럭시플레이어5.8의 롬을 넣어도 부팅이 가능할까요? 해상도 카메라 사운드칩셋만 다르니 해상도만 수정하먼 될것같은데...
    2014.10.02 01:40 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 음.. GB와 ICS가 많이 달라져서 커널도 수정할 부분이 많이 있을겁니다
    같은 버전은 일명 복붙포팅도 가능하지만 gb ics복붙은 저도 모르겠내요;; 한번에 성공되지 않으니 꾸준히 알아가시면 성공하실수 있으실겁니다 ㅎㅎ
    2014.10.02 22:30 신고
  • 다음편 다음 편은 언제나오나요?
    빨리 써주세요 현기증난단 말이에요 징징 ㅜㅜ...
    2015.01.09 21:08 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) ㅠㅠ 다음편은 아마 안나올수도 있겠습니다... 2015.01.09 21:18 신고
  • 다음편 다음편이 안 나온다니...
    다음편이 안 나온다니..!
    이게 무슨 말인가요 미르님!! ㅠㅠ
    지금 제가 다음편을 볼 수 없다 이 말이요?
    안돼!!
    2015.01.10 16:53 신고
  • 미르님 CM 소스를 AOSP 소스로 바꾸는 법은 결국 안 나오나요...
    비슷한 기기의 CM 롬을 찾았는데... 헛고생한건가요... ㅜㅜ
    2015.03.06 20:36 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) ㅠㅠ 고2되니까 블로그 들어올 시간까지 없네요..

    cm을 aosp로 바꾸는건
    일단 기존 aosp디바이스 폴더를 참고하시되 cm_디바이스네임 같은걸 aosp_네임 이었나? 이런걸로 변경해주시고 빌드하시는데 오류가 생기면 영어로 뭐라고 나올겁니다
    그부분 픽스해주시고.. 무한반복입니다
    2015.03.06 21:30 신고
  • 미르님 감사합니다... 대충 이해한 것 같아요..! 2015.03.07 08:53 신고
  • 힉 고수 빌드 할때 폰이랑 연결한 상태로 해야하나요? 완료되면 보통 뭐라고 뜨나요? 2015.07.27 23:54 신고
  • Favicon of http://itmir.tistory.com Mir(whdghks913) 연결하지 않아도 됩니다. 완료되면 빌드 결과물의 파일 경로가 나타날겁니다. 2015.08.04 12:40 신고
댓글쓰기 폼