많은 사람들이 아이폰 대신 안드로이드 폰을 선호하는 가장 큰 이유 중 하나는 구글이 안드로이드 코드의 상당 부분을 자유롭게 공개하기 때문입니다. 덕분에 다른 개발자들은 우리가 싫어하는 요소는 빼고, 원하는 기능은 더 담은 나만의 안드로이드 버전을 만들 수 있습니다.
하지만 기기를 처음 구매할 때 경험하게 되는 것은 이런 안드로이드가 아닙니다. 원하는 환경을 직접 만들려면 폰의 부트로더를 잠금 해제하고 커스텀 ROM을 플래싱하는 과정을 스스로 밟아야 합니다.
이는 상당히 기술적인 작업으로, 모든 사람에게 적합하지 않다는 표현이 과장이 아닙니다. 필자는 오랫동안 안드로이드 관련 글을 써왔지만, 여전히 이 과정은 인내심 시험이라고 느낍니다. 모든 것이 잘못될 수 있는 지점이 너무 많고, 실제로도 자주 문제가 발생합니다.
여기서는 안드로이드 ROM을 플래싱할 때 마주칠 수 있는 주요 어려움들을 소개합니다.
1. ADB와 Fastboot 설치
PC에서 운영체제를 교체해 본 경험이 있다면 리눅스 설치 과정이 익숙할 것입니다. CD나 USB에 리눅스를 담고, 컴퓨터를 재부팅한 뒤, 부팅 시 특정 키를 눌러 하드 드라이브의 OS 대신 새 OS를 불러오는 방식입니다.
안드로이드에서의 과정은 훨씬 복잡합니다. 폰이나 태블릿만으로는 해결할 수 없고, 컴퓨터가 반드시 필요하며, 거기에 전용 소프트웨어를 내려받아야 합니다.
필요한 것은 바로 ADB(Android Debug Bridge)입니다. 이 도구 모음에는 Fastboot라는 프로그램이 포함되어 있습니다. ADB는 폰이 켜져 있을 때 통신하고, Fastboot는 이름 그대로 "Fastboot 모드"라는 특수 모드로 재부팅했을 때 통신합니다. 두 도구 모두 USB 케이블을 통해 연결됩니다.
ADB 설치 자체는 비교적 간단합니다. 구글 안드로이드 개발자 사이트에서 사용 중인 운영체제에 맞는 버전을 내려받으면 됩니다. ADB는 Windows, macOS, Linux를 모두 지원합니다.
문제점은?
ADB와 Fastboot는 모두 명령줄(CLI) 도구입니다. 앱을 열고 버튼을 클릭하는 방식이 아니라, 명령 프롬프트나 터미널을 열고 직접 명령어를 입력해야 합니다.
명령줄 사용 자체가 나쁜 것은 아니지만, 작업에 필요한 기술적 지식의 수준을 한 단계 끌어올립니다. PC의 OS 교체에는 명령줄이 필요 없지만, 폰의 OS 교체에는 필요하니까요.
게다가 ADB와 Fastboot는 컴퓨터에 기본 포함되어 있지 않기 때문에, 설치된 위치를 명령줄에 직접 지정해야 합니다. 그렇지 않으면 입력한 명령에 대해 PC가 제대로 반응하지 못합니다. 경우에 따라 관리자 권한으로 명령을 실행해야 할 수도 있습니다.
참고: 이런 번거로운 작업을 대신 처리해 주는 서드파티 도구들도 있습니다. 다만 이런 프로그램은 구글이나 스마트폰 제조사에서 제공하는 것이 아니며, 필자 역시 이런 방식을 안내하는 커스텀 ROM을 접해본 적은 없습니다. 관련 경험이 있다면 댓글로 공유해 주세요.
2. 드라이버 설치
컴퓨터에 연결하는 기기는 두 하드웨어가 서로 통신하는 방법을 알려주는 특별한 소프트웨어, 즉 드라이버가 필요합니다. Windows, macOS, Linux는 드라이버를 다루는 방식이 다릅니다. macOS와 Linux는 많은 드라이버가 OS에 내장되어 있는 반면, Windows는 앱처럼 드라이버를 별도로 내려받아 설치해야 하는 경우가 많습니다.
문제점은?
드라이버 문제인지 파악하기가 어렵습니다. ADB나 Fastboot 모두 문제를 직접 알려주지 않습니다. 다만 명령을 입력했는데 아무 일도 일어나지 않는다면 드라이버 문제일 가능성이 높습니다.
드라이버 문제는 해결하기 까다로울 수 있습니다. 최근 커스텀 ROM을 설치했을 때, ADB는 내 기기를 잘 인식했습니다. Fastboot 모드로 재부팅했을 때도 Fastboot가 기기를 인식했습니다.
그런데 막상 Fastboot 명령을 입력하면 아무 반응이 없었습니다. Fastboot가 기기를 '보고' 있었지만, 폰에 어떤 동작도 지시할 수 없었던 것입니다. 대부분의 온라인 가이드는 "Fastboot가 기기를 인식한다면 드라이버는 정상"이라고 말합니다. 결국 문제의 원인이 드라이버였음을 확인하기까지 얼마나 답답했는지 짐작할 수 있을 겁니다.
온라인 안내 자료들은 대체로 macOS나 Linux에서 ADB를 쓰는 편이 Windows보다 쉽다고 말합니다. 하지만 필자는 매번 Windows 환경에서 작업을 마쳐야 했습니다. Linux에 폰과 통신할 드라이버가 있음에도 이유를 알 수 없이 ADB와 Fastboot에 문제가 생겼고, Windows용 드라이버를 설치하면 잘 작동했습니다. (Mac은 사용해 보지 못했습니다.)
3. 부트로더 잠금 해제
부트로더는 폰이 어떤 운영체제를 부팅할지 결정하는 부분입니다. 기본적으로 부트로더는 제조사가 제공한 OS만 시작하도록 설정되어 있으며, 잠긴 상태로 출고됩니다.
커스텀 ROM을 설치한다는 것은 폰에 다른 OS를 불러오라는 명령을 내리는 것이므로, 그 전에 반드시 부트로더를 잠금 해제해야 합니다.
문제점은?
모든 안드로이드 폰의 부트로더가 잠금 해제 가능한 것은 아닙니다. 많은 기기—어쩌면 대부분—가 그렇지 않습니다. 잠금 해제가 가능한 기기 중에서도 어떤 모델을 구매하느냐에 따라 결과가 달라집니다. 가장 안전한 선택은 통신사 잠금 없는(자급제) 버전을 구입하는 것입니다.
통신사 판매 모델은 운에 맡기는 영역입니다. 미국 기준으로 AT&T와 T-Mobile의 GSM 모델이 Sprint와 Verizon의 CDMA 기기보다 지원 가능성이 높지만, 이것이 절대적인 법칙은 아닙니다.
구글 폰이 가장 확실한 선택입니다. Pixel 기기와 그 이전의 Nexus 라인업은 비교적 쉽게 잠금 해제할 수 있습니다. 소니(Sony)도 좋은 선택지입니다. 잠금 해제 방법을 공식적으로 안내하고, 소스 코드를 공개하며, 많은 기기에 필요한 드라이버까지 제공합니다.
부트로더 잠금 해제 절차는 제조사마다 다릅니다. 구글 폰이라면 올바른 명령어 하나면 충분합니다. 다른 브랜드는 명령어와 함께 입력할 잠금 해제 코드를 신청해야 할 수 있습니다. 신청은 보통 웹사이트를 통해 진행되며, 대개 즉시 응답받지만 항상 그런 것은 아닙니다.
4. 커스텀 리커버리 사용
부트로더 잠금을 해제했다면 이제 본격적으로 커스텀 ROM을 설치할 차례입니다.
대부분의 스마트폰에는 리커버리(recovery)라는 기능이 탑재되어 있습니다. 손상된 OS를 복구하기 위해 진입하는 영역으로, 여기서 기기를 초기화해 공장 출하 상태로 되돌릴 수 있습니다.
커스텀 리커버리는 더 많은 옵션을 제공합니다. 폰의 모든 소프트웨어를 완전히 백업해 현재 상태 그대로 복원할 수 있고, 기존 OS를 지우고 새 OS를 설치하는 플래싱(flashing) 작업도 가능합니다.
문제점은?
모든 폰에 커스텀 리커버리가 존재하는 것은 아닙니다. 다만 기기에 커스텀 ROM 지원이 있다면 호환되는 커스텀 리커버리도 있을 가능성이 높습니다.
기기에 따라 커스텀 리커버리를 설치하지 못할 수도 있습니다. 그런 경우에는 기존 리커버리를 지우지 않고 일시적으로 커스텀 리커버리를 부팅하는 방법을 찾아보세요.
커스텀 리커버리 설치나 부팅에 어려움을 겪고 있다면, 십중팔구 드라이버 문제일 가능성이 큽니다.
그럼, 커스텀 ROM은?
커스텀 리커버리가 정상적으로 돌아가기 시작하면 이후 과정은 꽤 단순해집니다. 오류 가능성은 여전히 있지만 빈도는 줄어들고, 고비의 대부분은 이미 넘긴 셈입니다.
다행히 위의 단계들은 대개 한 번만 거치면 됩니다. 커스텀 리커버리를 설치했다면 이후 새 OS를 플래싱할 때 PC가 필요 없습니다. 다만 리커버리를 일시적으로 부팅하는 방식을 써야 했다면, 컴퓨터에 ADB와 Fastboot를 계속 준비해 두어야 합니다.
어떤 커스텀 ROM은 바위처럼 안정적이지만, 어떤 것은 버그 투성이입니다. 따라서 상황에 따라 아직 안심하기는 이르며, 커스텀 ROM이 애쓸 가치가 없다고 판단할 수도 있습니다.