diff --git a/Patches/LineageOS-17.1/android_frameworks_base/360952-backport.patch b/Patches/LineageOS-17.1/android_frameworks_base/360952-backport.patch index d5626a2d..7f7cc9c6 100644 --- a/Patches/LineageOS-17.1/android_frameworks_base/360952-backport.patch +++ b/Patches/LineageOS-17.1/android_frameworks_base/360952-backport.patch @@ -1,22 +1,25 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From 8bfab8e6a99bc7d61362e6ee803756a2fab08646 Mon Sep 17 00:00:00 2001 From: "Nate(Qiang) Jiang" Date: Wed, 26 Oct 2022 21:52:34 +0000 -Subject: [PATCH] Passpoint Add more check to limit the config size +Subject: [PATCH 01/11] [RESTRICT AUTOMERGE] Passpoint Add more check to limit + the config size Bug: 245299920 Test: atest con.android.server.wifi (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e1a80210f3f0391c989a2a86fd4aef739bf2574c) Merged-In: I97522ce3607547c10025caa107cd1a40455a9c5d Change-Id: I97522ce3607547c10025caa107cd1a40455a9c5d + +Change-Id: Id95fc30cb9f22276114ecef543d7a7e9e0c3459b --- - .../wifi/hotspot2/PasspointConfiguration.java | 59 +++++++++++++- + .../wifi/hotspot2/PasspointConfiguration.java | 47 ++++++++++- .../net/wifi/hotspot2/pps/Credential.java | 10 ++- .../android/net/wifi/hotspot2/pps/HomeSp.java | 79 ++++++++++++++++++- .../hotspot2/PasspointConfigurationTest.java | 2 +- - 4 files changed, 146 insertions(+), 4 deletions(-) + 4 files changed, 134 insertions(+), 4 deletions(-) diff --git a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java -index 9095b5d927a2..eff56acf4dfb 100644 +index 9095b5d927a2..f88d6f6ca25a 100644 --- a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java +++ b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java @@ -52,8 +52,42 @@ public final class PasspointConfiguration implements Parcelable { @@ -45,7 +48,8 @@ index 9095b5d927a2..eff56acf4dfb 100644 + /** + * Maximum bytes for a string entry like FQDN and friendly name. + * @hide -+ */ + */ +- private static final int MAX_URL_BYTES = 1023; + public static final int MAX_STRING_LENGTH = 255; + + /** @@ -57,28 +61,15 @@ index 9095b5d927a2..eff56acf4dfb 100644 + /** + * Organization Identifiers is 3 or 5 Octets. 24 or 36 bit. + * @hide - */ -- private static final int MAX_URL_BYTES = 1023; ++ */ + public static final long MAX_OI_VALUE = ((long) 1 << 40) - 1; /** * Integer value used for indicating null value in the Parcel. -@@ -572,7 +606,30 @@ public final class PasspointConfiguration implements Parcelable { +@@ -572,7 +606,18 @@ public final class PasspointConfiguration implements Parcelable { return false; } -+ if (mAaaServerTrustedNames != null) { -+ if (mAaaServerTrustedNames.length > MAX_NUMBER_OF_ENTRIES) { -+ Log.d(TAG, "Too many AaaServerTrustedNames"); -+ return false; -+ } -+ for (String fqdn : mAaaServerTrustedNames) { -+ if (fqdn.getBytes(StandardCharsets.UTF_8).length > MAX_STRING_LENGTH) { -+ Log.d(TAG, "AaaServerTrustedNames is too long"); -+ return false; -+ } -+ } -+ } + if (mSubscriptionType != null) { + if (mSubscriptionType.getBytes(StandardCharsets.UTF_8).length > MAX_STRING_LENGTH) { + Log.d(TAG, "SubscriptionType is too long"); @@ -241,3 +232,7 @@ index fc03e7eb6176..6b4f7b0cc51e 100644 private static final int CERTIFICATE_FINGERPRINT_BYTES = 32; /** +-- +2.40.1 + + diff --git a/Patches/LineageOS-17.1/android_frameworks_base/360961-backport.patch b/Patches/LineageOS-17.1/android_frameworks_base/360961-backport.patch deleted file mode 100644 index bb2e2d2c..00000000 --- a/Patches/LineageOS-17.1/android_frameworks_base/360961-backport.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Ioana Alexandru -Date: Fri, 21 Apr 2023 15:39:22 +0000 -Subject: [PATCH] Verify URI permissions for EXTRA_REMOTE_INPUT_HISTORY_ITEMS. - -Also added the person URIs in the test, since they weren't being -checked. - -Test: atest NotificationManagerServiceTest & tested with POC from bug -Bug: 276729064 -(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e0d8602a0200ba92283463bd54cefcf97394bfa8) -(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:63f8ce3efd9a564ae83f1de38791a6d67c5a8ddb) -Merged-In: I848545f7aee202495c515f47a32871a2cb6ae707 -Change-Id: I848545f7aee202495c515f47a32871a2cb6ae707 ---- - core/java/android/app/Notification.java | 11 +++++++ - .../NotificationManagerServiceTest.java | 32 +++++++++++++++++++ - 2 files changed, 43 insertions(+) - -diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java -index 3e75c52bf893..9fe3583df601 100644 ---- a/core/java/android/app/Notification.java -+++ b/core/java/android/app/Notification.java -@@ -2454,6 +2454,17 @@ public class Notification implements Parcelable - if (extras.containsKey(EXTRA_BACKGROUND_IMAGE_URI)) { - visitor.accept(Uri.parse(extras.getString(EXTRA_BACKGROUND_IMAGE_URI))); - } -+ -+ final RemoteInputHistoryItem[] history = (RemoteInputHistoryItem[]) -+ extras.getParcelableArray(Notification.EXTRA_REMOTE_INPUT_HISTORY_ITEMS); -+ if (history != null) { -+ for (int i = 0; i < history.length; i++) { -+ RemoteInputHistoryItem item = history[i]; -+ if (item.getUri() != null) { -+ visitor.accept(item.getUri()); -+ } -+ } -+ } - } - - if (MessagingStyle.class.equals(getNotificationStyle()) && extras != null) { -diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java -index 6c1620751866..b2ce41f5b373 100755 ---- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java -+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java -@@ -93,6 +93,7 @@ import android.app.NotificationManager; - import android.app.PendingIntent; - import android.app.Person; - import android.app.RemoteInput; -+import android.app.RemoteInputHistoryItem; - import android.app.admin.DevicePolicyManagerInternal; - import android.app.usage.UsageStatsManagerInternal; - import android.companion.ICompanionDeviceManager; -@@ -3414,10 +3415,36 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { - public void testVisitUris() throws Exception { - final Uri audioContents = Uri.parse("content://com.example/audio"); - final Uri backgroundImage = Uri.parse("content://com.example/background"); -+ final Icon personIcon1 = Icon.createWithContentUri("content://media/person1"); -+ final Icon personIcon2 = Icon.createWithContentUri("content://media/person2"); -+ final Icon personIcon3 = Icon.createWithContentUri("content://media/person3"); -+ final Person person1 = new Person.Builder() -+ .setName("Messaging Person") -+ .setIcon(personIcon1) -+ .build(); -+ final Person person2 = new Person.Builder() -+ .setName("People List Person 1") -+ .setIcon(personIcon2) -+ .build(); -+ final Person person3 = new Person.Builder() -+ .setName("People List Person 2") -+ .setIcon(personIcon3) -+ .build(); -+ final Uri historyUri1 = Uri.parse("content://com.example/history1"); -+ final Uri historyUri2 = Uri.parse("content://com.example/history2"); -+ final RemoteInputHistoryItem historyItem1 = new RemoteInputHistoryItem(null, historyUri1, -+ "a"); -+ final RemoteInputHistoryItem historyItem2 = new RemoteInputHistoryItem(null, historyUri2, -+ "b"); - - Bundle extras = new Bundle(); - extras.putParcelable(Notification.EXTRA_AUDIO_CONTENTS_URI, audioContents); - extras.putString(Notification.EXTRA_BACKGROUND_IMAGE_URI, backgroundImage.toString()); -+ extras.putParcelable(Notification.EXTRA_MESSAGING_PERSON, person1); -+ extras.putParcelableArrayList(Notification.EXTRA_PEOPLE_LIST, -+ new ArrayList<>(Arrays.asList(person2, person3))); -+ extras.putParcelableArray(Notification.EXTRA_REMOTE_INPUT_HISTORY_ITEMS, -+ new RemoteInputHistoryItem[]{historyItem1, historyItem2}); - - Notification n = new Notification.Builder(mContext, "a") - .setContentTitle("notification with uris") -@@ -3429,6 +3456,11 @@ public class NotificationManagerServiceTest extends UiServiceTestCase { - n.visitUris(visitor); - verify(visitor, times(1)).accept(eq(audioContents)); - verify(visitor, times(1)).accept(eq(backgroundImage)); -+ verify(visitor, times(1)).accept(eq(personIcon1.getUri())); -+ verify(visitor, times(1)).accept(eq(personIcon2.getUri())); -+ verify(visitor, times(1)).accept(eq(personIcon3.getUri())); -+ verify(visitor, times(1)).accept(eq(historyUri1)); -+ verify(visitor, times(1)).accept(eq(historyUri2)); - } - - @Test diff --git a/Patches/LineageOS-17.1/android_frameworks_opt_net_wifi/360964-backport.patch b/Patches/LineageOS-17.1/android_frameworks_opt_net_wifi/360964-backport.patch deleted file mode 100644 index 49bac3c8..00000000 --- a/Patches/LineageOS-17.1/android_frameworks_opt_net_wifi/360964-backport.patch +++ /dev/null @@ -1,103 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Nate(Qiang) Jiang" -Date: Thu, 13 Apr 2023 19:25:51 +0000 -Subject: [PATCH] DO NOT MERGE: Add pre-share key check for wapi - -Bug: 275339978 -Test: atest com.androi.server.wifi -(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:07d112fb45449e06233b71e877e835084c76f220) -Merged-In: Ibd3ee52c5993a541abb7b373e4052091d13e9c4f -Change-Id: Ibd3ee52c5993a541abb7b373e4052091d13e9c4f ---- - .../server/wifi/WifiConfigurationUtil.java | 4 ++ - .../wifi/WifiConfigurationUtilTest.java | 41 +++++++++++++++++++ - 2 files changed, 45 insertions(+) - -diff --git a/service/java/com/android/server/wifi/WifiConfigurationUtil.java b/service/java/com/android/server/wifi/WifiConfigurationUtil.java -index b8992a011..2bb7b0dd2 100644 ---- a/service/java/com/android/server/wifi/WifiConfigurationUtil.java -+++ b/service/java/com/android/server/wifi/WifiConfigurationUtil.java -@@ -701,6 +701,10 @@ public class WifiConfigurationUtil { - && !validatePassword(config.preSharedKey, isAdd, false)) { - return false; - } -+ if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.WAPI_PSK) -+ && !validatePassword(config.preSharedKey, isAdd, false)) { -+ return false; -+ } - if (config.allowedKeyManagement.get(WifiConfiguration.KeyMgmt.OWE)) { - // PMF mandatory for OWE networks - if (!config.requirePMF) { -diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java -index 7173dae5b..aaa3f2605 100644 ---- a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java -+++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationUtilTest.java -@@ -352,6 +352,18 @@ public class WifiConfigurationUtilTest { - assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); - } - -+ @Test -+ public void testValidateNegativeCases_BadAsciiPskLengthWapi() { -+ WifiConfiguration config = WifiConfigurationTestUtil.createWapiPskNetwork(); -+ assertTrue(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); -+ -+ config.preSharedKey = "\"abcdffeeretretyetreteteteabe34tetrertertrsraaaaaaaaaaa345eqwrweewq" -+ + "weqe\""; -+ assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); -+ config.preSharedKey = "\"454\""; -+ assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); -+ } -+ - /** - * Verify that the validate method fails to validate WifiConfiguration with bad sae length. - */ -@@ -380,6 +392,15 @@ public class WifiConfigurationUtilTest { - assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); - } - -+ @Test -+ public void testValidateNegativeCases_MalformedAsciiPskStringWapi() { -+ WifiConfiguration config = WifiConfigurationTestUtil.createWapiPskNetwork(); -+ assertTrue(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); -+ -+ config.preSharedKey = "\"abcdfefeeretrety"; -+ assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); -+ } -+ - /** - * Verify that the validate method fails to validate WifiConfiguration with malformed sae - * string. -@@ -407,6 +428,17 @@ public class WifiConfigurationUtilTest { - assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); - } - -+ @Test -+ public void testValidateNegativeCases_BadHexPskLengthWapi() { -+ WifiConfiguration config = WifiConfigurationTestUtil.createWapiPskNetwork(); -+ assertTrue(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); -+ -+ config.preSharedKey = "abcd123456788990013453445345465465476546"; -+ assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); -+ config.preSharedKey = ""; -+ assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); -+ } -+ - /** - * Verify that the validate method fails to validate WifiConfiguration with malformed psk - * string. -@@ -420,6 +452,15 @@ public class WifiConfigurationUtilTest { - assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); - } - -+ @Test -+ public void testValidateNegativeCases_MalformedHexPskStringWapi() { -+ WifiConfiguration config = WifiConfigurationTestUtil.createWapiPskNetwork(); -+ assertTrue(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); -+ -+ config.preSharedKey = "adbdfgretrtyrtyrty"; -+ assertFalse(WifiConfigurationUtil.validate(config, WifiConfigurationUtil.VALIDATE_FOR_ADD)); -+ } -+ - /** - * Verify that the validate method fails to validate WifiConfiguration with malformed sae - * string. diff --git a/Patches/LineageOS-17.1/android_frameworks_opt_net_wifi/360965-backport.patch b/Patches/LineageOS-17.1/android_frameworks_opt_net_wifi/360965-backport.patch new file mode 100644 index 00000000..eae116ed --- /dev/null +++ b/Patches/LineageOS-17.1/android_frameworks_opt_net_wifi/360965-backport.patch @@ -0,0 +1,240 @@ +From 561ce2bb694a951fea597ad2e19844af2792186a Mon Sep 17 00:00:00 2001 +From: "Nate(Qiang) Jiang" +Date: Wed, 12 Apr 2023 18:38:15 +0000 +Subject: [PATCH] DO NOT MERGE: Limit the number of Passpoint per App + +Reject the suggestion passpoint with ServiceFriendlyNames + +Bug: 274445194 +Test: atest com.android.server.wifi +(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b081fc592709895f0e745ad33b41174b3b2ad399) +Merged-In: I30606e9bb4eba54b5b9111de4982c0cfb565b3dc +Change-Id: I30606e9bb4eba54b5b9111de4982c0cfb565b3dc + +Change-Id: I7df5e55e777189bdc11765d11cb5e428fe928faa +--- + .../wifi/hotspot2/PasspointManager.java | 6 ++ + .../wifi/hotspot2/PasspointManagerTest.java | 56 ++++++++++--------- + 2 files changed, 37 insertions(+), 25 deletions(-) + +diff --git a/service/java/com/android/server/wifi/hotspot2/PasspointManager.java b/service/java/com/android/server/wifi/hotspot2/PasspointManager.java +index 0666943c3..8916976ea 100644 +--- a/service/java/com/android/server/wifi/hotspot2/PasspointManager.java ++++ b/service/java/com/android/server/wifi/hotspot2/PasspointManager.java +@@ -374,6 +374,12 @@ public class PasspointManager { + Log.e(TAG, "UID " + uid + " not visible to the current user"); + return false; + } ++ if (getPasspointProviderWithPackage(packageName).size() ++ >= WifiManager.NETWORK_SUGGESTIONS_MAX_PER_APP) { ++ Log.e(TAG, "packageName " + packageName + " has too many passpoint with exceed the " ++ + "limitation"); ++ return false; ++ } + + // For Hotspot 2.0 Release 1, the CA Certificate must be trusted by one of the pre-loaded + // public CAs in the system key store on the device. Since the provisioning method +diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java +index 618f1c3d5..2b02ed508 100644 +--- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java ++++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java +@@ -42,6 +42,7 @@ import static org.mockito.Mockito.verify; + import static org.mockito.Mockito.when; + import static org.mockito.MockitoAnnotations.initMocks; + ++import android.app.ActivityManager; + import android.app.AppOpsManager; + import android.content.Context; + import android.content.Intent; +@@ -178,6 +179,7 @@ public class PasspointManagerTest { + @Mock TelephonyManager mDataTelephonyManager; + @Mock SubscriptionManager mSubscriptionManager; + @Mock WifiPermissionsUtil mWifiPermissionsUtil; ++ @Mock ActivityManager mActivityManager; + + Handler mHandler; + TestLooper mLooper; +@@ -203,6 +205,7 @@ public class PasspointManagerTest { + any(PasspointManager.class), any(WifiMetrics.class))) + .thenReturn(mPasspointProvisioner); + when(mContext.getSystemService(Context.APP_OPS_SERVICE)).thenReturn(mAppOpsManager); ++ when(mContext.getSystemService(ActivityManager.class)).thenReturn(mActivityManager); + when(mWifiInjector.getClientModeImpl()).thenReturn(mClientModeImpl); + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(anyInt())).thenReturn(true); + mLooper = new TestLooper(); +@@ -268,11 +271,6 @@ public class PasspointManagerTest { + homeSp.setFqdn(fqdn); + homeSp.setFriendlyName(friendlyName); + config.setHomeSp(homeSp); +- Map friendlyNames = new HashMap<>(); +- friendlyNames.put("en", friendlyName); +- friendlyNames.put("kr", friendlyName + 1); +- friendlyNames.put("jp", friendlyName + 2); +- config.setServiceFriendlyNames(friendlyNames); + Credential credential = new Credential(); + credential.setRealm(TEST_REALM); + credential.setCaCertificate(FakeKeys.CA_CERT0); +@@ -315,8 +313,16 @@ public class PasspointManagerTest { + * @return {@link PasspointProvider} + */ + private PasspointProvider addTestProvider(String fqdn, String friendlyName, +- String packageName) { ++ String packageName, ++ boolean addServiceFriendlyNames) { + PasspointConfiguration config = createTestConfigWithUserCredential(fqdn, friendlyName); ++ if (addServiceFriendlyNames) { ++ Map friendlyNames = new HashMap<>(); ++ friendlyNames.put("en", friendlyName); ++ friendlyNames.put("kr", friendlyName + 1); ++ friendlyNames.put("jp", friendlyName + 2); ++ config.setServiceFriendlyNames(friendlyNames); ++ } + PasspointProvider provider = createMockProvider(config); + when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore), + eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE))).thenReturn( +@@ -738,7 +744,7 @@ public class PasspointManagerTest { + */ + @Test + public void matchProviderWithAnqpCacheMissed() throws Exception { +- addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); + + when(mAnqpCache.getEntry(TEST_ANQP_KEY)).thenReturn(null); + assertNull(mManager.matchProvider(createTestScanResult())); +@@ -754,7 +760,7 @@ public class PasspointManagerTest { + */ + @Test + public void matchProviderAsHomeProvider() throws Exception { +- PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); + ANQPData entry = new ANQPData(mClock, null); + + when(mAnqpCache.getEntry(TEST_ANQP_KEY)).thenReturn(entry); +@@ -773,7 +779,7 @@ public class PasspointManagerTest { + */ + @Test + public void matchProviderAsRoamingProvider() throws Exception { +- PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); + ANQPData entry = new ANQPData(mClock, null); + + when(mAnqpCache.getEntry(TEST_ANQP_KEY)).thenReturn(entry); +@@ -792,7 +798,7 @@ public class PasspointManagerTest { + */ + @Test + public void matchProviderWithNoMatch() throws Exception { +- PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); + ANQPData entry = new ANQPData(mClock, null); + + when(mAnqpCache.getEntry(TEST_ANQP_KEY)).thenReturn(entry); +@@ -852,16 +858,16 @@ public class PasspointManagerTest { + InformationElementUtil.class).startMocking(); + try { + PasspointProvider providerHome = addTestProvider(TEST_FQDN + 0, TEST_FRIENDLY_NAME, +- TEST_PACKAGE); ++ TEST_PACKAGE, false); + WifiConfiguration homeWifiConfiguration = new WifiConfiguration(); + homeWifiConfiguration.FQDN = TEST_FQDN + 0; + homeWifiConfiguration.isHomeProviderNetwork = true; + PasspointProvider providerRoaming = addTestProvider(TEST_FQDN + 1, TEST_FRIENDLY_NAME, +- TEST_PACKAGE); ++ TEST_PACKAGE, false); + WifiConfiguration roamingWifiConfiguration = new WifiConfiguration(); + roamingWifiConfiguration.FQDN = TEST_FQDN + 1; + PasspointProvider providerNone = addTestProvider(TEST_FQDN + 2, TEST_FRIENDLY_NAME, +- TEST_PACKAGE); ++ TEST_PACKAGE, false); + ANQPData entry = new ANQPData(mClock, null); + InformationElementUtil.Vsa vsa = new InformationElementUtil.Vsa(); + vsa.anqpDomainID = TEST_ANQP_DOMAIN_ID2; +@@ -905,15 +911,15 @@ public class PasspointManagerTest { + */ + @Test + public void getWifiConfigsForPasspointProfiles() { +- PasspointProvider provider1 = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ PasspointProvider provider1 = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); + WifiConfiguration wifiConfiguration1 = new WifiConfiguration(); + wifiConfiguration1.FQDN = TEST_FQDN; + PasspointProvider provider2 = addTestProvider(TEST_FQDN + 1, TEST_FRIENDLY_NAME, +- TEST_PACKAGE); ++ TEST_PACKAGE, false); + WifiConfiguration wifiConfiguration2 = new WifiConfiguration(); + wifiConfiguration2.FQDN = TEST_FQDN + 1; + PasspointProvider provider3 = addTestProvider(TEST_FQDN + 2, TEST_FRIENDLY_NAME, +- TEST_PACKAGE); ++ TEST_PACKAGE, false); + WifiConfiguration wifiConfiguration3 = new WifiConfiguration(); + wifiConfiguration3.FQDN = TEST_FQDN + 2; + lenient().when(provider1.getWifiConfig()).thenReturn(wifiConfiguration1); +@@ -1114,9 +1120,9 @@ public class PasspointManagerTest { + */ + @Test + public void getMatchingPasspointConfigsForOsuProvidersWithMatch() { +- PasspointProvider provider1 = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ PasspointProvider provider1 = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, true); + PasspointProvider provider2 = addTestProvider(TEST_FQDN2, TEST_FRIENDLY_NAME2, +- TEST_PACKAGE); ++ TEST_PACKAGE, true); + + List osuProviders = new ArrayList<>(); + Map friendlyNames = new HashMap<>(); +@@ -1143,8 +1149,8 @@ public class PasspointManagerTest { + */ + @Test + public void getMatchingPasspointConfigsForOsuProvidersWitNoMatch() { +- addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); +- addTestProvider(TEST_FQDN2, TEST_FRIENDLY_NAME2, TEST_PACKAGE); ++ addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); ++ addTestProvider(TEST_FQDN2, TEST_FRIENDLY_NAME2, TEST_PACKAGE, false); + + List osuProviders = new ArrayList<>(); + +@@ -1444,7 +1450,7 @@ public class PasspointManagerTest { + */ + @Test + public void providerNetworkConnectedFirstTime() throws Exception { +- PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); + when(provider.getHasEverConnected()).thenReturn(false); + mManager.onPasspointNetworkConnected(TEST_FQDN); + verify(provider).setHasEverConnected(eq(true)); +@@ -1459,7 +1465,7 @@ public class PasspointManagerTest { + */ + @Test + public void providerNetworkConnectedNotFirstTime() throws Exception { +- PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); + when(provider.getHasEverConnected()).thenReturn(true); + mManager.onPasspointNetworkConnected(TEST_FQDN); + verify(provider, never()).setHasEverConnected(anyBoolean()); +@@ -1473,7 +1479,7 @@ public class PasspointManagerTest { + */ + @Test + public void updateMetrics() { +- PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ PasspointProvider provider = addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); + ArgumentCaptor> argCaptor = ArgumentCaptor.forClass( + Map.class); + // Provider have not provided a successful network connection. +@@ -1601,7 +1607,7 @@ public class PasspointManagerTest { + */ + @Test + public void verifyHasProviderForCarrierWithNoMatch() { +- addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); + + assertFalse(mManager.hasCarrierProvider(TEST_MCC_MNC)); + } +@@ -1688,7 +1694,7 @@ public class PasspointManagerTest { + WifiConfiguration currentConfiguration = WifiConfigurationTestUtil.createPasspointNetwork(); + currentConfiguration.FQDN = TEST_FQDN; + when(mClientModeImpl.getCurrentWifiConfiguration()).thenReturn(currentConfiguration); +- addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE); ++ addTestProvider(TEST_FQDN, TEST_FRIENDLY_NAME, TEST_PACKAGE, false); + + verify(mAppOpsManager).startWatchingMode(eq(OPSTR_CHANGE_WIFI_STATE), eq(TEST_PACKAGE), + mAppOpChangedListenerCaptor.capture()); +-- +2.40.1 + diff --git a/Scripts/LineageOS-17.1/Patch.sh b/Scripts/LineageOS-17.1/Patch.sh index 120585b5..779cf532 100644 --- a/Scripts/LineageOS-17.1/Patch.sh +++ b/Scripts/LineageOS-17.1/Patch.sh @@ -141,16 +141,15 @@ git fetch https://github.com/LineageOS/android_external_zlib refs/changes/70/352 fi; if enterAndClear "frameworks/base"; then -#applyPatch "$DOS_PATCHES/android_frameworks_base/360952-backport.patch"; #R_asb_2023-07 Passpoint Add more check to limit the config size #XXX: Passpoint 2.0 is API30+ +applyPatch "$DOS_PATCHES/android_frameworks_base/360952-backport.patch"; #R_asb_2023-07 Passpoint Add more check to limit the config size applyPatch "$DOS_PATCHES/android_frameworks_base/360953-backport.patch"; #R_asb_2023-07 Sanitize VPN label to prevent HTML injection applyPatch "$DOS_PATCHES/android_frameworks_base/360954.patch"; #R_asb_2023-07 Limit the number of supported v1 and v2 signers applyPatch "$DOS_PATCHES/android_frameworks_base/360955.patch"; #R_asb_2023-07 Import translations. -#applyPatch "$DOS_PATCHES/android_frameworks_base/360956.patch"; #R_asb_2023-07 Add size check on PPS#policy #XXX: depends on 360952 -#applyPatch "$DOS_PATCHES/android_frameworks_base/360957.patch"; #R_asb_2023-07 Limit the ServiceFriendlyNames #XXX: depends on 360952 +applyPatch "$DOS_PATCHES/android_frameworks_base/360956.patch"; #R_asb_2023-07 Add size check on PPS#policy +applyPatch "$DOS_PATCHES/android_frameworks_base/360957.patch"; #R_asb_2023-07 Limit the ServiceFriendlyNames applyPatch "$DOS_PATCHES/android_frameworks_base/360958-backport.patch"; #R_asb_2023-07 Only allow NEW_TASK flag when adjusting pending intents applyPatch "$DOS_PATCHES/android_frameworks_base/360959.patch"; #R_asb_2023-07 Dismiss keyguard when simpin auth'd and security method is none. applyPatch "$DOS_PATCHES/android_frameworks_base/360960.patch"; #R_asb_2023-07 Increase notification channel limit. -#applyPatch "$DOS_PATCHES/android_frameworks_base/360961-backport.patch"; #R_asb_2023-07 Verify URI permissions for EXTRA_REMOTE_INPUT_HISTORY_ITEMS. #XXX: RemoteInputHistoryItem doesn't exist applyPatch "$DOS_PATCHES/android_frameworks_base/360962-backport.patch"; #R_asb_2023-07 Truncate ShortcutInfo Id applyPatch "$DOS_PATCHES/android_frameworks_base/360963.patch"; #R_asb_2023-07 Visit URIs in landscape/portrait custom remote views. #applyPatch "$DOS_PATCHES/android_frameworks_base/272645.patch"; #ten-bt-sbc-hd-dualchannel: Add CHANNEL_MODE_DUAL_CHANNEL constant (ValdikSS) @@ -223,7 +222,7 @@ fi; fi; if enterAndClear "frameworks/opt/net/wifi"; then -#applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/360964-backport.patch"; #R_asb_2023-07 Add pre-share key check for wapi #XXX: WAPI is API30+ +applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/360965-backport.patch"; #R_asb_2023-07 Limit the number of Passpoint per App if [ "$DOS_GRAPHENE_CONSTIFY" = true ]; then applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/0001-constify_JNINativeMethod.patch"; fi; #Constify JNINativeMethod tables (GrapheneOS) applyPatch "$DOS_PATCHES/android_frameworks_opt_net_wifi/0002-Random_MAC.patch"; #Add support for always generating new random MAC (GrapheneOS) fi;