하드웨어2020. 4. 19. 18:59

2018년 8월 폰을 처음 사고 카메라 성능에 절망해서 구글 카메라 설치하는 법을 줄곧 찾다가 부트로더 언록(폰 초기화 필요)이 필요하다고 해서 포기한 적이 있다.


근데 오늘 안드 10으로 업데이트(20-4-14 OTA) 후 그 사실을 그만 잊어버리고 부트로더를 언록해버렸다... 이상하게도 문자와 통화 내역이 8개월 정도 백업이 안 돼서 걔네는 날렸다...


기왕 했으니 기록 차원에서 방법을 적어둔다. 요약하면, 크게는 다음 글을 보고 따라 했지만, 개선(?)할 부분들이 좀 있다.

https://www.thecustomdroid.com/enable-camera2-api-xiaomi-mi-a2-lite-guide/



먼저 준비물들. 위 글에는 아직 안드 10 펌웨어(boot image)가 없는데, 공식 순정 롬은 다음 글 등을 참고해서 받을 수 있다.

https://t.me/MIUI11_Updates/1001


이걸 받으면 zip 안에 payload.bin이 있는데, 그건 payload_dumper를 이용하면 boot.img를 추출할 수 있다(깃허브 설명에는 protobuf 패키지만 설치하면 된다고 써 있으나 실행해보니 bs4diff도 필요하다고 해서 걔도 설치를 했다).

https://github.com/vm03/payload_dumper


그다음 안드로이드 SDK 플랫폼 도구(adb, fastboot 등)가 없다면 필요하다. 오늘 기준으로 공식 사이트에는 29.0.5까지만 있는데 구글링으로 나온 게 29.0.6이라 난 그걸 썼다.

https://developer.android.com/studio/releases/platform-tools


끝으로 magisk를 미리 폰에 설치해두자. apk 하나만 폰에 옮기고 설치하면 된다.

https://github.com/topjohnwu/Magisk



준비물이 준비됐다면,

1. 앞서 글 등을 참고해 부트로더를 언록한다. 폰이 초기화되니 데이터를 잘 백업해두자. PC에서 플랫폼 도구가 있는 폴더에서 다음 명령 사용.

adb reboot bootloader

fastboot oem unlock


2. 이제 재부팅하고 순정 boot.img를 폰으로 옮긴 다음 magisk로 그 파일을 패치한다. 그러면 magisk_patched.img 요런 파일이 생길 거임.


3. 그 파일을 다시 PC로 옮겨서 해당 부트로더로 부팅한다. 이게 임시로 루팅하는 방법의 핵심이다(혹시라도 루팅을 계속 유지하려면 boot 대신 flash boot를 쓰면 되지만... 그건 우리가 바라는 게 아니다).

fastboot boot magisk_patched.img

fastboot reboot


4. 폰을 재부팅하면 임시로 루팅된 상태다. 여기서 magisk를 실행하면 추가 설치가 일어난다. 재부팅하지 말 것.


5. 루팅된 상태니 구글 카메라를 사용하기 위한 Camera2 API 빌드프롭 수정을 해보자. 앞서 글에서는 루트 권한 때문에 termux 같은 앱을 깔라고 하지만, 굳이 그럴 필요는 없고 magisk의 설정에서 '셸'에 슈퍼유저 권한을 주면 된다(옛날에는 셸에서 루트 권한 없이도 빌드프롭 수정이 됐던 것 같은데 어쨌든 지금은 아니다). 그다음 adb로 셸에 들어가면 루트 권한으로 빌드프롭 수정이 가능하다.

adb shell

su -c "setprop persist.vendor.camera.HAL3.enabled 1"


6. 웹에는 빌드프롭 수정에 대해 여러 말이 많은데, 난 저 한 줄만 추가하는 걸로 충분하다고 결론을 냈다. eis 관련 항목을 추가해야 하나 고민했지만 A2 Lite는 기본적으로 eis가 켜져 있으니 추가할 필요 없고, 구글 카메라 포트에 따라 다를 수는 있겠지만 내가 설치한 포트는 잘 작동했으니 persist.vendor.camera.stats.test도 추가할 필요는 없을 듯하다.


과학적으로 Camera2 API가 활성화됐는지 확인하려면 빌드프롭 수정 전에 Camera2 API ProbeManual Camera Compatibility 같은 앱을 깔아서 실행해보자. 전자는 하드웨어 지원 수준이 LEGACY로 나오고, 후자는 모든 항목에 X가 뜰 것이다. 빌드프롭에 저거 한 줄을 추가한 다음 재부팅하고 다시 실행해보면 전자는 LEVEL_3으로 나오며, 후자는 모든 항목에 O가 뜬다.


7. 빌드프롭 수정 후 재부팅하면 빌드프롭은 수정됐으나 루팅은 풀린 상태다. magisk는 삭제하고, 다음 사이트에서 포트를 골라보자.

https://www.celsoazevedo.com/files/android/google-camera/


최근에는 안정화도 많이 된 모양이다. 난 그냥 제일 처음 떠 있는 게 최신이길래 DMGC_7.3.020_ver.4.3.apk를 받아서 설치했는데, 모든 기능이 아주 잘 작동했다.


순정 카메라는 걔대로 여전히 잘 작동했고, 오픈 카메라에서는 API를 Camera2 API로 변경이 가능했다.


앞서 글에서 부트로더 언록은 OTA에 영향을 미치지 않는다고 했고, 루팅된 상태도 아니니 다음 OTA는 아무 문제 없이 잘되리라 기대해본다. 혹시 안 되면 추후 업데이트.

-> 5월 말에 OTA 떴고 적용도 완료. 문제없다.






Posted by 필유