X6833B: Configure MediaTek IMS stack

* Import required system IMS blobs from XOS X6833B-H894DEFGHI-T-GL-231102V2897.
* Set the default IMS implementation to com.mediatek.ims via overlay.
* Force enable IMS features via overlay and sysprops.
* Add MediaTek framework jars to bootjars.
* Copy priv-app permissions for MediaTek IMS.

Change-Id: Ie258bff336586919a1127c3f7241e3ef9d689dd5
Signed-off-by: bengris32 <bengris32@protonmail.ch>
Signed-off-by: dodyirawan85 <40514988+dodyirawan85@users.noreply.github.com>
This commit is contained in:
bengris32 2023-07-24 18:27:29 +01:00 committed by dodyirawan85
parent 02258efb1e
commit dcbc47dc22
8 changed files with 143 additions and 1 deletions

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<privapp-permissions package="com.mediatek.ims">
<permission name="android.permission.READ_PRECISE_PHONE_STATE"/>
<permission name="android.permission.PACKET_KEEPALIVE_OFFLOAD"/>
<permission name="android.permission.CHANGE_WIFI_STATE"/>
<permission name="android.permission.NETWORK_SIGNAL_STRENGTH_WAKEUP"/>
<permission name="android.permission.MODIFY_PHONE_STATE"/>
<permission name="android.permission.UPDATE_DEVICE_STATS"/>
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.LOCATION_BYPASS"/>
</privapp-permissions>
</permissions>

View file

@ -1,2 +1,7 @@
# Charger
ro.charger.enable_suspend=true
# IMS
persist.dbg.volte_avail_ovr=1
persist.dbg.vt_avail_ovr=1
persist.dbg.wfc_avail_ovr=1

View file

@ -140,6 +140,19 @@ PRODUCT_PACKAGES += \
libhidltransport.vendor \
libhwbinder.vendor
# IMS
PRODUCT_BOOT_JARS += \
mediatek-common \
mediatek-framework \
mediatek-ims-base \
mediatek-ims-common \
mediatek-telecom-common \
mediatek-telephony-base \
mediatek-telephony-common
PRODUCT_COPY_FILES += \
$(LOCAL_PATH)/configs/privapp-permissions-com.mediatek.ims.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/permissions/privapp-permissions-com.mediatek.ims.xml
# Init files
PRODUCT_PACKAGES += \
fstab.mt6789 \
@ -216,7 +229,8 @@ PRODUCT_COPY_FILES += \
# Overlays
PRODUCT_PACKAGES += \
FrameworksResOverlay \
SettingsResOverlay
SettingsResOverlay \
TelephonyOverlay
# Permissions
PRODUCT_COPY_FILES += \

View file

@ -308,4 +308,30 @@
<!-- Whether device supports double tap to wake -->
<bool name="config_supportDoubleTapWake">true</bool>
<!-- Boolean indicating USSD over IMS is allowed.
If it is not supported due to modem limitations, USSD send over the CS pipe instead.-->
<bool name="config_allow_ussd_over_ims">true</bool>
<!-- Flag specifying whether WFC over IMS is available on device -->
<bool name="config_device_wfc_ims_available">true</bool>
<!-- Flag specifying whether WFC over IMS should be available for carrier: independent of
carrier provisioning. If false: hard disabled. If true: then depends on carrier
provisioning, availability etc -->
<bool name="config_carrier_wfc_ims_available">true</bool>
<!-- Flag specifying whether VoLTE is available on device -->
<bool name="config_device_volte_available">true</bool>
<!-- Flag specifying whether VoLTE should be available for carrier: independent of
carrier provisioning. If false: hard disabled. If true: then depends on carrier
provisioning, availability etc -->
<bool name="config_carrier_volte_available">true</bool>
<!-- Flag specifying whether VoLTE TTY is supported -->
<bool name="config_carrier_volte_tty_supported">true</bool>
<!-- Flag specifying whether VT is available on device -->
<bool name="config_device_vt_available">true</bool>
</resources>

View file

@ -0,0 +1,12 @@
//
// Copyright (C) 2023 The LineageOS Project
//
// SPDX-License-Identifier: Apache-2.0
//
runtime_resource_overlay {
name: "TelephonyOverlay",
sdk_version: "current",
product_specific: true,
resource_dirs: ["res"]
}

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2023 The LineageOS Project
SPDX-License-Identifier: Apache-2.0
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.telephony.overlay">
<application android:hasCode="false" />
<overlay
android:targetPackage="com.android.phone"
android:isStatic="true"
android:priority="1"/>
</manifest>

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- NOTE: Many variables that used to be in this file have been migrated to
CarrierConfigManager.java. Please consider whether new variables belong
there before adding to this file. Variables here should be more closely
related to devices than to networks. -->
<!-- Phone app resources that may need to be customized
for different hardware or product builds. -->
<resources>
<!-- String indicating the package name of the device ImsService implementation for MMTEL. -->
<string name="config_ims_mmtel_package">com.mediatek.ims</string>
<!-- String indicating the package name of the device ImsService implementation for RCS. -->
<string name="config_ims_rcs_package">com.mediatek.ims</string>
</resources>

View file

@ -693,6 +693,37 @@ vendor/lib64/mt6789/libmnl.so
vendor/lib64/librpc.so
vendor/lib64/libviagpsrpc.so
# IMS
bin/vtservice
etc/init/init.vtservice.rc
framework/mediatek-common.jar
framework/mediatek-framework.jar
framework/mediatek-ims-base.jar
framework/mediatek-ims-common.jar
framework/mediatek-ims-extension-plugin.jar
framework/mediatek-telecom-common.jar
framework/mediatek-telephony-base.jar
framework/mediatek-telephony-common.jar
framework/mediatek-wfo-legacy.jar
lib64/libcomutils.so
lib64/libimsma.so
lib64/libimsma_adapt.so
lib64/libimsma_rtp.so
lib64/libimsma_socketwrapper.so
lib64/libmtk_vt_service.so
lib64/libmtk_vt_wrapper.so
lib64/libmtkperf_client.so
lib64/libsignal.so
lib64/libsink.so
lib64/libsource.so
lib64/libvcodec_cap.so
lib64/libvcodec_capenc.so
lib64/libvsim-adaptor-client.so
lib64/libvt_avsync.so
priv-app/ImsService/ImsService.apk
system_ext/lib/vendor.mediatek.hardware.videotelephony@1.0.so
system_ext/lib64/vendor.mediatek.hardware.videotelephony@1.0.so
# Keymaster
vendor/bin/hw/vendor.mediatek.hardware.keymaster_attestation@1.1-service
vendor/bin/kmsetkey_ca.trustonic