diff options
| author | 2024-05-10 16:08:29 +0000 | |
|---|---|---|
| committer | 2024-05-10 17:47:36 +0000 | |
| commit | 2c4b80c027ca9b50764bc10a3c5d768a13be4e2a (patch) | |
| tree | 6b7c89c569ccabda485aa5a6a4f5eed391e1749b | |
| parent | 7e1f38a7a0517371bb1d50c41320870478fae3fb (diff) | |
Add RECEIVER_NOT_EXPORTED flag for BiometricDanglingReceiver
In Android U, all receivers registering for non-system broadcasts
are required to include a flag indicating the receiver's exported
state. Apps registering for non-system broadcasts should use the
ContextCompat#registerReceiver APIs with flags.
Fixes: 339811510
Bug: 331804186
Test: lunch sdk_phone64_x86_64-trunk_staging-userdebug; time m -j90; \
emulator -wipe-data -no-snapshot -logcat *:V -logcat-output logcat.txt
Test: m RUN_ERROR_PRONE=true
Test: atest FaceInternalEnumerateClientTest
FingerprintInternalEnumerateClientTest
BiometricDanglingReceiverTest
Flag: NONE
Change-Id: Ie4d438cc76b3bb2fbd39af999332fcd5e4a52427
| -rw-r--r-- | services/core/java/com/android/server/biometrics/BiometricDanglingReceiver.java | 6 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/biometrics/BiometricDanglingReceiverTest.java | 7 |
2 files changed, 9 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/biometrics/BiometricDanglingReceiver.java b/services/core/java/com/android/server/biometrics/BiometricDanglingReceiver.java index 3e8acee26e81..7cf2d3028aef 100644 --- a/services/core/java/com/android/server/biometrics/BiometricDanglingReceiver.java +++ b/services/core/java/com/android/server/biometrics/BiometricDanglingReceiver.java @@ -16,6 +16,7 @@ package com.android.server.biometrics; import static android.content.Intent.ACTION_CLOSE_SYSTEM_DIALOGS; +import static android.content.Intent.FLAG_RECEIVER_FOREGROUND; import android.annotation.NonNull; import android.content.BroadcastReceiver; @@ -63,7 +64,7 @@ public class BiometricDanglingReceiver extends BroadcastReceiver { intentFilter.addAction(ACTION_FACE_RE_ENROLL_LAUNCH); intentFilter.addAction(ACTION_FACE_RE_ENROLL_DISMISS); } - context.registerReceiver(this, intentFilter); + context.registerReceiver(this, intentFilter, Context.RECEIVER_NOT_EXPORTED); } @Override @@ -84,7 +85,8 @@ public class BiometricDanglingReceiver extends BroadcastReceiver { } private void launchBiometricEnrollActivity(Context context, String action) { - context.sendBroadcast(new Intent(ACTION_CLOSE_SYSTEM_DIALOGS)); + context.sendBroadcast( + new Intent(ACTION_CLOSE_SYSTEM_DIALOGS).setFlags(FLAG_RECEIVER_FOREGROUND)); final Intent intent = new Intent(action); intent.setPackage(SETTINGS_PACKAGE); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); diff --git a/services/tests/servicestests/src/com/android/server/biometrics/BiometricDanglingReceiverTest.java b/services/tests/servicestests/src/com/android/server/biometrics/BiometricDanglingReceiverTest.java index 0716a5c5561d..3698d6fb6b76 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/BiometricDanglingReceiverTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/BiometricDanglingReceiverTest.java @@ -26,6 +26,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.NotificationManager; +import android.content.Context; import android.content.Intent; import android.hardware.biometrics.BiometricsProtoEnums; import android.os.UserHandle; @@ -75,13 +76,15 @@ public class BiometricDanglingReceiverTest { @Test public void testFingerprintRegisterReceiver() { initBroadcastReceiver(BiometricsProtoEnums.MODALITY_FINGERPRINT); - verify(mContext).registerReceiver(eq(mBiometricDanglingReceiver), any()); + verify(mContext).registerReceiver(eq(mBiometricDanglingReceiver), any(), + eq(Context.RECEIVER_NOT_EXPORTED)); } @Test public void testFaceRegisterReceiver() { initBroadcastReceiver(BiometricsProtoEnums.MODALITY_FACE); - verify(mContext).registerReceiver(eq(mBiometricDanglingReceiver), any()); + verify(mContext).registerReceiver(eq(mBiometricDanglingReceiver), any(), + eq(Context.RECEIVER_NOT_EXPORTED)); } @Test |