sm7325-common: automatically patch ims

https://review.lineageos.org/q/topic:%22extract-utils-apktool%22

Change-Id: I704e191adc7aafe6fe062c1bb330fbd1ca05493c
This commit is contained in:
Cosmin Tanislav 2024-08-06 03:37:29 +03:00 committed by Marc Bourgoin
parent 2143846123
commit 6211b679c3
6 changed files with 262 additions and 3 deletions

View File

@ -73,6 +73,9 @@ function blob_fixup() {
[ "$2" = "" ] && return 0 [ "$2" = "" ] && return 0
sed -i "s#/system/#/system_ext/#" "${2}" 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) vendor/etc/vintf/manifest/vendor.dolby.media.c2@1.0-service.xml)
[ "$2" = "" ] && return 0 [ "$2" = "" ] && return 0
sed -ni '/default.*fqname/!p' "${2}" sed -ni '/default.*fqname/!p' "${2}"

View File

@ -0,0 +1,35 @@
From cfd224560c7d76c9bc219eb2c12b099e1537956c Mon Sep 17 00:00:00 2001
From: Erfan Abdi <erfangplus@gmail.com>
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

View File

@ -0,0 +1,91 @@
From ab173b9875550f2462b8ed80ada0dff9bd2804d0 Mon Sep 17 00:00:00 2001
From: Vachounet <vachounet@live.fr>
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;-><init>()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;-><init>()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

View File

@ -0,0 +1,30 @@
From cadd5ec3e6f097bd5619e22bf827fb685e38c1d2 Mon Sep 17 00:00:00 2001
From: Andrew Hexen <SyberHexen@gmail.com>
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 <SyberHexen@gmail.com>
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 @@
</service>
<service android:enabled="true" android:exported="true" android:name=".QtiImsExtService" android:permission="com.qti.permission.BIND_QTI_IMS_SERVICE" android:singleUser="true"/>
<uses-library android:name="moto-telephony"/>
- <uses-library android:name="moto-ims-ext"/>
<uses-library android:name="qti-telephony-hidl-wrapper"/>
<uses-library android:name="qti-telephony-utils"/>
<uses-library android:name="ims-ext-common"/>
</application>
-</manifest>
\ No newline at end of file
+</manifest>

View File

@ -0,0 +1,102 @@
From 789e1c4dace46b872198b5180ea77afb1b1a2c17 Mon Sep 17 00:00:00 2001
From: SGCMarkus <markusornik@gmail.com>
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;-><init>(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;-><init>(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;-><init>(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

View File

@ -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/etc/permissions/moto-telephony.xml:system_ext/etc/permissions/moto-telephony.xml
system/framework/moto-telephony.jar:system_ext/framework/moto-telephony.jar 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 # RIL - IMS
system_ext/app/ImsRcsService/ImsRcsService.apk system_ext/app/ImsRcsService/ImsRcsService.apk
system_ext/etc/permissions/vendor.qti.ims.rcsservice.xml 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-V1-ndk.so
system_ext/lib64/vendor.qti.imsrtpservice@3.0.so system_ext/lib64/vendor.qti.imsrtpservice@3.0.so
system_ext/lib64/vendor.qti.imsrtpservice@3.1.so system_ext/lib64/vendor.qti.imsrtpservice@3.1.so
system_ext/priv-app/ims/ims.apk
vendor/bin/ims_rtp_daemon vendor/bin/ims_rtp_daemon
vendor/bin/imsdaemon vendor/bin/imsdaemon
vendor/etc/init/ims_rtp_daemon.rc vendor/etc/init/ims_rtp_daemon.rc