SONY Xperia Z1 에 기본 Stock ROM 을 사용하고 있었습니다만, 쓰다보니 좋은 하드웨어에 좀 더 사용자의 입맛에 맞는 사용을 해 보겠다는 생각으로 여러가지 Custom ROM 을 사용해 보기로 하였습니다.
먼저 SONY 의 development site 에서 Boot loader 를 unlock 하도록 기기의 IMEI 값을 전달해서 Unlock code 를 얻어야 합니다. 단, boot loader 를 unlock 할 경우 의미가 있는지 모르는 warranty 가 해지된다고 하니 다시한번 생각해 봐야 합니다.
만약 이미 root 를 했을 경우 fastboot mode 로 진입해서 boot loader 와 통신중에 이미 root 권한을 가지고 있기 때문에 불가능 하다는 오류를 낸다면 https://talk.sonymobile.com/t5/Xperia-Z1-Z1s/Xperia-Z1-Bootloader-Unlock-Problem/td-p/584323 에 있는 내용을 참조 해야 합니다.
Okay, in the flashtool folder, check if
[FLASHTOOL FOLDER]/custom/mydevices/[DEVICE SERIAL]/ulcode.txt
exists.
If not, create the folders along the way there and then use notepad or something very lightweight to create the ulcode.txt. Put in the code, be sure to enter the code without the 0x, so just the code as it came from Sony. Save the file and start FlashTool.
Now the BLU button should offer to unlock again, but there is a difference: it will now use the serial and code to wipe the lock using the FT relock/unlock method. Without that file in place it will use the fastboot method.
위 설명대로 한다면, 먼저 폰을 USB 와 연결 하고 (이미 Debugging mode 가 켜져 있는 상태로), adb 로 기기의 시리얼 번호를 알아 내야 합니다. 또는 기기 정보에 나오는 기기 시리얼 번호를 적어 둡니다. 그런다음 Flashtool 의 하위 폴더에 다음 파일이 있는지 확인해야 합니다.
[FLASHTOOL FOLDER]/custom/mydevices/[DEVICE SERIAL]/ulcode.txt
만약 위 폴더나 파일 자체가 존재 하지 않는 다면, 아까 적어 둔 기기 시리얼 번호를 [DEVICE SERIAL] 이름 위치에 폴더를 만들고 그 안에 ulocde.txt 를 하나 만든 다음, 이 안에 SONY development site 에서 얻은 unlock 코드를 기록 합니다. 이때 fastboot 명령으로 입력하듯이 16진수 값을 의미하는 0x 를 붙여 쓰지 말고 pdf 파일 내에 있는 코드 자체만 복사 하여 붙여 넣은 다음 저장하고, Flashtool 로 BLU 기능을 사용하면 unlock 이 문제 없이 가능해 집니다.
이제 boot loader 를 unlock 한 상태라면 기기를 fastboot mode 로 부팅 후 (전원을 끄고, 볼륨키 윗부분 누른 상태에서 USB 전원만 연결) 기기인식이 완료 되면 다음 명력으로 bootloader 를 변경할 수 있게 됩니다.
fastboot flash boot [img 파일 이름]
별도로 img 파일만 구해서 flash 해도 되긴 하지만 이를 했을 경우 정상적으로 부팅이 되지 않는 경우가 많으니, 일반적으로 배포되는 Xperia Z1 용 ROM 이라 불리는 zip 파일 내에 boot.img 만을 추출 한 다음 fastboot 로 flash 해 주는 방법을 사용하는 것이 좋습니다. 그러면 아래 사진처럼 TWRP 나 CWM 등의 여러 recovery mod 로 진입이 가능하며, 이는 기기의 전원이 꺼진 상태에서 전원을 일단 켜고 상단 수화부 LCD 에 불이 들어 올 경우 볼륨키 위,아래를 모두 한번씩만 눌러 주면 진입하게 됩니다. (계속 누르고 있으면 진입이 안됨)
이때 부터 자주 사용하는 OMNIrom custom build 판을 구해 보기도 하고 했는데, 아쉽게도 Cyanogenmod 쪽 boot 이미지 말고는 모두 카메라 버그를 가지고 있어서 다른 기능은 모르겠지만 사진을 찍을수 없게 되는 문제가 있었습니다.
그래서 일반 OMNIrom custom build 를 사용한 것에 Cyanogenmod boot image 를 flash해서 구동엔 문제가 없도록도 해 봤지만 초기 카메라 인식 구동속도가 거의 30초 까지도 걸리는 문제를 발견하여 결국 Cyanogenmod 판을 구해서 올리게 되었습니다.
사용된 Cyanogenmod 는 Xperia Z1 (honami) 의 2014년 11월 12일 Snapshot 이며, 현재 지속적으로 사용중이지만 특별한 버그 사항은 없는 상태 입니다. 만약 기기에 이를 설치 하려면 Cyanogenmod 에서 배포하는 zip 과, google apps 가 들어 있는 zip, supersu 가 들어 있는 zip 등을 구해서 TWRP 나 CWM 등에서 같이 올려 주어야 합니다.
올려 주는 방식은 먼저 Data 영역을 swipe 한 다음 (모든 자료가 날아 감), Cyanogenmod 를 설치 하고 그다음 google apps 나 supersu 를 설치 한 다음 재부팅 하면 됩니다.
Cyanmogenmod 의 경우는 OMNIrom 과 달리 하단 Softkey 영역이라 불리는 NavBar 영역 조정이 자체 조절 되지 않는 문제가 있습니다. 이것 때문에 OMNIrom 을 선호 하는데, 아쉽게도 OMNIrom 의 경우는 reference 기기나 삼성쪽이 대부분 올라오는 관계로 듣보잡인 SONY Xperia Z1 은 존재 하지 않았습니다.
만약 NavBar 를 설정 하고 싶다면 XDA 에서 배포중인 Xposed framework 설치용 apk 를 구한 다음, 동일하게 XDA 에서 배포중인 Gravity box 를 함께 설치후, Xposed framework 에 적용, 설정을 통해 NavBar (Navigation bar) 영역 크기를 조정하여 상단영역과 동일한 크기로 실제 표시영역을 키울 수 있습니다.
물론 Cyanogenmod 는 Immersive mode 를 지원 하므로 상단바와 NavBar 영역 모두 숨김이 가능하고, Gravity box 를 통해 Pie control 등도 가능합니다.
제조사의 Stock ROM 으로 꾸준하게 사용해 볼까 해 봤지만 reference 기기들이나 Custom ROM 들에서 제공되는 기능들에 한번 맛 들여 놓으면 어려운 부분임을 다시금 느껴 봅니다.
물론 위 방법을 사용하면 supersu 를 통해 root 된 기기 이므로 대한민국 만 적용되는 금융권 어플을 사용할수 없게 됩니다.