티스토리 뷰

Android

Android Build on Mac #1

RCE_Mania 2019. 2. 28. 13:00

본 가이드는 아래와 같은 시스템 환경에서 Android-7.1.1_r4 버전을 대상으로 했습니다.

MacBook Pro (15-inch, 2017)
macOS High Sierra 10.13.6
16 GB RAM
2.8 GHz Intel Core i7

Xcode 설치

Xcode는 app store에서 최신 버전을 설치한다. 특정 버전의 Xcode가 필요하다면 Apple developer site에서 Apple 계정으로 로그인 후 다운로드 할 수 있다.

Requirements Packages

MacPort를 사용하여 필수 패키지를 설치한다.

POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg

MacPort를 설치해야 한다면, 설치 후 ~/.bash_profile에 아래와 같이 PATH 설정 명령을 추가한다.

export PATH=/opt/local/bin:$PATH

추가적으로 OS X에는 동시에 접근할 수 있는 File Descriptor 개수가 제한되기 때문에 아래 커맨드를 함께 추가하여 제한을 늘려준다.

# set the number of open files to be 1024

ulimit -S -n 1024

OS X v10.4 이하라면 bsion도 추가로 설치해야하며, Xcoce SDK 버전이 낮을 경우도 마찬가지이다.

POSIXLY_CORRECT=1 sudo port install bison

Hish Sierra 이상이라면 아래와 같이 bison을 패치해야한다.

cd /Volumes/AOSP/external/bison

git cherry-pick c0c852bd6fe462b148475476d9124fd740eba160

./configure

make

cp /Volumes/AOSP/out/host/darwin-x86/bin/bison /Volumes/AOSP/prebuilts/misc/darwin-x86/bison/

MacPort가 아닌 Homebrew를 사용중이라면 아래 패키지만 설치하면 된다.

brew install gmake libsdl git gnupg2

JDK 설치

Oracle 홈페이지에서 최신 JDK8을 다운로드 받은 뒤 설치한다.

Case-sensitive disk image 생성

OSX에서는 빌드 스크립트 오류로 인해 case-sensitive disk image를 따로 생성해 마운트해 사용한다.

hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/android.dmg

최소 용량은 25GB이며 안드로이드 버전이 올라감에 따라 필요한 용량도 함께 늘어난다.

추후 이미지 사이즈 변경은 아래와 같은 커맨드로 가능하다.

hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage

./bash_profile에 배쉬함수를 추가하여 사용하면 편리하다.

# mount the android file image

mountAndroid() { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }



# unmount the android file image

umountAndroid() { hdiutil detach /Volumes/android; }

공식 매뉴얼에서는 생성한 Disk Image 확장자 .dmg.sparseimage를 .dmg로 바꾸어 사용하는 것을 권장하지만, 실제 테스트 환경에서는 임의로 확장자를 변경할 경우 Image접근 권한이 Read-Only로 변경되는 문제가 생겨 확장자 변경 없이 테스트를 진행했다.

Repo 설치

아래와 같이 사용자 홈 폴더 아래 bin폴더를 생성하고 PATH를 추가한다.

mkdir ~/bin

PATH=~/bin:$PATH

Google에서 제공해주는 repo 실행 파일을 다운로드 받는다.

curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo

chmod a+x ~/bin/repo

다운로드 받은 repo 실행 파일의 해시는 아래와 같다.

Shawn@ShawnKwakui-MacBook-Pro  ~  shasum -a 256 ~/bin/repo

d06f33115aea44e583c8669375b35aad397176a411de3461897444d247b6c220  /Users/Shawn/bin/repo

Repo 실행

사전에 생성한 Disk Imange를 mountAndroid 쉘 함수를 실행하여 마운트하고 작업 공간을 생성한다.

cd /Volumes/android

mkdir WORKING_DIRECTORY

cd WORKING_DIRECTORY

Gerrit code-review툴을 사용하기 위해서 구글 계정을 등록한다.

git config --global user.name "Your Name"

git config --global user.email "you@example.com"

아래 명령을 통해 repo 초기화를 진행한다. 안드로이드 소스코드 브랜치 목록에서 원하는 브랜치만 선택하여 초기화 가능하다.

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

아래 명령을 통해 선택한 브랜치의 소스코드를 다운로드 받는다.

repo sync

'Android' 카테고리의 다른 글

Flashing to Android Reference Phone  (0) 2020.08.01
Android Build on Mac #2  (0) 2019.03.01
댓글