kyujin-cho / pixel-volte-patch
- пятница, 10 февраля 2023 г. в 00:35:53
Rootless replacement for persist.dbg.volte_avail_ovr patch
English version available here.
이 문서에서는 Android 내부 API 중 telephony.ICarrierConfigLoader.overrideConfig()
API를 이용하여 루팅 혹은 부트로더 변조 없이 LG U+ 회선에서의 VoLTE (IMS) 기능을 활성화 하는 법에 대해 설명합니다.
Shizuku 는 ADB 혹은 루트 권한으로 동작하는 서비스를 통하여 일반적인 경로로는 접근할 수 없는 시스템 API를 호출할 수 있도록 하는 서비스입니다. 이 방법을 사용하기 위해서는 시스템 API의 호출이 필요합니다.
adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh
Shizuku is running
Version <임의의 버전 번호>, adb
이 패치에 대해 문의할 사항이 있으시면 다음 기능을 활용해 주세요. 목적을 구분하지 않은 게시글 작성의 경우 삭제될 수 있습니다.
아니오. 지원 대상은 LG U+ 및 U+ 통신망을 사용하는 MVNO (알뜰폰) 으로 한정됩니다.
어플리케이션의 Home 페이지에서 IMS Status
항목이 Registered
이면 VoLTE가 성공적으로 활성화 된 것입니다.
더욱 상세한 정보가 필요할 경우, Pixel 단말기에 내장 제공되는 통신 정보 확인용 내부 어플리케이션을 이용할 수 있습니다.
*#*#4636#*#*
키를 차례대로 입력합니다.
IMS Registration: Registered
아니오.
확실하지 않습니다.
Android에서 VoLTE (IMS) 가 활성화 되기 위해서는 ImsManager.isVolteEnabledByPlatform(Context)
메서드가 true를 반환해야 합니다. 해당 메서드의 구현을 살펴보면 다음과 같습니다 (ref: googlesource.com).
persist.dbg.volte_avail_ovr
System Property가 true인지 확인 (기존의 setprop을 이용한 VoLTE 패치 방식)
대한민국에서 Tensor Chip을 탑재한 Pixel로 LG U+를 사용하려는 경우, 기기에서는 VoLTE를 지원하지만 통신사에서 자체 설정을 프로비전하지 않아 3번 "통신사에서 VoLTE 기능을 지원하는지 확인" 이 false로 처리되어 기기에서 IMS가 비활성화됩니다. LG U+의 경우에는 Pixel에 내장된 VoLTE 기능을 사용할 수 있지만 통신사의 추가적인 설정이 없어 VoLTE가 비활성화 되는 것이므로, 이 어플리케이션은 위에서 언급한 Shizuku와 CarrierConfigLoader
의 설정 강제 활성화 API를 조합하여 해당 설정을 강제로 true로 변경하여 시스템에서 VoLTE 활성화를 시도할 수 있도록 처리합니다.