Fixing permission for Biometric Logos in CredMan
The issue is thoroughly documented in the bug, but this change ensures
that the biometric logo setting can be done. There is strange behaviour
with 'signature|privilege' where the new 'privilege' scope appears to
break the 'OR' relationship for our framework UI codebase.
Now, we've added the framework UI package within the privapp allowlist
for that single permission.
Bug: 330906693
Test: Build and UI Test On b/329874867
Change-Id: Ic9dcd4a7e31f5b439ccd807b4ea454cf2cee55a0
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml
index ea3235b..fc4277e 100644
--- a/data/etc/privapp-permissions-platform.xml
+++ b/data/etc/privapp-permissions-platform.xml
@@ -42,6 +42,10 @@
<permission name="android.permission.READ_SYSTEM_GRAMMATICAL_GENDER"/>
</privapp-permissions>
+ <privapp-permissions package="com.android.credentialmanager">
+ <permission name="android.permission.SET_BIOMETRIC_DIALOG_ADVANCED" />
+ </privapp-permissions>
+
<privapp-permissions package="com.android.externalstorage">
<permission name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<permission name="android.permission.WRITE_MEDIA_STORAGE"/>
diff --git a/packages/CredentialManager/AndroidManifest.xml b/packages/CredentialManager/AndroidManifest.xml
index 7a8c25b..1ac8e19 100644
--- a/packages/CredentialManager/AndroidManifest.xml
+++ b/packages/CredentialManager/AndroidManifest.xml
@@ -21,6 +21,7 @@
<uses-permission android:name="android.permission.LAUNCH_CREDENTIAL_SELECTOR"/>
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
+ <uses-permission android:name="android.permission.SET_BIOMETRIC_DIALOG_ADVANCED"/>
<uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/>
<uses-permission android:name="android.permission.ACCESS_INSTANT_APPS" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
diff --git a/packages/CredentialManager/src/com/android/credentialmanager/common/BiometricHandler.kt b/packages/CredentialManager/src/com/android/credentialmanager/common/BiometricHandler.kt
index db5ab56..d21077e 100644
--- a/packages/CredentialManager/src/com/android/credentialmanager/common/BiometricHandler.kt
+++ b/packages/CredentialManager/src/com/android/credentialmanager/common/BiometricHandler.kt
@@ -175,7 +175,8 @@
}
.setAllowedAuthenticators(finalAuthenticators)
.setConfirmationRequired(true)
- // TODO(b/326243754) : Add logo back once new permission privileges sorted out
+ .setLogoBitmap(biometricDisplayInfo.providerIcon)
+ .setLogoDescription(biometricDisplayInfo.providerName)
.setDescription(biometricDisplayInfo.descriptionAboveBiometricButton)
.build()