fwb: Add compatibility patch for MTK S IMS

This commit is contained in:
Peter Cai 2023-08-09 19:25:11 -04:00
parent 43294a4d31
commit 34ba75d71f
6 changed files with 142 additions and 15 deletions

View file

@ -1,7 +1,7 @@
From 2128e26099e203ebaf43796c23a5c423d4eb9272 Mon Sep 17 00:00:00 2001 From 5e94fc70ba1963ed33eb6633702cce706b6814d1 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net> From: Peter Cai <peter@typeblog.net>
Date: Tue, 12 Oct 2021 21:37:22 -0400 Date: Tue, 12 Oct 2021 21:37:22 -0400
Subject: [PATCH 1/5] PackageParser: support glob matching for properties Subject: [PATCH 1/6] PackageParser: support glob matching for properties
Needed to make phh's vendor overlays work Needed to make phh's vendor overlays work
--- ---
@ -32,5 +32,5 @@ index c15b3e0b80c3..05bb843c0c4d 100644
} }
return true; return true;
-- --
2.40.1 2.41.0

View file

@ -1,7 +1,7 @@
From d617a2ae55f3a345a3b0ea754208f4050ed0ae92 Mon Sep 17 00:00:00 2001 From 3199a7f449d08acf306aafb180ccbcbacd993616 Mon Sep 17 00:00:00 2001
From: Danny Lin <danny@kdrag0n.dev> From: Danny Lin <danny@kdrag0n.dev>
Date: Sat, 16 Oct 2021 05:27:57 -0700 Date: Sat, 16 Oct 2021 05:27:57 -0700
Subject: [PATCH 2/5] Add support for app signature spoofing Subject: [PATCH 2/6] Add support for app signature spoofing
This is needed by microG GmsCore to pretend to be the official Google This is needed by microG GmsCore to pretend to be the official Google
Play Services package, because client apps check the package signature Play Services package, because client apps check the package signature
@ -159,5 +159,5 @@ index 46b7460dff1b..40549962436f 100644
if (packageInfo == null) { if (packageInfo == null) {
return null; return null;
-- --
2.40.1 2.41.0

View file

@ -1,7 +1,7 @@
From 53b7e684e38bbcf5ed91c7c3ff35ce669fc7e3d6 Mon Sep 17 00:00:00 2001 From 734839b7918f93cb746ebbe82179a9cbcf165424 Mon Sep 17 00:00:00 2001
From: Peter Cai <peter@typeblog.net> From: Peter Cai <peter@typeblog.net>
Date: Fri, 2 Sep 2022 21:36:06 -0400 Date: Fri, 2 Sep 2022 21:36:06 -0400
Subject: [PATCH 3/5] FrameworkParsingPackageUtils: Add glob matching support Subject: [PATCH 3/6] FrameworkParsingPackageUtils: Add glob matching support
for properties for properties
This is now required in addition to the one in PackageParser in order This is now required in addition to the one in PackageParser in order
@ -36,5 +36,5 @@ index 3e1c5bb3d7ec..f15978c57574 100644
} }
return true; return true;
-- --
2.40.1 2.41.0

View file

@ -1,7 +1,7 @@
From 270918c3bef42e290e2f984a806ca9db213485bc Mon Sep 17 00:00:00 2001 From af0cbe50e889694dc72ab84c4e1af816bdd199b9 Mon Sep 17 00:00:00 2001
From: Oliver Scott <olivercscott@gmail.com> From: Oliver Scott <olivercscott@gmail.com>
Date: Thu, 8 Jul 2021 10:41:43 -0400 Date: Thu, 8 Jul 2021 10:41:43 -0400
Subject: [PATCH 4/5] Global VPN feature [1/2] Subject: [PATCH 4/6] Global VPN feature [1/2]
* Modify existing VPN user range functions to conditionally have traffic * Modify existing VPN user range functions to conditionally have traffic
from all users pass through the global VPN. from all users pass through the global VPN.
@ -197,5 +197,5 @@ index 8510de4ef201..7c02924a711d 100644
// To stop the VPN profile, the caller must be the current prepared package and must be // To stop the VPN profile, the caller must be the current prepared package and must be
// running an Ikev2VpnProfile. // running an Ikev2VpnProfile.
-- --
2.40.1 2.41.0

View file

@ -1,7 +1,7 @@
From d7f925f3680e21dc501ac67607737b9bc6ee8f24 Mon Sep 17 00:00:00 2001 From 628ab41923ce082cd68ab8d4a184823b62a75ab3 Mon Sep 17 00:00:00 2001
From: dhacker29 <dhackerdvm@gmail.com> From: dhacker29 <dhackerdvm@gmail.com>
Date: Tue, 24 Nov 2015 01:53:47 -0500 Date: Tue, 24 Nov 2015 01:53:47 -0500
Subject: [PATCH 5/5] fw/b: Use ro.build.version.incremental to signal OTA Subject: [PATCH 5/6] fw/b: Use ro.build.version.incremental to signal OTA
upgrades upgrades
Squash of: Squash of:
@ -232,5 +232,5 @@ index 88aeb17dc2b4..af7b481dd311 100644
} }
-- --
2.40.1 2.41.0

View file

@ -0,0 +1,127 @@
From 54e70eb7ce231f6a1bef4ffdedb6008b3a949820 Mon Sep 17 00:00:00 2001
From: Andy CrossGate Yan <GeForce8800Ultra@gmail.com>
Date: Sat, 15 Oct 2022 09:33:56 +0000
Subject: [PATCH 6/6] Revert "Remove more FDE methods from StorageManager"
This reverts commit bd13f84152449a3ead6fa8604fd31f48c0224676.
---
.../android/os/storage/StorageManager.java | 69 ++++++++++++++++---
.../internal/os/RoSystemProperties.java | 4 ++
2 files changed, 65 insertions(+), 8 deletions(-)
diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java
index d9604b3f0145..603612e82007 100644
--- a/core/java/android/os/storage/StorageManager.java
+++ b/core/java/android/os/storage/StorageManager.java
@@ -1681,13 +1681,18 @@ public class StorageManager {
}
/** {@hide}
- * Is this device encrypted?
- * <p>
- * Note: all devices launching with Android 10 (API level 29) or later are
- * required to be encrypted. This should only ever return false for
- * in-development devices on which encryption has not yet been configured.
- *
- * @return true if encrypted, false if not encrypted
+ * Is this device encryptable or already encrypted?
+ * @return true for encryptable or encrypted
+ * false not encrypted and not encryptable
+ */
+ public static boolean isEncryptable() {
+ return RoSystemProperties.CRYPTO_ENCRYPTABLE;
+ }
+
+ /** {@hide}
+ * Is this device already encrypted?
+ * @return true for encrypted. (Implies isEncryptable() == true)
+ * false not encrypted
*/
public static boolean isEncrypted() {
return RoSystemProperties.CRYPTO_ENCRYPTED;
@@ -1696,7 +1701,7 @@ public class StorageManager {
/** {@hide}
* Is this device file encrypted?
* @return true for file encrypted. (Implies isEncrypted() == true)
- * false not encrypted or using "managed" encryption
+ * false not encrypted or block encrypted
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
public static boolean isFileEncryptedNativeOnly() {
@@ -1706,6 +1711,54 @@ public class StorageManager {
return RoSystemProperties.CRYPTO_FILE_ENCRYPTED;
}
+ /** {@hide}
+ * Is this device block encrypted?
+ * @return true for block encrypted. (Implies isEncrypted() == true)
+ * false not encrypted or file encrypted
+ */
+ public static boolean isBlockEncrypted() {
+ return false;
+ }
+
+ /** {@hide}
+ * Is this device block encrypted with credentials?
+ * @return true for crediential block encrypted.
+ * (Implies isBlockEncrypted() == true)
+ * false not encrypted, file encrypted or default block encrypted
+ */
+ public static boolean isNonDefaultBlockEncrypted() {
+ return false;
+ }
+
+ /** {@hide}
+ * Is this device in the process of being block encrypted?
+ * @return true for encrypting.
+ * false otherwise
+ * Whether device isEncrypted at this point is undefined
+ * Note that only system services and CryptKeeper will ever see this return
+ * true - no app will ever be launched in this state.
+ * Also note that this state will not change without a teardown of the
+ * framework, so no service needs to check for changes during their lifespan
+ */
+ public static boolean isBlockEncrypting() {
+ return false;
+ }
+
+ /** {@hide}
+ * Is this device non default block encrypted and in the process of
+ * prompting for credentials?
+ * @return true for prompting for credentials.
+ * (Implies isNonDefaultBlockEncrypted() == true)
+ * false otherwise
+ * Note that only system services and CryptKeeper will ever see this return
+ * true - no app will ever be launched in this state.
+ * Also note that this state will not change without a teardown of the
+ * framework, so no service needs to check for changes during their lifespan
+ */
+ public static boolean inCryptKeeperBounce() {
+ return false;
+ }
+
/** {@hide} */
public static boolean isFileEncryptedEmulatedOnly() {
return SystemProperties.getBoolean(StorageManager.PROP_EMULATE_FBE, false);
diff --git a/core/java/com/android/internal/os/RoSystemProperties.java b/core/java/com/android/internal/os/RoSystemProperties.java
index cccd80e82420..adb5c107bc62 100644
--- a/core/java/com/android/internal/os/RoSystemProperties.java
+++ b/core/java/com/android/internal/os/RoSystemProperties.java
@@ -62,10 +62,14 @@ public class RoSystemProperties {
public static final CryptoProperties.type_values CRYPTO_TYPE =
CryptoProperties.type().orElse(CryptoProperties.type_values.NONE);
// These are pseudo-properties
+ public static final boolean CRYPTO_ENCRYPTABLE =
+ CRYPTO_STATE != CryptoProperties.state_values.UNSUPPORTED;
public static final boolean CRYPTO_ENCRYPTED =
CRYPTO_STATE == CryptoProperties.state_values.ENCRYPTED;
public static final boolean CRYPTO_FILE_ENCRYPTED =
CRYPTO_TYPE == CryptoProperties.type_values.FILE;
+ public static final boolean CRYPTO_BLOCK_ENCRYPTED =
+ CRYPTO_TYPE == CryptoProperties.type_values.BLOCK;
public static final boolean CONTROL_PRIVAPP_PERMISSIONS_LOG =
"log".equalsIgnoreCase(CONTROL_PRIVAPP_PERMISSIONS);
--
2.41.0