생강빵 외 최신버젼(java6)
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
프로요 하위버젼(java5)
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper main multiverse"
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu dapper-updates main multiverse"
$ sudo apt-get update
$ sudo apt-get install sun-java5-jdk
필요한 패키지들
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev
lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev
64빗 시스템에서 32빗환경을 구축하기위하여 필요한 패키지
$ sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386
usb 설정
root권한으로 /etc/udev/rules.d/51-android.rules 파일을 만든다.
# adb protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e12", MODE="0600", OWNER="<username>"
# fastboot protocol on passion (Nexus One)
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0600", OWNER="<username>"
# adb protocol on crespo (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
들입다 복사해다 붙여넣는 병신은 없길바래.
소스 다운로드환경
$ mkdir ~/bin
$ PATH=~/bin:$PATH$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
세세한 파일경로는 입맛대로 바꾼다.
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
마스터 체크아웃을 가져올때
$ repo init -u git://android.git.kernel.org/platform/manifest.git
특정 브랜치를 가져올떈 -b옵션을 사용하자
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b gingerbread
파일가져오기
$ repo sync
태그작업 패스
빌드하기
최초 환경설정
$ source build/envsetup.sh
or
$ . build/envsetup.sh
. 왜찍는지 궁금하지? ㅋ ㅋ
타겟설정
$ lunch full-eng
argument 는 DEVICE-BUILDTYPE
Device | Build configuration |
---|
crespo | full_crespo-userdebug |
crespo4g | full_crespo4g-userdebug |
passion | full_passion-userdebug |
sapphire | full_sapphire-userdebug |
dream | full_dream-userdebug |
Buildtype | Use |
---|
user | limited access; suited for production |
userdebug | like "user" but with su access; preferred for debugging |
eng | unrestricted access |
대망의 빌드
몇개의 스레드를 사용해서 병렬빌드할지 정함.
make -j4
adb,fastboot build
$make adb fasboot
fastboot mode booting
Device | Keys |
---|
crespo | Press and hold Volume Up, then press and hold Power |
crespo4g | Press and hold Volume Up, then press and hold Power |
passion | Press and hold the trackball, then press Power |
sapphire | Press and hold Back, then press Power |
dream | Press and hold Back, then press Power |
Unlocking the bootloader
$ fastboot oem unlock
언락시 넥서스원은 복구가 불가능하다고 나와있네
넥서스s , 4g 는 다음명령어로 가능
$fastboot oem lock
Flashing a device
사용자 데이터는 일반적으로 호환되지않기때문에 싹다 지우는게 좋다
$ fastboot erase cache
$ fastboot erase userdata
그리고 한방에 싹올린다
#fastboot flashall
crespo,4g,sapphire는 단일명령으로 수행가능하다(넥서스원passion은 안됨)
$fastboot -w flashall
사실 공식홈 나온대로하면 아무 무리 없다.
http://source.android.com/source/initializing.html