안드로이드 스마트폰, 리눅스에서 루팅하기(How to root android smart phone in No1.Linux) |
1. 개 요
새로운 스마트폰으로 교체하였을 때 기존에 쓰던 스마트폰을 휴대폰이 아닌 다른 용도로 사용하고자 할 경우 루팅(rooting)이 필요로 할 때가 있습니다. 필자의 경우 스마트폰을 루팅할 때 윈도에서 주로 하곤 했는데, 대부분 루팅 과정들이 윈도 환경에 맞쳐 기술되어 있고 그 방법을 그대로 따라하다보니 윈도를 어쩔 수 없이 쓰게 되었지만, 윈도는 아들 녀석이 매일 게임을 하다보니 제가 윈도 환경을 쓸 수 있는 환경이 제약되어 있고, 그 넘의 눈치와 구박(?)에서 해방하기 위해서 리눅스 환경에서 루팅하게 되었습니다.
필자가 스마트폰을 새로 구입하게 되어 기존에 쓰던 휴대폰이 남아 돌아 이를 차량 내비로 활용하기 위해서 조작하다가 루팅이 필요한 부분이 있어서 넘버원 리눅스에서 루팅하게 되어 그 방법에 대해서 기술하고자 합니다. 필자가 넘버원 리눅스만 사용하다보니 모든 강좌나 팁들은 넘버원 리눅스에 국한되어 있지만, 이 강좌는 넘버원 리눅스뿐만 아니라 모든 리눅스에서도 공통적으로 적용될 수 있는 내용이므로, 리눅스에서 안드로이드 스마트폰 루팅에 관심이 있는 사용자들에게 많은 도움이 되기 바랍니다.
이 글에서는 루팅하는 방법만 기술되므로, 루팅하기 위한 제반사항이나 루팅후 차량 내비로 활용하는 방법에 대해서는 구글이나 네이버 검색등을 참고하기 바라며, 루팅 프로그램으로 윈도에서 주로 사용하는 오딘(Odin)를 사용할 수 있지만, 이 글에서는 헤임달(Heimdall)의 사용 방법에 대해서 다룹니다. 리눅스용 오딘에 대해서는 기회가 되면 따로 설명하지요.
2. 루팅 준비물
- Heimdall-frontend (PCLinuxOS Repository에서 시냅틱으로 설치할 수 있음)
- CF-Auto-Root (https://autoroot.chainfire.eu/ 또는 http://firmware.mobi 사이트에서 해당기기를 검색하여 다운로드)
- 순정 펌웨어(상기 사이트에서 다운로드, 루팅 해제시 필요)
3. 루팅 과정
* 루팅 하기 전에 스마트폰의 설정 가운데에서 개발자 옵션에서 OEM 잠금해제와 USB 디버깅 두 옵션을 활성화시켜 놓아야 하는데, 자세한 것은 구글 검색을 참고하기 바랍니다.
STEP1. 시냅틱을 실행하여 Heimdall-frontend를 검색하여 이 패키지를 설치합니다. 또는 다음과 같이 콘솔에서 apt-get으로 설치하면 됩니다.
[root@localhost ~]# apt-get install heimdall-frontend
STEP2. http://firmware.mobi 사이트에 접속하여 스마트폰 모델명을 입력하여 [Summit]를 클릭하여 해당기기의 CF-Auto-Root 파일을 다운로드합니다. 필자의 스마트폰(갤럭시 A8은 이 사이트에서 다운로드한 펌웨어로는 루팅이 되질 않아 https://autoroot.chainfire.eu/ 사이트에 있는 이미지를 이용하였습니다)
STEP3. 펌웨어를 다운로드한 후에는 헤임달 프론트엔드를 실행합니다. 헤임달은 콘솔용이고, 헤임달 프론트엔드는 GUI용입니다.
[K 런처메뉴(시작메뉴) -> 개발 -> Heimdall]
STEP4. 스마트폰을 종료한 후에 다운로드 모드(Download Mode) 키조합을 눌러 Download mode로 부팅합니다. 스마트폰 기종에 따라서 다르므로, 구글 검색을 통하여 확인하기 바랍니다. 참고로 삼성 스마트폰은 불륨 다운+ 전원키 또는 볼륨다운+전원키+홈 키를 사용하면 되는데, 경고창이 뜰 때 안내 메시지 대로 볼륨 업키를 눌러 주면 Download mode로 진입하게 됩니다.
STEP5. 리눅스 컴퓨터와 스마트폰을 USB 케이블로 연결합니다.
STEP6. 헤임달 프론트엔드에서 [Utilities] 탭을 클릭하여 [Detect Device] 항목에서 [Detect] 버튼을 클릭합니다. 그러면 [Device Detected]가 체크되면서 활성화됩니다.
STEP7. [Download PIT] 항목에서 [Save As...]를 클릭하여 스마프폰에서 다운로드할 pit 파일 위치와 파일명을 지정합니다. 필자는 Downloads 경로에 해당 기기의 모델명으로 pit 파일명을 지정해 주었습니다. PIT 파일명을 지정한 후에 [Download] 버튼을 클릭합니다.
정상적으로 다운로드되면 상기 그림과 같이 PIT file download successful 메시지가 보여질 것입니다.
STEP8. [Flash] 탭을 클릭하여 [Options] 항목에서 [Browse] 버튼을 클릭하여 앞서 다운로드한 PIT 파일을 선택하여 불러옵니다.
STEP9. 스텝2에서 다운로드한 CF-Auto-Root 파일의 압축을 풀어 image 경로로 이동합니다. 그러면 image.tar.md5 파일이 보입니다. 이를 tar로 아카이브를 다음과 같이 해제합니다. 만일 https://autoroot.chainfire.eu/ 사이트에서 다운로드한 이미지 파일의 경우에는 하위디렉토리없이 파일들이 바로 추출되는데, *.tar.md5 파일을 tar로 직접 풀면 됩니다.
[root@localhost Downloads]# cd image/
[root@localhost image]# tar xvfx image.tar.md5
recovery.img
cache.img
STEP10. 헤임달 프론트엔드로 되돌아와서 [Partitions (Files)] 항목에서 [Add] 버튼을 클릭합니다. 그러면 BOOTLOADER가 추가되는데, [Partition Details] 항목의 Partition Name 차림메뉴에서 [CACHE]를 선택해 주면 BOOTLOADER가 CACHE로 변경됩니다. [Browse]버튼을 클릭하여 앞서 image.tar.md5 아카이브를 해제하여 나온 cache.img 파일을 선택하여 불러옵니다.
STEP11. [Partitions] 항목의 [Add] 버튼을 클릭하여 앞 단계와 동일한 방법으로 RECOVERY를 추가하고 RECOVERY 이미지 파일을 불러와 선택합니다.
STEP12. [Session] 항목에서 [No Reboot] 옵션을 체크한 후 [Start] 버튼을 클릭하여 루팅을 합니다.
이미지 파일들이 스마트폰쪽으로 전송되는 과정이 나타납니다. 이미지가 스마트폰으로 전송이 완료되면 Flash completed successfully! 라는 메시지가 나타납니다. 만일 이 과정에서 이미지 전송이 되지 않는다면 스마트폰을 껐다가 다시 다운로드 모드로 진입하여 [Utilities] 탭의 [Detect Devices]에서 [Detect] 버튼을 클릭하여 연결을 한 후에 다시 이미지를 올려 보면 됩니다.
STEP13. 앞 서 No Reboot 옵션을 체크해 놓았기 때문에 완료된 후에 자동으로 리붓이 되지 않습니다. Download 모드로 진입하는 키를 눌러서 다시 부팅을 합니다. 스마트폰이 재부팅될 때 루팅되는 과정이 진행됩니다. 루팅이 완료되면 다시 리부팅되면서 정상적으로 스마트폰이 부팅됩니다.
STEP14. 스마트폰이 부팅되면 구글플레이를 실행하여 SuperSu 앱을 설치합니다.
STEP15. 리눅스 콘솔창을 열어 adb shell 명령을 실행하여 스마트폰 쉘에 접속한 후 su 명령을 실행하여 루트 권한을 갖는지를 확인하여 루팅이 완벽하게 되었는지를 확인합니다.