forked from PeterGSI/patches
frameworks/opt/telephony: Include more patches from TD, mostly for IMS
This commit is contained in:
parent
71264a9937
commit
f2c991ca41
|
@ -1,7 +1,7 @@
|
||||||
From 9990507a53c8bc7ac154f78ed260fea6be30f252 Mon Sep 17 00:00:00 2001
|
From 02041484d88e3c8a6cd62e1253f4b12b15be6852 Mon Sep 17 00:00:00 2001
|
||||||
From: Peter Cai <peter@typeblog.net>
|
From: Peter Cai <peter@typeblog.net>
|
||||||
Date: Mon, 5 Sep 2022 14:02:37 -0400
|
Date: Mon, 5 Sep 2022 14:02:37 -0400
|
||||||
Subject: [PATCH] SubscriptionController: Do not override default calling
|
Subject: [PATCH 1/5] SubscriptionController: Do not override default calling
|
||||||
account from third-party apps
|
account from third-party apps
|
||||||
|
|
||||||
When the user has selected a calling account from a third-party app as
|
When the user has selected a calling account from a third-party app as
|
||||||
|
@ -41,5 +41,5 @@ index 82799bea8b..5105d3a183 100644
|
||||||
|
|
||||||
if (previousDefaultSub != getDefaultSubId()) {
|
if (previousDefaultSub != getDefaultSubId()) {
|
||||||
--
|
--
|
||||||
2.39.2
|
2.40.0
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
From bcaff4d8a493c657519ae50cf7f3661da6c4a46b Mon Sep 17 00:00:00 2001
|
||||||
|
From: ironydelerium <42721860+ironydelerium@users.noreply.github.com>
|
||||||
|
Date: Fri, 31 Dec 2021 02:20:28 -0800
|
||||||
|
Subject: [PATCH 2/5] Reintroduce 'public void
|
||||||
|
TelephonyMetrics.writeRilSendSms(int, int, int, int)'. (#8)
|
||||||
|
|
||||||
|
The MediaTek IMS package for Android Q, at the very least (likely for the rest, too)
|
||||||
|
invoke this method in their `sendSms` method; Google, in their infinite wisdom,
|
||||||
|
decided that this method needed a message ID passed in as well, changing the signature
|
||||||
|
to 'public void TelephonyMetrics.writeRilSendSms(int, int, int, int, long)' and resulting
|
||||||
|
in a MethodNotFoundException being raised in com.mediatek.ims, crashing it.
|
||||||
|
|
||||||
|
Fixes https://github.com/phhusson/treble_experimentations/issues/2125.
|
||||||
|
|
||||||
|
Co-authored-by: Sarah Vandomelen <sarah@sightworks.com>
|
||||||
|
---
|
||||||
|
.../telephony/metrics/TelephonyMetrics.java | 13 +++++++++++++
|
||||||
|
1 file changed, 13 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java b/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
|
||||||
|
index 3fdbfe0ed7..fb8011c3df 100644
|
||||||
|
--- a/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
|
||||||
|
+++ b/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
|
||||||
|
@@ -2320,6 +2320,19 @@ public class TelephonyMetrics {
|
||||||
|
smsSession.increaseExpectedResponse();
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /**
|
||||||
|
+ * Write Send SMS event (backwards-compatible method for R and earlier IMS implementations)
|
||||||
|
+ *
|
||||||
|
+ * @param phoneId Phone id
|
||||||
|
+ * @param rilSerial RIL request serial number
|
||||||
|
+ * @param tech SMS RAT
|
||||||
|
+ * @param format SMS format. Either {@link SmsMessage#FORMAT_3GPP} or
|
||||||
|
+ * {@link SmsMessage#FORMAT_3GPP2}.
|
||||||
|
+ */
|
||||||
|
+ public void writeRilSendSms(int phoneId, int rilSerial, int tech, int format) {
|
||||||
|
+ writeRilSendSms(phoneId, rilSerial, tech, format, 0);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* Write Send SMS event using ImsService. Expecting response from
|
||||||
|
* {@link #writeOnSmsSolicitedResponse}.
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
From 9550951ff96e643d143da826cb9560da572850a1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: LuK1337 <priv.luk@gmail.com>
|
||||||
|
Date: Fri, 21 Oct 2022 20:55:05 +0200
|
||||||
|
Subject: [PATCH 3/5] Pass correct value to setPreferredNetworkType() for RIL
|
||||||
|
version < 1.4
|
||||||
|
|
||||||
|
Change-Id: Id14be66a2ea4e85b6504bc03fd7d2f038185c17d
|
||||||
|
---
|
||||||
|
src/java/com/android/internal/telephony/RIL.java | 3 ++-
|
||||||
|
.../com/android/internal/telephony/RadioNetworkProxy.java | 5 +++--
|
||||||
|
2 files changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java
|
||||||
|
index 6de66527e1..0c1b7cdf8c 100644
|
||||||
|
--- a/src/java/com/android/internal/telephony/RIL.java
|
||||||
|
+++ b/src/java/com/android/internal/telephony/RIL.java
|
||||||
|
@@ -2879,7 +2879,8 @@ public class RIL extends BaseCommands implements CommandsInterface {
|
||||||
|
mMetrics.writeSetPreferredNetworkType(mPhoneId, networkType);
|
||||||
|
|
||||||
|
try {
|
||||||
|
- networkProxy.setPreferredNetworkTypeBitmap(rr.mSerial, mAllowedNetworkTypesBitmask);
|
||||||
|
+ networkProxy.setPreferredNetworkTypeBitmap(
|
||||||
|
+ rr.mSerial, mAllowedNetworkTypesBitmask, networkType);
|
||||||
|
} catch (RemoteException | RuntimeException e) {
|
||||||
|
handleRadioProxyExceptionForRR(NETWORK_SERVICE, "setPreferredNetworkType", e);
|
||||||
|
}
|
||||||
|
diff --git a/src/java/com/android/internal/telephony/RadioNetworkProxy.java b/src/java/com/android/internal/telephony/RadioNetworkProxy.java
|
||||||
|
index b88103510a..661fa56954 100644
|
||||||
|
--- a/src/java/com/android/internal/telephony/RadioNetworkProxy.java
|
||||||
|
+++ b/src/java/com/android/internal/telephony/RadioNetworkProxy.java
|
||||||
|
@@ -379,16 +379,17 @@ public class RadioNetworkProxy extends RadioServiceProxy {
|
||||||
|
* Call IRadioNetwork#setPreferredNetworkTypeBitmap
|
||||||
|
* @param serial Serial number of request
|
||||||
|
* @param networkTypesBitmask Preferred network types bitmask to set
|
||||||
|
+ * @param networkType Preferred network type to set for RIL version < 1.4
|
||||||
|
* @throws RemoteException
|
||||||
|
*/
|
||||||
|
- public void setPreferredNetworkTypeBitmap(int serial, int networkTypesBitmask)
|
||||||
|
+ public void setPreferredNetworkTypeBitmap(int serial, int networkTypesBitmask, int networkType)
|
||||||
|
throws RemoteException {
|
||||||
|
if (isEmpty() || mHalVersion.greaterOrEqual(RIL.RADIO_HAL_VERSION_1_6)) return;
|
||||||
|
if (mHalVersion.greaterOrEqual(RIL.RADIO_HAL_VERSION_1_4)) {
|
||||||
|
((android.hardware.radio.V1_4.IRadio) mRadioProxy).setPreferredNetworkTypeBitmap(serial,
|
||||||
|
RILUtils.convertToHalRadioAccessFamily(networkTypesBitmask));
|
||||||
|
} else {
|
||||||
|
- mRadioProxy.setPreferredNetworkType(serial, networkTypesBitmask);
|
||||||
|
+ mRadioProxy.setPreferredNetworkType(serial, networkType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
From c527732943bc02fd434cbecbd07787e2d429023d Mon Sep 17 00:00:00 2001
|
||||||
|
From: ExactExampl <exactxmpl@pixelexperience.org>
|
||||||
|
Date: Tue, 11 Oct 2022 12:38:00 +0300
|
||||||
|
Subject: [PATCH 4/5] Conditionally revert "Block Binder thread until incoming
|
||||||
|
call process completes"
|
||||||
|
|
||||||
|
* Legacy IMS packages handling incoming calls in such a way that
|
||||||
|
a blocked binder thread won`t allow to complete call setup,
|
||||||
|
thus we have half dead incoming calls with unattached call session
|
||||||
|
(caller can hear dialing tone whereas recipient got nothing)
|
||||||
|
|
||||||
|
This conditionally reverts commit 75c3dc9ba272b43971f519caba0382f9871c7d9d.
|
||||||
|
|
||||||
|
Change-Id: I55a8f3bbca4a2b9a6bc7511e9fe2d0884a8818e5
|
||||||
|
---
|
||||||
|
.../imsphone/ImsPhoneCallTracker.java | 18 ++++++++++++++----
|
||||||
|
1 file changed, 14 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
|
||||||
|
index 5968ba6fa1..86034f6fa1 100644
|
||||||
|
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
|
||||||
|
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
|
||||||
|
@@ -50,6 +50,7 @@ import android.os.Registrant;
|
||||||
|
import android.os.RegistrantList;
|
||||||
|
import android.os.RemoteException;
|
||||||
|
import android.os.SystemClock;
|
||||||
|
+import android.os.SystemProperties;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
|
import android.provider.Settings;
|
||||||
|
import android.sysprop.TelephonyProperties;
|
||||||
|
@@ -322,10 +323,19 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onIncomingCall(IImsCallSession c, Bundle extras) {
|
||||||
|
- // we want to ensure we block this binder thread until incoming call setup completes
|
||||||
|
- // as to avoid race conditions where the ImsService tries to update the state of the
|
||||||
|
- // call before the listeners have been attached.
|
||||||
|
- executeAndWait(()-> processIncomingCall(c, extras));
|
||||||
|
+ final boolean shouldBlockBinderThreadOnIncomingCalls = SystemProperties.getBoolean(
|
||||||
|
+ "ro.telephony.block_binder_thread_on_incoming_calls", true);
|
||||||
|
+ if (shouldBlockBinderThreadOnIncomingCalls) {
|
||||||
|
+ // we want to ensure we block this binder thread until incoming call setup completes
|
||||||
|
+ // as to avoid race conditions where the ImsService tries to update the state of the
|
||||||
|
+ // call before the listeners have been attached.
|
||||||
|
+ executeAndWait(()-> processIncomingCall(c, extras));
|
||||||
|
+ } else {
|
||||||
|
+ // for legacy IMS we want to avoid blocking the binder thread, otherwise
|
||||||
|
+ // we end up with half dead incoming calls with unattached call session
|
||||||
|
+ TelephonyUtils.runWithCleanCallingIdentity(()-> processIncomingCall(c, extras),
|
||||||
|
+ mExecutor);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
From 53160d33c83afe4f56862c3c12d4b61e2970209b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Pierre-Hugues Husson <phh@phh.me>
|
||||||
|
Date: Mon, 6 Dec 2021 16:28:22 -0500
|
||||||
|
Subject: [PATCH 5/5] Fix baseband being too long to fit into a 91 chars
|
||||||
|
property, preventing telephony subsystem from starting
|
||||||
|
|
||||||
|
Change-Id: I1762e4a8cc137626be89f350229d6be162bdaf57
|
||||||
|
---
|
||||||
|
src/java/com/android/internal/telephony/GsmCdmaPhone.java | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
|
||||||
|
index 76a8d57246..9a72712c59 100644
|
||||||
|
--- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java
|
||||||
|
+++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
|
||||||
|
@@ -3124,7 +3124,7 @@ public class GsmCdmaPhone extends Phone {
|
||||||
|
String version = (String)ar.result;
|
||||||
|
if (version != null) {
|
||||||
|
int length = version.length();
|
||||||
|
- final int MAX_VERSION_LEN = SystemProperties.PROP_VALUE_MAX/2;
|
||||||
|
+ final int MAX_VERSION_LEN = SystemProperties.PROP_VALUE_MAX/2 - 2;
|
||||||
|
TelephonyManager.from(mContext).setBasebandVersionForPhone(getPhoneId(),
|
||||||
|
length <= MAX_VERSION_LEN ? version
|
||||||
|
: version.substring(length - MAX_VERSION_LEN, length));
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
Loading…
Reference in a new issue