티스토리 뷰
본 가이드는 아래와 같은 시스템 환경에서 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 |
- Total
- Today
- Yesterday
- build
- 티스토리
- delphi
- Python
- AOSP
- 델파이 분석
- Android
- 디컴파일에러
- segment
- Cyber Threat
- 델파이 리버싱
- 애드센스
- 스킨
- REMNux
- Mobile game hacking
- Github
- IA-32
- 악성코드
- Mobile Security
- Mobile hacking
- 악성코드 분석
- Analysis
- reversing
- Malware
- 구글
- OSX
- 광고
- 썸네일
- Ghidra
- Mobile security threat
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |