Android Custom ROM+GApps on Nexus 5X
*이 튜토리얼은 Nexus 5X, Android 6.0.1(MTC20K) 기준으로 Linux(Ubuntu 14.04)환경에서 작성되었습니다.
목차
- Download AOSP
- Extract vendor proprietary binary
- Build AOSP Bullhead ROM
- USB Debugging + Bootloader Unlock
- Flash built ROM
- Install GApps
1. Download AOSP
사실 여기는 공식홈에서 시키는대로 하면 된다.
여기서 android-6.0.1_r67
과 같은 브랜치 이름은 여기에서 확인할 수 있다.
2. Extract vendor proprietary binary
vendor.img
를 빌드하기 위해서 기기에 따른 파일들(driver, …)을 팩토리 이미지에서 뽑아내야 한다(자세한 이유는 해당 리포지토리의 Introduction을 읽어보자).
3. Build AOSP Bullhead ROM
이렇게 my_rom.zip
에 빌드한 롬을 저장할수 있다.
4. USB Debugging + Bootloader Unlock
Settings -> Developer options
에서 OEM unlocking
과 USB debugging
옵션을 켠다.
개발자 메뉴가 보이지 않는 경우
우선 Settings -> About phone
에 들어가서 맨 아래 Build number를 계속 터치한다.
터치를 하다보면 어느 순간 You're now a developer!
라는 메시지가 보일텐데,
다시 설정으로 돌아가면 Developer options
가 보일 것이다.
5. Flash built ROM
6.Install GApps
우선 GApps의 경우 Recovery에서 설치해야 하기 때문에 TWRP를 다운로드 및 플래시해야 한다.
그리고 리붓! 리붓하면서 볼륨업 키를 빠르게 눌러서 리커버리로 진입하거나, 아니면 그냥 정상부팅 이후 adb reboot recovery
를 이용해서 리커버리에 진입하도록 하자.
이어서 OpenGApps에서 ARM64용 Android 6.0 GApps PICO를 다운로드 받고, 기기에 올려서 바로 설치하고, 설치 이후 wipe cache
까지 하고 정상부팅을 하면 거의 끝.
Pico에 강조를 해둔 것은, 굳이 push도 오래걸리고 설치도 오래걸리는 Stock으로 실험하기보단 일단 Pico로 시행착오를 끝내길 바라는 의미입니다.
adb가 안된다면, 메인 메뉴 > mount > enable MTP
를 눌러 MTP를 활성화시키면 됩니다.
하지만 이후 정상부팅이 끝나면 약 5초 간격으로 Unfortunately, Google Play Service has stopped.
라고 끈질기게 에러가 날텐데, 직접 Settings -> Apps -> Google Play Service -> Permissions
에서 권한을 모두 켜주거나, 이 방법을 따라 쉘로 퍼미션을 주어도 된다(pm grant 커맨드가 상당히 느리므로 끝에 &를 붙여서 백그라운드에서 수행하기를 추천, 그리고 AOSP에는 기본적으로 bash
가 없을테니 그냥 adb shell 'sh /sdcard/fix_open_gapps_permissions.sh'
로 수행하면 된다).