안드로이드 커널 개발 및 빌드 환경 설정 - 1
안드로이드 KitKat(4.4.4_r1) 플랫폼 개발을 직접 하면서 정리한 개발 환경 설정 방법입니다.
커널 개발 및 빌드 답게 굉장히 까다롭고 민감하므로 주의하면서 이 글을 읽어주시기 바랍니다!
Step 0> 권장 사양 확인 & Keep in mind
개발 및 빌드하면서 속터지지 않기 귀한 권장 사양입니다.
- 쿼드코어 이상의 CPU
- 8GB이상의 램
- 우분투64bit (12.04이후 모두 가능)
- 80GB이상의 여유 저장공간 (SSD를 사용한다면 속도향상이 꽤 됩니다)
툭하면 프로그램이 없다고 명령이 막힐 수 있습니다.
당황하지 마시고 에러 메시지에 나타난 필요 프로그램을 sudo apt-get install 프로그램명 으로 설치해 주세요
진행 중 선택지가 나오면, 즉 y/n이 나오면 다 y 해주시면 됩니다.
녹색 글자는 터미널(Ctrl+Alt+T를 누르면 나타납니다)에 입력할 명령입니다.
마지막 스텝까지 한번 켠 터미널을 끄지 마시고 쭉 이어나가길 바랍니다.
Step 1> Ubuntu 14.04 64bit 설치
우분투 14.04 64bit를 컴퓨터에 설치하는 것은 구글링을 통해 쉽게 알 수 있으니 주의사항만 적겠습니다.
- 반드시 64bit 버전을 설치할 것
- 12.04 이후의 버전을 사용할 것
- Swap 영역을 16GB이상으로 할 것(권장입니다. 필수는 아닙니다.)
Step 2> 각종 프로그램 설치 및 환경 설정
1. Oracle JDK 6 설치 (진저브레드~킷캣 개발은 반드시 Oracle JDK 6를 사용해야 합니다)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer
2. 각종 툴 설치 (복사 붙여넣기 하시면 됩니다)
sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
Step 3> USB 설정
sudo touch /etc/udev/rules.d/51-android.rules
sudo gedit /etc/udev/rules.d/51-android.rules
GEdit프로그램이 열렀을 것입니다,
이제 아래의 내용을 복붙하고 Ctrl+H키를 눌러 변경창을 열어 <username> 을 유저 아이디로 치환합니다
# 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/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e22", MODE="0600", OWNER="<username>"
# fastboot protocol on crespo/crespo4g (Nexus S)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e20", MODE="0600", OWNER="<username>"
# adb protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", MODE="0600", OWNER="<username>"
# fastboot protocol on stingray/wingray (Xoom)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="708c", MODE="0600", OWNER="<username>"
# adb protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0600", OWNER="<username>"
# fastboot protocol on maguro/toro (Galaxy Nexus)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e30", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d101", MODE="0600", OWNER="<username>"
# adb protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d002", MODE="0600", OWNER="<username>"
# fastboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d022", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d00f", MODE="0600", OWNER="<username>"
# usbboot protocol on panda (PandaBoard ES)
SUBSYSTEM=="usb", ATTR{idVendor}=="0451", ATTR{idProduct}=="d010", MODE="0600", OWNER="<username>"
# adb protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0600", OWNER="<username>"
# fastboot protocol on grouper/tilapia (Nexus 7)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0600", OWNER="<username>"
# adb protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee2", MODE="0600", OWNER="<username>"
# fastboot protocol on manta (Nexus 10)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee0", MODE="0600", OWNER="<username>"
Step 4> Repo 설치
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
Step 5> 다운로드 할 폴더 준비
폴더명은 마음대로 하시면 됩니다, 전 androidSource로 했습니다.
mkdir androidSource
cd androidSource
Step 6> 다운로드 시작
다운로드에 굉장한 시간이 걸립니다! 저는 두시간 정도 걸렸습니다
-b 옆에는 자신이 받고 싶은 안드로이드 버전을 지정합니다. 저는android-4.4.4_r1(KitKat)으로 했습니다.
repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.4_r1
repo sync
Step 7> 빌드 시작
빌드에 굉장한 시간이 걸릴 수 있습니다! 저는 40분정도 걸렸습니다
source build/envsetup.sh
lunch 1
make -j6
Step 8> 에뮬레이터로 확인하기
emulator
이클립스를 통한 개발, 즉 프로젝트 import및 소스코드 다루기는 다음 글로 가주세요 다음 글로
'Android > Kernel' 카테고리의 다른 글
XPosed Framework 개발 (0) | 2014.12.03 |
---|---|
안드로이드 커널 개발 및 빌드 환경 설정 - 2 (1) | 2014.07.14 |
안드로이드 소스 다운 (Full Source 풀 소스 다운 방법) (1) | 2013.02.18 |