우분투 12.04 64bits에서 Nexus 5의 Factory 이미지를 안드로이드 버전별로 변경하고 루팅(Rooting) 할 경우가 있어 정리를 한다.
안드로이드 SDK 환경설정이 되어있고, 안드로이드 개발환경을 이해하고 있는 상태라는 가정하에 글을 작성한다.
그리고 Nexus 5는 부트로드가 언락(Unlock)된 상태이어야 한다.
1. 이미지 변경
1) link 에서 Nexus 5에 올리고 싶은 이미지를 다운로드 한다.
나의 경우 6.0.1에서 5.1.1로 다운그레이드 하기 위해 5.1.1 (LMY48M) 이미지를 다운로드 받았다.
정상적으로 다운로드 되었는지 각 이미지별 MD5 및 SHA-1의 Checksum 값과 비교해본다.
Checksum 값이 같으면 이상이 없는 것으로 압축을 해제하고, 터미널에서 풀린 디렉터리로 이동한다.
$ tar xvfz hammerhead-lmy48m-factory-bf3c82fd.tgz
$ cd hammerhead-lmy48m
2) Nexus 5 부트로드 모드로 진입한다.
Nexus 5의 경우 부트로드 모드로 진입하는 방법은 전원을 끈 후 "볼륨 업" + "볼룸 다운" + "전원 버튼"을 동시에 눌르면 되지만
adb 명령어를 사용하면 간편하게 명령으로 부트로드 모드로 재부팅할 수 있다.
adb 명령 및 루팅에도 사용하기 위해 "개발자 옵션"에서 "USB 디버깅"을 On하고,
"USB 디버깅에 대한 엑세스 권한" 요청 다이얼로그가 뜨면 "확인"을 누른다.
다시 USB 디버깅에 대한 허용을 다시 묻지 않기 위해서는 "이 컴퓨터에서 항상 허용"에 체크를 한다.
$ adb devices
List of devices attached
[장치명] device
$ adb reboot-bootloader
3) 부트로더에 진입을 한 후 아래 스크립트를 실행하여 이미지를 Nexus 5에 쓴다.
flash-all.sh 스크립트 내부에서는 fastboot 명령어를 사용하는데 이 때 root 권한이 필요하다.
그러므로 sudo를 사용하거나 su를 사용하여 root 권한을 얻은 후 사용한다.
$ sudo ./flash-all.sh
4) 실행이 완료된 후 Nexus 5가 정상적으로 부팅되면, 원하는 버전의 이미지로 쓰기가 완료된 것이다.
2. 루팅(Rooting)
루팅은 커스텀 리커버리(CWM or TWRP)와 SuperSU가 필요하다.
나의 경우 CWM 6.0.4.5를 사용하였으며 오피시얼 사이트가 접속이 되지 않아 다운받아둔 이미지를 사용했다.
SuperSU는 link에 가서 STABLE 버전인 SuperSU v2.65를 다운로드 한다.
1) 부트로드가 언락된 상태에서 위(1.->2)에 설명한 대로 Nexus 5 부트로드로 진입한다.
2) CWM 커스텀 리커버리를 fastboot 명령어를 사용하여 Nexus 5에 쓴다.
$ sudo fastboot flash recovery recovery-clockwork-touch-6.0.4.5-hammerhead.img
3) CWM 커스텀 리커버리 쓰기를 완료한 후 부트로드에서 복구모드(Recovery mode)로 부팅을 한다.
4) 다운로드 받았던 UPDATE-SuperSU-v2.65-20151226141550.zip를 adb 명령어를 사용하여 Nexus 5의 /sdcard로 복사한다.
$ adb push UPDATE-SuperSU-v2.65-20151226141550.zip /sdcard/UPDATE-SuperSU-v2.65-20151226141550.zip
5) install zip -> choose zip from /sdcard -> 0/ -> UPDATE-SuperSU-v2.65-20151226141550.zip을 선택하여 설치한다.
6) 설치가 완료 되면 +++++Go Back+++++을 눌러 최상위 메뉴로 이동하여 reboot system now을 눌러 Nexus 5를 재부팅한다.
7) SuperSU 앱이 설치되어 있는 것을 확인하거나 adb shell을 실행하여 su 되는지 확인해본다.
8) 필요한 경우 Play Store에서 BusyBox를 설치하여 사용한다.
PS. Android 6.0.1 (Build M4B30Z) Root for Nexus 5: https://gist.github.com/deloz/6a9663ca7052fc4acf9c
'형상관리 > 리눅스' 카테고리의 다른 글
Ubuntu 16.04.1 LTS HDMI 사운드 출력 설정 (0) | 2017.01.19 |
---|---|
Ubuntu 12.04 64bits에서 로지텍 K811을 블루투스 동글에 연결하여 사용 (2) | 2017.01.05 |
Ubuntu 12.04 64bits 하드디스크 상태 체크 (0) | 2015.10.30 |
Ubuntu 12.04 x64 Kensington Slimblade Trackball 버튼 재설정 (0) | 2015.07.01 |
vi 내부명령어 (0) | 2014.12.09 |