diff --git a/extract-files.sh b/extract-files.sh index c32f73d..9a59212 100755 --- a/extract-files.sh +++ b/extract-files.sh @@ -73,6 +73,9 @@ function blob_fixup() { [ "$2" = "" ] && return 0 sed -i "s#/system/#/system_ext/#" "${2}" ;; + system_ext/priv-app/ims/ims.apk) + apktool_patch "${2}" "$MY_DIR/ims-patches" + ;; vendor/etc/vintf/manifest/vendor.dolby.media.c2@1.0-service.xml) [ "$2" = "" ] && return 0 sed -ni '/default.*fqname/!p' "${2}" diff --git a/ims-patches/0001-ImsConfigImpl-Return-0-in-getWfcMDN-in-any-case.patch b/ims-patches/0001-ImsConfigImpl-Return-0-in-getWfcMDN-in-any-case.patch new file mode 100644 index 0000000..a30b78a --- /dev/null +++ b/ims-patches/0001-ImsConfigImpl-Return-0-in-getWfcMDN-in-any-case.patch @@ -0,0 +1,35 @@ +From cfd224560c7d76c9bc219eb2c12b099e1537956c Mon Sep 17 00:00:00 2001 +From: Erfan Abdi +Date: Sun, 26 Jan 2020 20:23:44 +0330 +Subject: [PATCH 1/3] ImsConfigImpl: Return 0 in getWfcMDN in any case + +--- + smali/org/codeaurora/ims/ImsConfigImpl.smali | 14 -------------- + 1 file changed, 14 deletions(-) + +diff --git a/smali/org/codeaurora/ims/ImsConfigImpl.smali b/smali/org/codeaurora/ims/ImsConfigImpl.smali +index 8daf3342..b2ab6538 100644 +--- a/smali/org/codeaurora/ims/ImsConfigImpl.smali ++++ b/smali/org/codeaurora/ims/ImsConfigImpl.smali +@@ -1385,22 +1385,8 @@ + .param p1, "subid" # I + + .line 814 +- iget-object v0, p0, Lorg/codeaurora/ims/ImsConfigImpl;->mContext:Landroid/content/Context; +- +- const-string v1, "wfc_ims_mdn" +- +- invoke-static {p1, v1, v0}, Landroid/telephony/SubscriptionManager;->getSubscriptionProperty(ILjava/lang/String;Landroid/content/Context;)Ljava/lang/String; +- +- move-result-object v0 +- +- .line 816 +- .local v0, "mdn":Ljava/lang/String; +- if-nez v0, :cond_0 +- + const-string v0, "0" + +- .line 817 +- :cond_0 + return-object v0 + .end method diff --git a/ims-patches/0002-ImsConfigImpl-don-t-call-setSubscriptionProperty-for.patch b/ims-patches/0002-ImsConfigImpl-don-t-call-setSubscriptionProperty-for.patch new file mode 100644 index 0000000..43a706d --- /dev/null +++ b/ims-patches/0002-ImsConfigImpl-don-t-call-setSubscriptionProperty-for.patch @@ -0,0 +1,91 @@ +From ab173b9875550f2462b8ed80ada0dff9bd2804d0 Mon Sep 17 00:00:00 2001 +From: Vachounet +Date: Wed, 27 Jan 2021 23:28:48 +0100 +Subject: [PATCH 2/3] ImsConfigImpl: don't call setSubscriptionProperty for + wfc_ims_mdn + +--- + smali/org/codeaurora/ims/ImsConfigImpl.smali | 70 -------------------- + 1 file changed, 70 deletions(-) + +diff --git a/smali/org/codeaurora/ims/ImsConfigImpl.smali b/smali/org/codeaurora/ims/ImsConfigImpl.smali +index c921038c..c38fe206 100644 +--- a/smali/org/codeaurora/ims/ImsConfigImpl.smali ++++ b/smali/org/codeaurora/ims/ImsConfigImpl.smali +@@ -3070,76 +3070,6 @@ + + .line 790 + :cond_2 +- if-ne p1, v2, :cond_3 +- +- .line 791 +- new-instance v0, Ljava/lang/StringBuilder; +- +- invoke-direct {v0}, Ljava/lang/StringBuilder;->()V +- +- const-string v1, "setProvisionedStringValue WIFI_MDN set db value=" +- +- invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; +- +- move-result-object v0 +- +- invoke-static {p2}, Lcom/qualcomm/ims/utils/Log;->pii(Ljava/lang/Object;)Ljava/lang/String; +- +- move-result-object v1 +- +- invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; +- +- move-result-object v0 +- +- invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; +- +- move-result-object v0 +- +- invoke-static {p0, v0}, Lcom/qualcomm/ims/utils/Log;->i(Ljava/lang/Object;Ljava/lang/String;)V +- +- .line 795 +- :try_start_0 +- iget v0, p0, Lorg/codeaurora/ims/ImsConfigImpl;->mSubId:I +- +- const-string v1, "wfc_ims_mdn" +- +- invoke-static {v0, v1, p2}, Landroid/telephony/SubscriptionManager;->setSubscriptionProperty(ILjava/lang/String;Ljava/lang/String;)V +- :try_end_0 +- .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 +- +- .line 799 +- goto :goto_1 +- +- .line 797 +- :catch_0 +- move-exception v0 +- +- .line 798 +- .local v0, "e":Ljava/lang/Exception; +- new-instance v1, Ljava/lang/StringBuilder; +- +- invoke-direct {v1}, Ljava/lang/StringBuilder;->()V +- +- const-string v2, "setSubscriptionProperty fail, e=" +- +- invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; +- +- move-result-object v1 +- +- invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; +- +- move-result-object v1 +- +- invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; +- +- move-result-object v1 +- +- invoke-static {p0, v1}, Lcom/qualcomm/ims/utils/Log;->e(Ljava/lang/Object;Ljava/lang/String;)V +- +- .line 803 +- .end local v0 # "e":Ljava/lang/Exception; +- :cond_3 +- :goto_1 + const/16 v3, 0x2c + + const/4 v5, 0x1 diff --git a/ims-patches/0003-ims-remove-uses-library-for-moto-ims-ext.patch b/ims-patches/0003-ims-remove-uses-library-for-moto-ims-ext.patch new file mode 100644 index 0000000..64fffe3 --- /dev/null +++ b/ims-patches/0003-ims-remove-uses-library-for-moto-ims-ext.patch @@ -0,0 +1,30 @@ +From cadd5ec3e6f097bd5619e22bf827fb685e38c1d2 Mon Sep 17 00:00:00 2001 +From: Andrew Hexen +Date: Thu, 25 May 2023 11:51:44 -0700 +Subject: [PATCH 3/3] ims: remove uses-library for moto-ims-ext + +* This was added in 13 which breaks ims: +'java.lang.ClassNotFoundException org/codeaurora/ims/utils/QtiCarrierConfigHelper/ImsService.java' + +Signed-off-by: Andrew Hexen +1c910a +--- + AndroidManifest.xml | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/AndroidManifest.xml b/AndroidManifest.xml +index 3b3dc516..6f4b3de4 100644 +--- a/AndroidManifest.xml ++++ b/AndroidManifest.xml +@@ -48,9 +48,8 @@ + + + +- + + + + +- +\ No newline at end of file ++ diff --git a/ims-patches/0004-ims-globally-set-RECEIVER_EXPORTED-for-registerReceiver.patch b/ims-patches/0004-ims-globally-set-RECEIVER_EXPORTED-for-registerReceiver.patch new file mode 100644 index 0000000..6f0ce62 --- /dev/null +++ b/ims-patches/0004-ims-globally-set-RECEIVER_EXPORTED-for-registerReceiver.patch @@ -0,0 +1,102 @@ +From 789e1c4dace46b872198b5180ea77afb1b1a2c17 Mon Sep 17 00:00:00 2001 +From: SGCMarkus +Date: Wed, 21 Feb 2024 19:18:49 +0100 +Subject: [PATCH] ims: globally set RECEIVER_EXPORTED for registerReceiver + +E AndroidRuntime: FATAL EXCEPTION: main +E AndroidRuntime: Process: org.codeaurora.ims, PID: 3692 +E AndroidRuntime: java.lang.RuntimeException: Unable to create service org.codeaurora.ims.ImsService: java.lang.SecurityException: org.codeaurora.ims: One of RECEIVER_EXPORTED or RECEIVER_NOT_EXPORTED should be specified when a receiver isn't being registered exclusively for system broadcasts +--- + smali/com/qualcomm/ims/vt/LowBatteryHandler.smali | 4 +++- + smali/org/codeaurora/ims/ImsCallModification.smali | 4 +++- + smali/org/codeaurora/ims/ImsConfigImpl.smali | 4 +++- + smali/org/codeaurora/ims/ImsServiceSub.smali | 4 +++- + smali/org/codeaurora/ims/ImsSubController.smali | 8 ++++++-- + 5 files changed, 18 insertions(+), 6 deletions(-) + +diff --git a/smali/com/qualcomm/ims/vt/LowBatteryHandler.smali b/smali/com/qualcomm/ims/vt/LowBatteryHandler.smali +index d69a656b..deff6dba 100644 +--- a/smali/com/qualcomm/ims/vt/LowBatteryHandler.smali ++++ b/smali/com/qualcomm/ims/vt/LowBatteryHandler.smali +@@ -150,7 +150,9 @@ + + invoke-direct {v1, v2}, Landroid/content/IntentFilter;->(Ljava/lang/String;)V + +- invoke-virtual {p2, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; ++ const/4 v2, 0x2 ++ ++ invoke-virtual {p2, v0, v1, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent; + + .line 49 + return-void +diff --git a/smali/org/codeaurora/ims/ImsCallModification.smali b/smali/org/codeaurora/ims/ImsCallModification.smali +index 3c209dfd..a18213bf 100644 +--- a/smali/org/codeaurora/ims/ImsCallModification.smali ++++ b/smali/org/codeaurora/ims/ImsCallModification.smali +@@ -300,7 +300,9 @@ + .line 140 + iget-object v2, p0, Lorg/codeaurora/ims/ImsCallModification;->mContext:Landroid/content/Context; + +- invoke-virtual {v2, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; ++ const/4 v3, 0x2 ++ ++ invoke-virtual {v2, v0, v1, v3}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent; + + .line 141 + const-string v0, "Registering car mode receiver" +diff --git a/smali/org/codeaurora/ims/ImsConfigImpl.smali b/smali/org/codeaurora/ims/ImsConfigImpl.smali +index c38fe206..4daeb745 100644 +--- a/smali/org/codeaurora/ims/ImsConfigImpl.smali ++++ b/smali/org/codeaurora/ims/ImsConfigImpl.smali +@@ -668,7 +668,9 @@ + + iget-object v2, p0, Lorg/codeaurora/ims/ImsConfigImpl;->mBroadcastReceiver:Landroid/content/BroadcastReceiver; + +- invoke-virtual {v1, v2, v0}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; ++ const/4 v3, 0x2 ++ ++ invoke-virtual {v1, v2, v0, v3}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent; + + .line 257 + new-instance v1, Landroid/os/HandlerThread; +diff --git a/smali/org/codeaurora/ims/ImsServiceSub.smali b/smali/org/codeaurora/ims/ImsServiceSub.smali +index 4a4a489d..579abd88 100644 +--- a/smali/org/codeaurora/ims/ImsServiceSub.smali ++++ b/smali/org/codeaurora/ims/ImsServiceSub.smali +@@ -1074,7 +1074,9 @@ + + iget-object v3, p0, Lorg/codeaurora/ims/ImsServiceSub;->mImsServiceStateReceiver:Lorg/codeaurora/ims/ImsServiceStateReceiver; + +- invoke-virtual {v2, v3, v0}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; ++ const/4 v4, 0x2 ++ ++ invoke-virtual {v2, v3, v0, v4}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent; + + .line 312 + iget-object v2, p0, Lorg/codeaurora/ims/ImsServiceSub;->mImsServiceStateReceiver:Lorg/codeaurora/ims/ImsServiceStateReceiver; +diff --git a/smali/org/codeaurora/ims/ImsSubController.smali b/smali/org/codeaurora/ims/ImsSubController.smali +index 3f21add4..e0f6feb0 100644 +--- a/smali/org/codeaurora/ims/ImsSubController.smali ++++ b/smali/org/codeaurora/ims/ImsSubController.smali +@@ -416,7 +416,9 @@ + + invoke-direct {v1, v2}, Landroid/content/IntentFilter;->(Ljava/lang/String;)V + +- invoke-virtual {p1, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; ++ const/4 v2, 0x2 ++ ++ invoke-virtual {p1, v0, v1, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent; + + .line 217 + iput-object p2, p0, Lorg/codeaurora/ims/ImsSubController;->mSenderRxrs:Ljava/util/List; +@@ -1267,7 +1269,9 @@ + + invoke-direct {v5, v6}, Landroid/content/IntentFilter;->(Ljava/lang/String;)V + +- invoke-virtual {v2, v4, v5}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent; ++ const/4 v3, 0x2 ++ ++ invoke-virtual {v2, v4, v5, v3}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;I)Landroid/content/Intent; + + .line 752 + iput-boolean v3, p0, Lorg/codeaurora/ims/ImsSubController;->mIsReceiverRegistered:Z diff --git a/proprietary-files.txt b/proprietary-files.txt index f8f211d..7f1d830 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -910,9 +910,6 @@ vendor/lib64/vendor.qti.hardware.radio.uim_remote_server@1.0.so system/etc/permissions/moto-telephony.xml:system_ext/etc/permissions/moto-telephony.xml system/framework/moto-telephony.jar:system_ext/framework/moto-telephony.jar -# Radio - IMS (APK) - from patched source -system_ext/priv-app/ims/ims.apk|c971fa6b560e2387058704a7a9bed8eb9f30138b - # RIL - IMS system_ext/app/ImsRcsService/ImsRcsService.apk system_ext/etc/permissions/vendor.qti.ims.rcsservice.xml @@ -944,6 +941,7 @@ system_ext/lib64/libimsmedia_jni.so;SYMLINK=system_ext/priv-app/ims/lib/arm64/li system_ext/lib64/vendor.qti.ImsRtpService-V1-ndk.so system_ext/lib64/vendor.qti.imsrtpservice@3.0.so system_ext/lib64/vendor.qti.imsrtpservice@3.1.so +system_ext/priv-app/ims/ims.apk vendor/bin/ims_rtp_daemon vendor/bin/imsdaemon vendor/etc/init/ims_rtp_daemon.rc