Use carrier service changed callbacks when flag is on

Test: FrameworksNetTests
      Note that carrierPrivilegeAuthenticatorTest is already
      an @Parameterized test with flag = on and off, so it
      already tests both.
Change-Id: I52fcfd3f21a13d7a39952ba828464ce6ef4085c2
This commit is contained in:
Chalard Jean
2023-01-31 20:41:53 +09:00
parent 5a68557438
commit 361dad3243
2 changed files with 22 additions and 7 deletions

View File

@@ -119,7 +119,7 @@ public class CarrierPrivilegeAuthenticator {
unregisterCarrierPrivilegesListeners(); unregisterCarrierPrivilegesListeners();
mModemCount = mTelephonyManager.getActiveModemCount(); mModemCount = mTelephonyManager.getActiveModemCount();
registerCarrierPrivilegesListeners(mModemCount); registerCarrierPrivilegesListeners(mModemCount);
updateCarrierServiceUid(); if (!mUseCallbacksForServiceChanged) updateCarrierServiceUid();
} }
} }
@@ -132,19 +132,26 @@ public class CarrierPrivilegeAuthenticator {
@Override public void onCarrierPrivilegesChanged( @Override public void onCarrierPrivilegesChanged(
@NonNull List<String> privilegedPackageNames, @NonNull List<String> privilegedPackageNames,
@NonNull int[] privilegedUids) { @NonNull int[] privilegedUids) {
if (mUseCallbacksForServiceChanged) return;
// Re-trigger the synchronous check (which is also very cheap due // Re-trigger the synchronous check (which is also very cheap due
// to caching in CarrierPrivilegesTracker). This allows consistency // to caching in CarrierPrivilegesTracker). This allows consistency
// with the onSubscriptionsChangedListener and broadcasts. // with the onSubscriptionsChangedListener and broadcasts.
updateCarrierServiceUid(); updateCarrierServiceUid();
} }
@Override @Override
public void onCarrierServiceChanged( public void onCarrierServiceChanged(@Nullable final String carrierServicePackageName,
@Nullable final String carrierServicePackageName,
final int carrierServiceUid) { final int carrierServiceUid) {
// Re-trigger the synchronous check (which is also very cheap due if (!mUseCallbacksForServiceChanged) {
// to caching in CarrierPrivilegesTracker). This allows consistency // Re-trigger the synchronous check (which is also very cheap due
// with the onSubscriptionsChangedListener and broadcasts. // to caching in CarrierPrivilegesTracker). This allows consistency
updateCarrierServiceUid(); // with the onSubscriptionsChangedListener and broadcasts.
updateCarrierServiceUid();
return;
}
synchronized (mLock) {
mCarrierServiceUid.put(mLogicalSlot, carrierServiceUid);
}
} }
} }

View File

@@ -158,6 +158,8 @@ public class CarrierPrivilegeAuthenticatorTest {
assertNotNull(initialListeners.get(1)); assertNotNull(initialListeners.get(1));
assertEquals(2, initialListeners.size()); assertEquals(2, initialListeners.size());
initialListeners.get(0).onCarrierServiceChanged(null, mCarrierConfigPkgUid);
final NetworkCapabilities.Builder ncBuilder = new NetworkCapabilities.Builder() final NetworkCapabilities.Builder ncBuilder = new NetworkCapabilities.Builder()
.addTransportType(TRANSPORT_CELLULAR) .addTransportType(TRANSPORT_CELLULAR)
.setNetworkSpecifier(new TelephonyNetworkSpecifier(0)); .setNetworkSpecifier(new TelephonyNetworkSpecifier(0));
@@ -194,6 +196,8 @@ public class CarrierPrivilegeAuthenticatorTest {
assertNotNull(newListeners.get(0)); assertNotNull(newListeners.get(0));
assertEquals(1, newListeners.size()); assertEquals(1, newListeners.size());
newListeners.get(0).onCarrierServiceChanged(null, mCarrierConfigPkgUid);
final TelephonyNetworkSpecifier specifier = new TelephonyNetworkSpecifier(0); final TelephonyNetworkSpecifier specifier = new TelephonyNetworkSpecifier(0);
final NetworkCapabilities nc = new NetworkCapabilities.Builder() final NetworkCapabilities nc = new NetworkCapabilities.Builder()
.addTransportType(TRANSPORT_CELLULAR) .addTransportType(TRANSPORT_CELLULAR)
@@ -219,6 +223,7 @@ public class CarrierPrivilegeAuthenticatorTest {
applicationInfo.uid = mCarrierConfigPkgUid + 1; applicationInfo.uid = mCarrierConfigPkgUid + 1;
doReturn(applicationInfo).when(mPackageManager).getApplicationInfo(eq(mTestPkg), anyInt()); doReturn(applicationInfo).when(mPackageManager).getApplicationInfo(eq(mTestPkg), anyInt());
listener.onCarrierPrivilegesChanged(Collections.emptyList(), new int[] {}); listener.onCarrierPrivilegesChanged(Collections.emptyList(), new int[] {});
listener.onCarrierServiceChanged(null, applicationInfo.uid);
assertFalse(mCarrierPrivilegeAuthenticator.hasCarrierPrivilegeForNetworkCapabilities( assertFalse(mCarrierPrivilegeAuthenticator.hasCarrierPrivilegeForNetworkCapabilities(
mCarrierConfigPkgUid, nc)); mCarrierConfigPkgUid, nc));
@@ -228,6 +233,9 @@ public class CarrierPrivilegeAuthenticatorTest {
@Test @Test
public void testDefaultSubscription() throws Exception { public void testDefaultSubscription() throws Exception {
final CarrierPrivilegesListenerShim listener = getCarrierPrivilegesListeners().get(0);
listener.onCarrierServiceChanged(null, mCarrierConfigPkgUid);
final NetworkCapabilities.Builder ncBuilder = new NetworkCapabilities.Builder(); final NetworkCapabilities.Builder ncBuilder = new NetworkCapabilities.Builder();
ncBuilder.addTransportType(TRANSPORT_CELLULAR); ncBuilder.addTransportType(TRANSPORT_CELLULAR);
assertFalse(mCarrierPrivilegeAuthenticator.hasCarrierPrivilegeForNetworkCapabilities( assertFalse(mCarrierPrivilegeAuthenticator.hasCarrierPrivilegeForNetworkCapabilities(