안드로이드 사용자라면 누구나 루팅 생각을 한 번쯤은 해봤을 겁니다. 꽤 어렵게 보이기 때문에 국내외의 개발자들이 만든 매크로 툴들을 많이 사용하죠. 사실 저도 예전 갤럭시 넥서스 쓰던 시절까지는 그렇게 했었습니다. 이번에 원플러스 원을 쓰면서는 직접 해보았는데 의외로 쉬운 데다가 여러 가지 장점을 알게 되었습니다.
왜 편한 툴 놓고 정석대로 하느냐고요? 몇가지 장점이 있습니다:
- 어떠한 기기에서도 ((기기에 맞는 커스텀 리커버리가 있어야 한다는 제약은 있습니다만 대부분의 기기에 맞는 커스텀 리커버리가 존재합니다.)) 동일한 방법으로 루팅 가능: 자기가 원하는 기기에 대한 툴이 따로 나올 때까지 마냥 기다릴 순 없겠죠?
- 새로운 버전의 커스텀 리커버리나 커스텀 롬들을 자유롭게 적용 가능: 이런 걸 지원하는 툴도 있지만 안그런 것들도 있습니다
- 오류가 발생할 가능성이 줄어든다: 단계마다 직접 하나씩 확인하면서 하기 때문에 일괄적으로 처리하는 매크로 툴에 비해 오류 발생 가능성이 낮습니다
- 오류가 발생하더라도 적절한 대응 가능
- 루팅이 어떠한 과정으로 이루어지는지 제대로 이해할 수 있다: 루팅과 커스텀 롬이 올라가는 과정을 이해하면 보다 심도 있는 적용이나 실험이 가능합니다
먼저 루팅이 전반적으로 어떠한 과정을 거쳐 이루어지는지를 설명하고 그 다음에 실제로 넘어가겠습니다. 원플러스 포럼의 한 사용자가 작성한 가이드를 참고하였습니다.
루팅 과정 개괄
루팅(rooting)이란 기기에 대한 최고 권한(root)을 갖게 만드는 걸 뜻합니다. 원래는 기기의 보호 등의 목적으로 잠겨있습니다. 이를 열고 루트 권한을 얻게 되면 아시다시피 다양한 설정 변경이 가능합니다. 루팅은 크게 다음의 세 단계로 진행됩니다:
- 부트로더 언락하기: 기기의 내부 메모리에 기록이 가능하도록 (원래는 닫혀있는) 빗장을 여는 단계입니다.
- 커스텀 리커버리 설치: 원래 안드로이드 시스템 자체에 있는 복구(리커버리) 프로그램을 다른 개발자들이 만든 것으로 교체합니다. 이렇게 해서 커스텀 롬을 내부에 설치하거나 내장 메모리나 캐시 등을 삭제(wipe)하는 등의 행위가 가능하게 됩니다.
- 루팅 (혹은 커스텀 롬 설치): 이제 커스텀 리커버리를 사용하여 본래는 기록을 못하게 잠겨있는 부분에 특정한 코드를 삽입하여 루트 권한을 얻습니다. 기본 롬 대신 커스텀 롬(CyanogenMod와 같은)의 설치를 원할 경우 이 단계에서 해도 됩니다. 루팅이 이미 된 커스텀 롬을 설치해야 (대부분의 커스텀 롬이 루팅이 이미 되어 있습니다) 커스텀 롬과 루팅의 효능을 동시에 누릴 수 있습니다.
준비물
명령창(command window)
도스 시절부터 컴퓨터를 쓰신 분들에겐 익숙한 창입니다. 대부분의 작업이 이 창에서 진행되기 때문에 필수적입니다. 보통 윈도우키+R을 눌러서 cmd라고 입력하는 것으로 실행시킵니다만 여기에는 한 가지 골치 아픈 점이 있습니다. 바로 원하는 폴더까지 가려면 cd 명령어로 폴더 패스(주소)를 지리하게 입력해야 한다는 것이죠.
보통의 경우, 아래에서 설명할 작업들은 다음과 같은 주소에서 이루어지게 됩니다:
C:\Users\사용자 이름\Downloads\android-sdk-windows\platform-tools
매번 이러한 주소를 입력해서 들어가는 건 골치 아픈 일이죠. 훨씬 간단한 방법이 있습니다. 탐색기 창에서 작업할 폴더에 마우스를 올려놓고 Shift 키를 누르고 오른쪽 클릭을 하면 ‘여기에 명령창 열기’라는 메뉴 항목이 보입니다. 이것을 선택하면 됩니다.
안드로이드 디버그 브릿지(ADB)
구글 공식 페이지에서 안드로이드 소프트웨어 개발자 키트(SDK)를 받거나 필요한 요소들만 모아놓은 슬림버전을 받을 수 있습니다. 공식 SDK의 용량이 상당히 크기는 한데 저는 공식 키트를 선호합니다.
공식 SDK를 받았을 경우, 압축을 풀고 해당 폴더에서 Manager.exe를 실행시킵니다. 설치할 프로그램을의 목록이 나옵니다. 매우 방대한 목록인데 우리에게 필요한 것은 단 네 가지 뿐입니다. Tools에서는 Android SDK Tools, Android SDK Platform-tools와 Extras에서 Android Support Library, Google USB Driver를 선택하여 설치합니다.
설치가 잘 되었는지를 확인하기 위해 platform-tools 폴더에서 명령창을 열고 다음과 같이 입력합니다:
adb version
만일 “Android Debug Bridge version ㅇㅇㅇㅇ”과 같은 메시지가 뜬다면 성공입니다. 안 뜨면 다시 설치를 해보세요.
커스텀 리커버리
커스텀 리커버리는 TWRP가 가장 유명합니다. 기기마다 맞는 버전의 TWRP가 있기 때문에 구글 검색을 통해 다운받아야 합니다.
SuperSU
SuperSU는 루팅용 바이너리 코드의 대표주자입니다. 여기서 다운받을 수 있습니다. 이건 기기를 타지 않아요.
기기 배터리 충전
최소한 절반 이상은 충전이 되어 있어야 작업 도중에 전원이 나가 소위 말하는 ‘벽돌’이 되는 불상사를 방지할 수 있습니다.
자료 백업
첫 번째 단계인 부트로드 언락에서 기기에 있던 자료는 모두 삭제됩니다. 앱, 설정, 심지어 내부 SD카드의 사진, 음악 등 모든 것이 삭제되기 때문에 그전에 중요한 자료는 미리 백업을 해두어야 합니다.
드라이버 설치
ADB용 범용 드라이버를 설치합니다. 이후 작업에서 컴퓨터는 기기를 안드로이드 폰이 아닌 ADB 기기로 인식하게 됩니다. 따라서 기존 폰 드라이버가 아닌 ADB 드라이버가 필요합니다.
커스텀 롬 (선택사항)
단순한 루팅이 아닌 CyanogenMod와 같은 커스텀 롬을 설치하려면 당연히 커스텀 롬이 있어야겠죠? 보통 .zip 파일로 되어 있습니다. 커스텀 롬을 설치할 경우 보통 롬에 더해서 구글 앱들을 모아놓은 GApps를 따로 받아야 합니다.
부트로더 언락하기
• 기기를 끕니다. 패스트부트(fastboot) 모드로 켭니다. 보통은 꺼진 상태에서 전원 버튼 + 볼륨 다운 (또는 업)을 길게 누르면 됩니다. 생소한 부팅 화면이 뜨면서 안드로이드 깡통 로봇이 누워있는 모습이 보일 겁니다.
• 기기를 USB로 컴퓨터에 연결합니다. 연결이 잘 되었는지 확인하기 위해 platform-tools 폴더에서 (당연한 것이므로 앞으로의 설명에서는 생략합니다) 명령창을 열고 다음의 명령어를 입력합니다:
fastboot devices
• 제대로 연결이 된 경우 위 명령어를 입력하면 기기의 시리얼 넘버가 뜹니다. 아무런 전시 결과가 없다면 연결이 제대로 되지 않은 것입니다. 기기 드라이버를 다시 확인해 보아야 합니다.
• 이제 부트로더를 언락하는 명령어를 입력합니다. 이 명령어를 입력하면 기기의 모든 정보가 사라집니다:
fastboot oem unlock
• 그 다음 재부팅을 시키기 위해 다음의 명령어를 입력합니다:
fastboot reboot
• 재부팅이 되고 나면 기기의 설정 메뉴로 들어가서 USB 디버그 모드를 활성화시켜야 합니다. 설정 > 기기 정보 > 빌드 넘버 부분을 7회 탭하면 개발자 옵션이 새로 설정 메뉴에 뜹니다. 다시 설정 > 개발자 옵션 > USB 디버깅을 체크합니다.
커스텀 리커버리 설치
• 다시 기기를 끄고 패스트부트 모드로 들어갑니다.
• 위에서 받은 커스텀 리커버리(TWRP) 파일(파일명 예: openrecovery-twrp-2.7.1.1-flo.img)을 platform-tools 폴더에 복사합니다.
• 명령창을 열고 다음의 명령어를 입력하여 커스텀 리커버리를 설치합니다:
fastboot flash recovery 파일명 (예: fastboot flash recovery openrecovery-twrp-2.7.1.1-flo.img)
여기서 만일 “Size too large” 같은 메시지가 뜨면서 제대로 설치가 되지 않는다면 엉뚱한 기기용의 커스텀 리커버리의 설치를 시도하고 있는 것일 수 있습니다. 저의 경우, 넥서스 7에 원플러스 원의 커스텀 리커버리를 깔려고 했더니 이런 메시지가 나오더군요.
• 설치가 끝나면 다시 재부팅을 합니다:
fastboot reboot (UPDATE: 몇몇 기기의 경우, 커스텀 리커버리를 플래쉬하고 나서 이 명령어로 리부팅을 하면 커스텀 리커버리가 제대로 설치가 안 되는 경우가 있습니다. 직접 버튼을 눌러서 리부팅하면 해결됩니다)
• 이제 리커버리 모드로 들어가 커스텀 리커버리를 실행시켜야 합니다. 넥서스와 같은 기기에서는 패스트부트 모드에서 볼륨 버튼 키를 사용하여 recovery를 선택하여 실행시킬 수 있습니다. 각각의 기기마다 이 방법은 다르기 때문에 직접 검색을 해보셔야 합니다. 예를 들어 원플러스 원의 경우에는 전원 버튼 + 볼륨 다운을 누르면 리커버리로 들어갑니다.
루팅 (혹은 커스텀 롬 설치)
크게 두 가지 경우로 나눌 수 있습니다. 기본 롬에 루팅만 하기, 또는 루팅이 된 커스텀 롬 얹기입니다. 아래의 과정에서 둘 중의 하나만 하시면 됩니다.
기본 롬에 루팅만 하기
• 위에서 받은 SuperSU를 platform-tools 폴더에 복사
• 리커버리 모드 진입
• 이 파일을 기기로 복사해야 합니다. 컴퓨터에서 명령창을 열어 다음의 명령어 입력:
adb push 파일이름 /sdcard/ (예: adb push UPDATE-SuperSU-v2.02.zip /sdcard/)
이 “adb push” 명령어는 기기의 내부 SD카드에 파일을 복사할 수 있습니다. 일반적으로 안드로이드 기기에 컴퓨터의 파일을 복사하는 방식으로도 얼마든지 복사할 수 있지만 앞서의 과정에서 내부 SD카드의 내용물이 삭제되기 때문에 이 방법을 씁니다. 명령어만 이해하면 기존 방식보다 더 빨리 처리가 가능합니다.
• 리커버리 모드에서 실행되고 있는 TWRP에서 Install을 선택, SuperSU-v2.02.zip 파일을 선택합니다.
• 아래에 확인을 위한 슬라이더가 뜹니다. 아이폰 잠금해제 하듯 스와이프하면 이제 설치를 시작하고 재부팅합니다.
• 끝!
루팅이 된 커스텀 롬 설치하기
• 이미 루팅이 된 커스텀 롬을 설치할 경우 SuperSU를 굳이 복사할 필요가 없습니다.
• 대신 기기에 해당 커스텀 롬을 복사해야겠죠? 해당 롬 .zip 파일을 platform-tools 폴더에 복사해 놓고 다음의 명령어를 입력합니다:
adb push 파일이름 /sdcard/ (예: adb push cm-11-20140825-NIGHTLY-flo.zip /sdcard/)
• 같은 방법으로 GApps도 복사합니다.
• 리커버리 모드로 들어가서 TWRP를 띄웁니다. Wipe > Factory Reset으로 스와이프합니다.
• Install을 선택하고 커스텀 롬 .zip 파일을 선택합니다. TWRP는 파일들을 최대 10개까지 연속으로 설치할 수 있습니다. GApps도 추가하고 설치를 진행하면 더 편합니다.
• 끝!
위의 방법을 사용하시면 웬만한 안드로이드 기기들은 모두 루팅 및 커스텀 롬 설치가 가능합니다. 저도 원플러스 원을 루팅하면서 자신이 생겨서 넥서스 7도 뚝딱 해치웠어요. 문의사항들은 댓글로 달아주세요. 제가 아는 범위 내에서 열심히 알려드리겠습니다.
[note note_color=”#f3f3ef”]삼성 갤럭시 시리즈는 부트로더 등의 구조가 일반적인 안드로이드 기기와 달라 위의 방식을 그대로 적용하기가 어렵습니다. 다른 갤럭시 유저인 Paul You님께서 갤럭시 S4의 루팅 튜토리얼 두 가지(링크1, 링크2)를 알려주셨습니다.[/note]
Leave a Reply