[따라하는 빌드 #2] 안드로이드 AOSP 또는 CM 소스 다운로드(Sync) (따라하는 안드로이드 빌드)
안녕하세요!
두번째 시간입니다!
본 게시글은 아래 링크에서 모든 시리즈 혹은 관련 포스팅을 보실수 있습니다.
먼저 본 글은 윈도우나 리눅스등 운영체제나 기본적인 컴퓨터 상식정도는 알고있으신 분들을 중점으로 작성한 문서 입니다.
이번 글 부터는 복잡한 이전 방식을 대체하려고 하이퍼 링크로 본인이 필요하신 부분으로 바로바로 갈수 있도록 준비했습니다.
또한 글 내에 아래 두개와 같은 초록색 혹은 빨간색 글상자를 발견하신다면, 아래와 같은 역활을 합니다.
직접 키보드로 입력하셔야 하는 문구들
많이들 겪는 오류나 조심하셔야 하는 부분
그럼 본격적으로 시작하겠습니다.
목차 입니다.
따라하는 빌드 #2 안드로이드 소스 (sync) 다운로드
2-1. 원하는 소스 다운로드
2-1-1. Android Open Source Project 다운로드
2-1-2. Cyanogen Mod 다운로드
2-2. 공통작업 다운로드
이러한 순서로 진행하게 됩니다.
위 링크들을 클릭시 필요하신 부분으로 이동 됩니다.성성
1. 소스 다운로드를 위한 기본 준비
우선 구글의 안드로이드 Git 작업을 더 쉽게 해주는 구글의 Repo 라는 녀석을 설치해야 합니다.
Repo에 대한 자세한 정보는
https://source.android.com/source/developing.html (영문)
위 링크에서 보실수 있습니다.
방법은 상당히 간단합니다.
mkdir -p ~/bin
위 명령어를 터미널에 입력해 줍니다.
위 명령어는 내 홈디렉토리 (/homin/(계정명) 을 ~ 로 리눅스에서 빠르게 이동 및 표현이 가능합니다)안에 bin이라는 폴더를 만들라는 명령입니다.
-p 옵션은 하위 디렉토리 까지 만들라는 뜻인데, -p 없이 mkdir ~/1/2/3 을 치면 오류가 납니다. ~/1/2/3 은 1폴더 속 2폴더 속 3폴더를 만들라는 뜻인데 1 과 2 폴더가 없으니 오류가 납니다.
-p는 1과 2까지 알아서 만들라는 녀석 입니다 .(사실 잘 몰라요 ㅌㅌ)
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
위 처럼 입력해 주시면 기본적인 준비가 끝났습니다!
하지만 우리는 작업할 공간을 지정 해야 합니다.
위 mkdir 명령어를 응용같진 않지만 응용하셔서 자신이 원하시는 작업 공간을 만드시거나, 탐색기를 이용하셔서 만들어 주시면 됩니다.
여기서 뜻하는 작업공간은 안드로이드 소스를 받고, 빌드할 공간 입니다.
제 기준으로는 /home/icaros7/workspace/cm 입니다.
꼭 workspace 폴더 속 AOSP폴더가 아니어도 됩니다.
mkdir -p ~/workspace/cm
다 만들어 주셨다면, 터미널로 그 폴더로 이동 해야 합니다.
아래는 제 기준 입니다.
cd ~/workspace/cm
2. 안드로이드 소스 다운로드
2-1. 원하는 소스 다운로드
이중 본인이 원하시는 것을 받으시면 됩니다.
매우 많은 소스가 존재하지만 필자는 가장 대표적인 AOSP소스와 CM소스만을 다루겠습니다.
2-1-1. Android Open Source Project 다운로드
우리가 흔히 이야기하는 AOSP 소스 입니다. 구글에서 배포하는 순수한 안드로이드 소스 입니다.
먼저 자신이 다운로드 하고 싶은 안드로이드의 버전을 정해야 합니다.
원하는 안드로이드 버전은 아래 리스트에서 확인 하셔야 합니다.
https://source.android.com/source/build-numbers.html#source-code-tags-and-builds (영문)
위 링크는 매일 새로운 버전이 생긴다면 업데이트 됩니다.
위 링크 리스트에서 우리가 필요한 것은 해당 안드로이드 버전의 Branch 값 입니다.
예를 들어
2015년 9월 24일 필자가 이 글을 작성하는 기준으로 가장 최신의 안드로이드 버전인 android-5.1.1_r18 입니다.
repo init -u https://android.googlesource.com/platform/manifest -b android-5.1.1_r18
위 명령어를 터미널에 입력해주시면 repo가 알아서 저 위치의 소스를 받아올 준비를 하게 됩니다.
준비가 완료되셨다면, 아래 2-2로 이동해주세요.
2-1-2. Cyanogen Mod 다운로드
우리가 흔히 이야기하는 CM 소스 입니다. CyagnogenMod 팀에서 아니 이제 회사라고 해야 하나요...아무튼 CM에서 배포하는 소스 입니다!
먼저 자신이 다운로드 하고 싶은 CM의 버전을 정해야 합니다.
원하는 CM의 버전은 아래 사이트 중 드롭다운 목록에서 확인이 가능합니다.
https://github.com/CyanogenMod/Android (영문)
저~기 빨간색 테두리가 있는 녀석을 눌러서 나오는 리스트를 확인해주시면 됩니다.
예를들어
2015년 9월 24일 필자가 이 글을 작성하는 기준으로 가장 최신의 안드로이드 버전인 cm-12.1 입니다.
repo init -u https://github.com/CyanogenMod/android.git -b cm-12.1
위 명령어를 터미널에 입력해주시면 repo가 알아서 저 위치의 소스를 받아올 준비를 하게 됩니다.
준비가 완료되셨다면, 아래 2-2로 이동해주세요.
2-2. 공통작업 다운로드
위 2-1 옵션에서 원하는 소스의 다운로드를 준비시켰다면 이제 repo sync 를 받아야 합니다!
방법은 매우 간단합니다 흐흐
터미널에서 진짜로 repo sync 만 쳐주시면 다운로드 됩니다만, 속도가 매우 발암을 유발함으로 한번에 여러개의 파일을 다운로드 해주어야 합니다.
공식 사이트들에서 권장하는 동시 다운로드수는 2~6개 정도이지만, 필자는 40개씩 받을껍니다. (...) 한번 받고 누락된 파일을 다시 다운로드 해주는 과정을 거처준다면 문제 없습니다!
원하는 동시 다운로드 수는 repo sync 명령어 뒤에 -jXX 를 붙여서 가능 합니다.
예를 들어 필자의 경우
repo sync -j40
입니다.
성공적으로 다운로드가 되었다면, 위 처럼 repo 가 Sync 작업을 합니다!
그런데 전 지금 CM서버에 문제가 있나 몇몇 파일이 404 오류를 뿜으며 계속 누락 되는군요.
그래서 다음번에 받기로 했습니다~
3. 이 과정을 마치며!
'iCAROS Works > 안드로이드 따라하는 개발' 카테고리의 다른 글
[따라하는 빌드 #1] 안드로이드 AOSP 또는 CM 개발 환경 구성 (따라하는 안드로이드 빌드) (1) | 2015.09.22 |
---|---|
LG 옵티머스Q2 [LG-LU6500] 의 루팅 과정 (0) | 2013.06.14 |
[Dev] TWRP 리커버리 포팅하기 (Team Win Recovery Project) (4) | 2012.11.25 |
LG 옵티머스 ICS(아이스크림샌드위치) 전기종 화이트 UI제거 하기 (0) | 2012.11.24 |
LG 옵티머스 ICS (아이스크림 샌드위치)에서 안드로이드 순정 잠금화면 사용하기 (2) | 2012.11.24 |
[따라하는 빌드 #1] 안드로이드 AOSP 또는 CM 개발 환경 구성 (따라하는 안드로이드 빌드)
안녕하세요!
오랜만에 이 시리즈 글을 쓰네요. (아니 새로 구성하고는 처음이지요? ㅌㅌ)
본 게시글은 아래 링크에서 모든 시리즈 혹은 관련 포스팅을 보실수 있습니다.
먼저 본 글은 윈도우나 리눅스등 운영체제나 기본적인 컴퓨터 상식정도는 알고있으신 분들을 중점으로 작성한 문서 입니다.
이번 글 부터는 복잡한 이전 방식을 대체하려고 하이퍼 링크로 본인이 필요하신 부분으로 바로바로 갈수 있도록 준비했습니다.
또한 글 내에 아래 두개와 같은 초록색 혹은 빨간색 글상자를 발견하신다면, 아래와 같은 역활을 합니다.
직접 키보드로 입력하셔야 하는 문구들
많이들 겪는 오류나 조심하셔야 하는 부분
그럼 본격적으로 시작하겠습니다.
목차 입니다.
따라하는 빌드 #1 안드로이드 개발 환경 구성
2-1. 자바 설치
2-2. 필수 패키지 다운로드
3-3. ADB 사용을 위한 규칙 수정
이러한 순서로 진행하게 됩니다.
위 링크들을 클릭시 필요하신 부분으로 이동 됩니다.성성
1. 64비트 우분투 설치
2. 안드로이드 개발 환경 구성
우분투가 모두 성공적으로 설치 되셨나요
바로 급하지만 우리는 안드로이드 개발 환경 구성을 해야 합니다,
우분투가 모두 부팅이 되셨다면, 컨트롤키 + 알트키 + T키를 눌러주세요.
위와 같이 우분투의 내장 터미널이 실행될것 입니다.
우분투는 여기서 모든 작업이 가능 합니다. NT커널을 사용하고 DOS를 대체하는 명렴프롬프트만이 존재하는 윈도우와는 많이 다르게 모든 작업이 가능 합니다.
오히려 저는 종종 마우스로 누르는거보다 여기서 작업하는게 더 편한 경우도 있습니다만은 파일 관리는 마우스가 편합니다 ㅎㅎ
우선 자신이 개발할 안드로이드 환경을 정하셔야 합니다.
여기까지 오신분이라면 안드로이드에 대한 기본 지식은 있다 생각하겠습니다.
2-1. 자바 설치
롤리팝 5.0 이상의 안드로이드의 경우 자바 이용시 7버전을 사용 합니다.
진저브레드 2.3 이상의 안드로이드에서 킷켓 4.4의 안드로이드까지는 자바 이용시 6버전을 사용합니다.
컵케잌1.5 이상의 안드로이드에서 프로요 2.2의 안드로이드까지는 자바 이용시 5버전을 사용합니다.
자신이 해당하는 부분의 자바를 설치해야함을 기억 해주세요~
이 글에서는 롤리팝 소스를 받고, 안드로이드 사이트 master 브랜치를 받으시는 경우 무조건 늘 최신 버전의 자바를 설치하시면 됩니다.
sudo apt-get update
sudo apt-get install openjdk-7-jdk
우선 자바를 설치하시 위해 우분투에서 주로 쓰이는 OpenJDK 를 설치 합니다.
만일 성공적으로 설치 되신 경우에는 "java -version" 명령어를 입력하시면 아래와 비슷하게 나오셔야 합니다.
2-2. 필수 패키지 다운로드
그런 다음 안드로이드 개발에 꼭 필요한 필수 패키지 들을 설치하셔야만 합니다.
본 글은 우분투 14.04 를 기준으로 작성하였습니다.
sudo apt-get install bison g++-multilib git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip
적
성공적으로 설치가 완료되셨다면 개발환경 구성의 반이상이 끝났습니다!
아래서부터는 필수 과정은 아닙니다만은 없으면 많이 불편하죠.
2-3. ADB 사용을 위한 규칙 설정
개발과정중 ADB사용이 안된다면 상당한 불편함이 있습니다.
일딴 우분투에서는 기본적으로 각종 핸드폰 제조사별 USB드라이버에 대한 규칙이 없습니다. (사실 이부분 저도 잘 몰라요 ㅎㅎㅎㅎㅎ)
wget -S -O - http://source.android.com/source/51-android.rules | sed "s/<username>/$USER/" | sudo tee >/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules
위 문구를 터미널에서 입력해 줍니다. 그러면 알아서 구글에서 가장 최신의 정보가 적혀있는 녀석을 알아서 설치하고, 필요한 서비스를 재시작 해줍니다.
(저도 이글쓰면서 처음 알았네요. 이때까지 늘 따로따로 직접 했는데...)
3. 이 과정을 마치며!
모든 과정이 오류 없이 성공적으로 준비 되셨나요?
그렇다면 이미 안드로이드 빌드 과정에 한 100분의 1쯤 다가 왔습니다 (...)
왜냐하면 안드로이드 소스를 받는게 100분의 98 이거든요!!!! 아오 오래걸려라
만약 여기까지하시는데 멘탈이 깨지신다?!?!!?
이제 빌드중에 오류나시면 훨훨 날라가십니다.
단단히 준비하세요!
사실 이 편에서는 여기다가 적을께 뭔가 없네요.
다음에 뷉겠습니다!
'iCAROS Works > 안드로이드 따라하는 개발' 카테고리의 다른 글
[따라하는 빌드 #2] 안드로이드 AOSP 또는 CM 소스 다운로드(Sync) (따라하는 안드로이드 빌드) (0) | 2015.09.24 |
---|---|
LG 옵티머스Q2 [LG-LU6500] 의 루팅 과정 (0) | 2013.06.14 |
[Dev] TWRP 리커버리 포팅하기 (Team Win Recovery Project) (4) | 2012.11.25 |
LG 옵티머스 ICS(아이스크림샌드위치) 전기종 화이트 UI제거 하기 (0) | 2012.11.24 |
LG 옵티머스 ICS (아이스크림 샌드위치)에서 안드로이드 순정 잠금화면 사용하기 (2) | 2012.11.24 |