From e86fb5ef56be064839a639702bbe376448f08bed Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 11 May 2023 07:39:19 +0000 Subject: [PATCH] Fix entitlement recheck fail in U Starting with U, only explicit intents will be allowed to launch non-exported internal components. Set package name to entitlement recheck intent so that the intent could be delivered to tethering itself successfully. Bug: 278482046 Test: atest TetheringTests manual verify entitlement recheck work in U Change-Id: Ife30eee13fe39509ccb5786d2a76fbb7baa022a8 --- .../android/networkstack/tethering/EntitlementManager.java | 5 +++-- .../networkstack/tethering/EntitlementManagerTest.java | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Tethering/src/com/android/networkstack/tethering/EntitlementManager.java b/Tethering/src/com/android/networkstack/tethering/EntitlementManager.java index 6d502ce5d3..b88b13bb2f 100644 --- a/Tethering/src/com/android/networkstack/tethering/EntitlementManager.java +++ b/Tethering/src/com/android/networkstack/tethering/EntitlementManager.java @@ -459,8 +459,9 @@ public class EntitlementManager { } @VisibleForTesting - PendingIntent createRecheckAlarmIntent() { + PendingIntent createRecheckAlarmIntent(final String pkgName) { final Intent intent = new Intent(ACTION_PROVISIONING_ALARM); + intent.setPackage(pkgName); return PendingIntent.getBroadcast(mContext, 0, intent, PendingIntent.FLAG_IMMUTABLE); } @@ -470,7 +471,7 @@ public class EntitlementManager { final int period = config.provisioningCheckPeriod; if (period <= 0) return; - mProvisioningRecheckAlarm = createRecheckAlarmIntent(); + mProvisioningRecheckAlarm = createRecheckAlarmIntent(mContext.getPackageName()); AlarmManager alarmManager = (AlarmManager) mContext.getSystemService( Context.ALARM_SERVICE); long triggerAtMillis = SystemClock.elapsedRealtime() + (period * MS_PER_HOUR); diff --git a/Tethering/tests/unit/src/com/android/networkstack/tethering/EntitlementManagerTest.java b/Tethering/tests/unit/src/com/android/networkstack/tethering/EntitlementManagerTest.java index e4263db9c6..c2e1617cd8 100644 --- a/Tethering/tests/unit/src/com/android/networkstack/tethering/EntitlementManagerTest.java +++ b/Tethering/tests/unit/src/com/android/networkstack/tethering/EntitlementManagerTest.java @@ -213,7 +213,8 @@ public final class EntitlementManagerTest { } @Override - PendingIntent createRecheckAlarmIntent() { + PendingIntent createRecheckAlarmIntent(final String pkgName) { + assertEquals(TEST_PACKAGE_NAME, pkgName); return mAlarmIntent; } }