Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] App fails to open when biometric auth is enabled #2802

Open
raxod502 opened this issue Dec 10, 2023 · 32 comments
Open

[BUG] App fails to open when biometric auth is enabled #2802

raxod502 opened this issue Dec 10, 2023 · 32 comments
Labels
A-UI-UX Area: General UI/UX concerns C-bug Category: This is a bug P-high Priority: high, must be resolved before next major release S-blocked Status: marked as blocked ❌ on something else such as a RFC or other implementation work.
Milestone

Comments

@raxod502
Copy link

raxod502 commented Dec 10, 2023

TL;DR

This is a bug in Android 14 that was reported to Google in September and hasn't been fixed yet. There are two available workarounds:

For users of version 1.13.5 (courtesy jmandel)

  • Reboot your device, then immediately launch Password Store and disable the biometric authentication feature.

For users of version 2.0.0-SNAPSHOT

Original issue contents below.

Describe the bug

Sometime in the last few days, it became no longer possible to open the app. When tapping it from the home screen, the screen transitions to a black screen momentarily and then crashes back to home. Logs are attached.

This appears to be related to biometric authentication. When clearing all user data, I can open the app, and set up a password repository, and enter and exit the app multiple times. However, when enabling the option to require biometric input to open the app, this behavior occurs as soon as the app is exited and then opened again. This was not previously the case, but I don't know what changed.

Similar symptom to #1044 but it only started happening for me in the last week or so.

Steps to reproduce

Steps to reproduce the behavior:

  1. Launch the app for the first time
  2. Immediately enter settings, enable the biometric authentication requirement in the general section, authenticate to enable
  3. Exit the app and close it from the app switcher
  4. Try opening again
  5. App crashes

Expected behavior

When biometric authentication is enabled, the app should prompt for it when opening, and after authentication is provided, should open.

Screenshots

No response

Device information

  • Device: Google Pixel 6a
  • OS: Android 14 (GrapheneOS)
  • App version: Snapshot build 35aa871 (free)

Additional context

adb logs for "steps to reproduce" above, steps 1-3
--------- beginning of main
12-09 22:22:35.144 12594 12594 I p.passwordstore: Using CollectorTypeCC GC.
12-09 22:22:35.147 12594 12594 E p.passwordstore: Not starting debugger since process cannot load the jdwp agent.
12-09 22:22:35.197 12594 12594 W app_process64: type=1400 audit(0.0:5227): avc:  denied  { read } for  name="u:object_r:userdebug_or_eng_prop:s0" dev="tmpfs" ino=342 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:userdebug_or_eng_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.201 12594 12594 W libc    : Access denied finding property "ro.debuggable"
12-09 22:22:35.202 12594 12594 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 10132 <<<<<<
12-09 22:22:35.202 12594 12594 W libc    : Access denied finding property "ro.debuggable"
12-09 22:22:35.197 12594 12594 W p.passwordstore: type=1400 audit(0.0:5228): avc:  denied  { read } for  name="u:object_r:userdebug_or_eng_prop:s0" dev="tmpfs" ino=342 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:userdebug_or_eng_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.205 12594 12594 I AndroidRuntime: Using default boot image
12-09 22:22:35.205 12594 12594 I AndroidRuntime: Leaving lock profiling enabled
12-09 22:22:35.205 12594 12594 W libc    : Access denied finding property "odsign.verification.success"
12-09 22:22:35.201 12594 12594 W p.passwordstore: type=1400 audit(0.0:5229): avc:  denied  { read } for  name="u:object_r:odsign_prop:s0" dev="tmpfs" ino=263 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:odsign_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.205 12594 12594 W libc    : Access denied finding property "ro.debuggable"
12-09 22:22:35.201 12594 12594 W p.passwordstore: type=1400 audit(0.0:5230): avc:  denied  { read } for  name="u:object_r:userdebug_or_eng_prop:s0" dev="tmpfs" ino=342 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:userdebug_or_eng_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.205 12594 12594 E cutils-trace: Error opening trace file: No such file or directory (2)
12-09 22:22:35.206 12594 12594 W app.passwordstore: ART APEX data files are untrusted.
12-09 22:22:35.201 12594 12594 W p.passwordstore: type=1400 audit(0.0:5231): avc:  denied  { getattr } for  path="/apex/apex-info-list.xml" dev="tmpfs" ino=81 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:apex_info_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.207 12594 12594 I app.passwordstore: Using CollectorTypeCC GC.
12-09 22:22:35.205 12594 12594 W p.passwordstore: type=1400 audit(0.0:5232): avc:  denied  { lock } for  path="/system/framework/arm64/boot.art" dev="dm-10" ino=1448 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.209 12594 12594 W p.passwordstore: type=1400 audit(0.0:5233): avc:  denied  { lock } for  path="/system/framework/arm64/boot-core-libart.art" dev="dm-10" ino=1394 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.209 12594 12594 W p.passwordstore: type=1400 audit(0.0:5234): avc:  denied  { lock } for  path="/system/framework/arm64/boot-okhttp.art" dev="dm-10" ino=1430 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.209 12594 12594 W p.passwordstore: type=1400 audit(0.0:5235): avc:  denied  { lock } for  path="/system/framework/arm64/boot-bouncycastle.art" dev="dm-10" ino=1382 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.209 12594 12594 W p.passwordstore: type=1400 audit(0.0:5236): avc:  denied  { lock } for  path="/system/framework/arm64/boot-apache-xml.art" dev="dm-10" ino=1376 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.209 12594 12594 W p.passwordstore: type=1400 audit(0.0:5237): avc:  denied  { lock } for  path="/system/framework/arm64/boot-framework.art" dev="dm-10" ino=1418 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.217 12594 12594 W p.passwordstore: type=1400 audit(0.0:5238): avc:  denied  { lock } for  path="/system/framework/arm64/boot-framework-graphics.art" dev="dm-10" ino=1412 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.217 12594 12594 W p.passwordstore: type=1400 audit(0.0:5239): avc:  denied  { lock } for  path="/system/framework/arm64/boot-ext.art" dev="dm-10" ino=1400 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.217 12594 12594 W p.passwordstore: type=1400 audit(0.0:5240): avc:  denied  { lock } for  path="/system/framework/arm64/boot-telephony-common.art" dev="dm-10" ino=1436 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.221 12594 12594 W p.passwordstore: type=1400 audit(0.0:5241): avc:  denied  { lock } for  path="/system/framework/arm64/boot-voip-common.art" dev="dm-10" ino=1442 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.221 12594 12594 W p.passwordstore: type=1400 audit(0.0:5242): avc:  denied  { lock } for  path="/system/framework/arm64/boot-ims-common.art" dev="dm-10" ino=1424 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.221 12594 12594 W p.passwordstore: type=1400 audit(0.0:5243): avc:  denied  { lock } for  path="/system/framework/arm64/boot-core-icu4j.art" dev="dm-10" ino=1388 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.225 12594 12594 W p.passwordstore: type=1400 audit(0.0:5244): avc:  denied  { lock } for  path="/system/framework/arm64/boot-framework-adservices.art" dev="dm-10" ino=1406 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.256 12594 12594 D nativeloader: InitDefaultPublicLibraries for_preload=1: libandroid.so:libaaudio.so:libamidi.so:libbinder_ndk.so:libc.so:libcamera2ndk.so:libdl.so:libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libicu.so:libicui18n.so:libicuuc.so:libjnigraphics.so:liblog.so:libmediandk.so:libm.so:libnativehelper.so:libnativewindow.so:libOpenMAXAL.so:libOpenSLES.so:libRS.so:libstdc++.so:libsync.so:libvulkan.so:libwebviewchromium_plat_support.so:libz.so
12-09 22:22:35.263 12594 12594 D app.passwordstore: Time zone APEX ICU file found: /apex/com.android.tzdata/etc/icu/icu_tzdata.dat
12-09 22:22:35.263 12594 12594 D app.passwordstore: I18n APEX ICU file found: /apex/com.android.i18n/etc/icu/icudt72l.dat
12-09 22:22:35.279 12594 12594 W libc    : Access denied finding property "ro.product.name_for_attestation"
12-09 22:22:35.279 12594 12594 W libc    : Access denied finding property "ro.product.device_for_attestation"
12-09 22:22:35.279 12594 12594 W libc    : Access denied finding property "ro.product.manufacturer_for_attestation"
12-09 22:22:35.273 12594 12594 W main    : type=1400 audit(0.0:5245): avc:  denied  { read } for  name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=103 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.279 12594 12594 W libc    : Access denied finding property "ro.product.brand_for_attestation"
12-09 22:22:35.279 12594 12594 W libc    : Access denied finding property "ro.product.model_for_attestation"
12-09 22:22:35.273 12594 12594 W main    : type=1400 audit(0.0:5246): avc:  denied  { read } for  name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=103 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.273 12594 12594 W main    : type=1400 audit(0.0:5247): avc:  denied  { read } for  name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=103 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.273 12594 12594 W main    : type=1400 audit(0.0:5248): avc:  denied  { read } for  name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=103 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.279 12594 12594 W libc    : Access denied finding property "ro.debuggable"
12-09 22:22:35.273 12594 12594 W main    : type=1400 audit(0.0:5249): avc:  denied  { read } for  name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=103 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.273 12594 12594 W main    : type=1400 audit(0.0:5250): avc:  denied  { read } for  name="u:object_r:userdebug_or_eng_prop:s0" dev="tmpfs" ino=342 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:userdebug_or_eng_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.280 12594 12594 D AndroidRuntime: Calling main entry com.android.internal.os.ExecInit
12-09 22:22:35.280 12594 12594 D Zygote  : begin preload
12-09 22:22:35.280 12594 12594 I Zygote  : Calling ZygoteHooks.beginPreload()
12-09 22:22:35.289 12594 12594 I Zygote  : Preloading shared libraries...
12-09 22:22:35.290 12594 12594 E app.passwordstore: Unable to find pattern file or unable to map it for am
12-09 22:22:35.291 12594 12594 I Zygote  : Called ZygoteHooks.endPreload()
12-09 22:22:35.296 12594 12594 I Zygote  : Installed AndroidKeyStoreProvider in 5ms.
12-09 22:22:35.296 12594 12594 D Zygote  : end preload
12-09 22:22:35.300 12594 12621 W System  : No Compatibility callbacks set! Querying change 263076149
12-09 22:22:35.300 12594 12621 W System  : No Compatibility callbacks set! Querying change 263076149
12-09 22:22:35.300 12594 12621 W System  : No Compatibility callbacks set! Querying change 263076149
12-09 22:22:35.301 12594 12621 W libc    : Access denied finding property "qemu.sf.lcd_density"
12-09 22:22:35.301 12594 12621 W libc    : Access denied finding property "qemu.sf.lcd_density"
12-09 22:22:35.297 12594 12594 W binder:12594_2: type=1400 audit(0.0:5251): avc:  denied  { read } for  name="u:object_r:qemu_sf_lcd_density_prop:s0" dev="tmpfs" ino=283 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:qemu_sf_lcd_density_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.297 12594 12594 W binder:12594_2: type=1400 audit(0.0:5252): avc:  denied  { read } for  name="u:object_r:qemu_sf_lcd_density_prop:s0" dev="tmpfs" ino=283 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:qemu_sf_lcd_density_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.306 12594 12594 D CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10132; state: ENABLED
12-09 22:22:35.306 12594 12594 D CompatibilityChangeReporter: Compat change id reported: 242716250; UID 10132; state: ENABLED
12-09 22:22:35.306 12594 12594 I Typeface: Preloading /system/fonts/Roboto-Regular.ttf
12-09 22:22:35.306 12594 12594 I Typeface: Preloading /system/fonts/RobotoStatic-Regular.ttf
12-09 22:22:35.308 12594 12594 D CompatibilityChangeReporter: Compat change id reported: 247079863; UID 10132; state: ENABLED
12-09 22:22:35.331 12594 12594 D nativeloader: InitApexLibraries:
12-09 22:22:35.331 12594 12594 D nativeloader:   com_android_art: libnativehelper.so
12-09 22:22:35.331 12594 12594 D nativeloader:   com_android_i18n: libicui18n.so:libicuuc.so:libicu.so
12-09 22:22:35.331 12594 12594 D nativeloader:   com_android_neuralnetworks: libneuralnetworks.so
12-09 22:22:35.331 12594 12594 D nativeloader: InitDefaultPublicLibraries for_preload=0: libandroid.so:libaaudio.so:libamidi.so:libbinder_ndk.so:libc.so:libcamera2ndk.so:libclang_rt.hwasan-aarch64-android.so:libdl.so:libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libjnigraphics.so:liblog.so:libmediandk.so:libm.so:libnativewindow.so:libOpenMAXAL.so:libOpenSLES.so:libRS.so:libstdc++.so:libsync.so:libvulkan.so:libwebviewchromium_plat_support.so:libz.so
12-09 22:22:35.331 12594 12594 D nativeloader: Configuring clns-1 for other apk /data/app/~~DdBJLHsEuDJ8EiK-erpiqQ==/app.passwordstore-Z6XpECdvUv8N-y70MmxBiA==/base.apk. target_sdk_version=34, uses_libraries=, library_path=/data/app/~~DdBJLHsEuDJ8EiK-erpiqQ==/app.passwordstore-Z6XpECdvUv8N-y70MmxBiA==/lib/arm64, permitted_path=/data:/mnt/expand:/data/user/0/app.passwordstore
12-09 22:22:35.331 12594 12594 D nativeloader: InitExtendedPublicLibraries: libedgetpu_dba.google.so
12-09 22:22:35.332 12594 12594 D nativeloader: InitVendorPublicLibraries: libOpenCL.so:libOpenCL-pixel.so:libedgetpu_client.google.so:libedgetpu_util.so:lib_aion_buffer.so:libmetrics_logger.so
12-09 22:22:35.332 12594 12594 D nativeloader: InitProductPublicLibraries: 
12-09 22:22:35.335 12594 12594 V GraphicsEnvironment: Currently set values for:
12-09 22:22:35.335 12594 12594 V GraphicsEnvironment:   angle_gl_driver_selection_pkgs=[]
12-09 22:22:35.335 12594 12594 V GraphicsEnvironment:   angle_gl_driver_selection_values=[]
12-09 22:22:35.336 12594 12594 V GraphicsEnvironment: ANGLE GameManagerService for app.passwordstore: false
12-09 22:22:35.336 12594 12594 V GraphicsEnvironment: app.passwordstore is not listed in per-application setting
12-09 22:22:35.336 12594 12594 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
12-09 22:22:35.437 12594 12626 I DMABUFHEAPS: Using DMA-BUF heap named: vframe-secure
12-09 22:22:35.439 12594 12594 D AppCompatDelegate: Checking for metadata for AppLocalesMetadataHolderService : Service not found
12-09 22:22:35.459 12594 12594 D CompatibilityChangeReporter: Compat change id reported: 237531167; UID 10132; state: DISABLED
12-09 22:22:35.453 12594 12594 W p.passwordstore: type=1400 audit(0.0:5253): avc:  denied  { read } for  name="u:object_r:userdebug_or_eng_prop:s0" dev="tmpfs" ino=342 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:userdebug_or_eng_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:22:35.459 12594 12594 W libc    : Access denied finding property "ro.debuggable"
12-09 22:22:35.481 12594 12626 E cutils-trace: Error opening trace file: No such file or directory (2)
12-09 22:22:35.499 12594 12594 D CompatibilityChangeReporter: Compat change id reported: 210923482; UID 10132; state: ENABLED
12-09 22:22:35.819 12594 12594 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@bd90816
12-09 22:22:41.375 12594 12656 D ProfileInstaller: Installing profile for app.passwordstore
12-09 22:22:45.671 12594 12626 D OpenGLRenderer: endAllActiveAnimators on 0xb400c2c3bafcc400 (RippleDrawable) with handle 0xb400c18ce23dee10
12-09 22:22:49.747 12594 12594 W WindowOnBackDispatcher: OnBackInvokedCallback is not enabled for the application.
12-09 22:22:49.747 12594 12594 W WindowOnBackDispatcher: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
12-09 22:22:51.616 12594 12594 W WindowOnBackDispatcher: OnBackInvokedCallback is not enabled for the application.
12-09 22:22:51.616 12594 12594 W WindowOnBackDispatcher: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
12-09 22:22:51.616 12594 12594 D BiometricAuthenticator: onAuthenticationSucceeded()
12-09 22:22:55.487 12594 12594 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@366692d
adb logs for "steps to reproduce" above, steps 4-5
--------- beginning of main
12-09 22:23:05.510 12679 12679 I p.passwordstore: Using CollectorTypeCC GC.
12-09 22:23:05.513 12679 12679 E p.passwordstore: Not starting debugger since process cannot load the jdwp agent.
12-09 22:23:05.569 12679 12679 W libc    : Access denied finding property "ro.debuggable"
12-09 22:23:05.565 12679 12679 W app_process64: type=1400 audit(0.0:5254): avc:  denied  { read } for  name="u:object_r:userdebug_or_eng_prop:s0" dev="tmpfs" ino=342 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:userdebug_or_eng_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.569 12679 12679 D AndroidRuntime: >>>>>> START com.android.internal.os.RuntimeInit uid 10132 <<<<<<
12-09 22:23:05.565 12679 12679 W p.passwordstore: type=1400 audit(0.0:5255): avc:  denied  { read } for  name="u:object_r:userdebug_or_eng_prop:s0" dev="tmpfs" ino=342 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:userdebug_or_eng_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.570 12679 12679 W libc    : Access denied finding property "ro.debuggable"
12-09 22:23:05.572 12679 12679 I AndroidRuntime: Using default boot image
12-09 22:23:05.572 12679 12679 I AndroidRuntime: Leaving lock profiling enabled
12-09 22:23:05.572 12679 12679 W libc    : Access denied finding property "odsign.verification.success"
12-09 22:23:05.572 12679 12679 W libc    : Access denied finding property "ro.debuggable"
12-09 22:23:05.565 12679 12679 W p.passwordstore: type=1400 audit(0.0:5256): avc:  denied  { read } for  name="u:object_r:odsign_prop:s0" dev="tmpfs" ino=263 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:odsign_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.569 12679 12679 W p.passwordstore: type=1400 audit(0.0:5257): avc:  denied  { read } for  name="u:object_r:userdebug_or_eng_prop:s0" dev="tmpfs" ino=342 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:userdebug_or_eng_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.573 12679 12679 E cutils-trace: Error opening trace file: No such file or directory (2)
12-09 22:23:05.574 12679 12679 W app.passwordstore: ART APEX data files are untrusted.
12-09 22:23:05.574 12679 12679 I app.passwordstore: Using CollectorTypeCC GC.
12-09 22:23:05.569 12679 12679 W p.passwordstore: type=1400 audit(0.0:5258): avc:  denied  { getattr } for  path="/apex/apex-info-list.xml" dev="tmpfs" ino=81 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:apex_info_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.573 12679 12679 W p.passwordstore: type=1400 audit(0.0:5259): avc:  denied  { lock } for  path="/system/framework/arm64/boot.art" dev="dm-10" ino=1448 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.577 12679 12679 W p.passwordstore: type=1400 audit(0.0:5260): avc:  denied  { lock } for  path="/system/framework/arm64/boot-core-libart.art" dev="dm-10" ino=1394 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.577 12679 12679 W p.passwordstore: type=1400 audit(0.0:5261): avc:  denied  { lock } for  path="/system/framework/arm64/boot-okhttp.art" dev="dm-10" ino=1430 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.577 12679 12679 W p.passwordstore: type=1400 audit(0.0:5262): avc:  denied  { lock } for  path="/system/framework/arm64/boot-bouncycastle.art" dev="dm-10" ino=1382 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.577 12679 12679 W p.passwordstore: type=1400 audit(0.0:5263): avc:  denied  { lock } for  path="/system/framework/arm64/boot-apache-xml.art" dev="dm-10" ino=1376 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.577 12679 12679 W p.passwordstore: type=1400 audit(0.0:5264): avc:  denied  { lock } for  path="/system/framework/arm64/boot-framework.art" dev="dm-10" ino=1418 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.585 12679 12679 W p.passwordstore: type=1400 audit(0.0:5265): avc:  denied  { lock } for  path="/system/framework/arm64/boot-framework-graphics.art" dev="dm-10" ino=1412 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.585 12679 12679 W p.passwordstore: type=1400 audit(0.0:5266): avc:  denied  { lock } for  path="/system/framework/arm64/boot-ext.art" dev="dm-10" ino=1400 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.585 12679 12679 W p.passwordstore: type=1400 audit(0.0:5267): avc:  denied  { lock } for  path="/system/framework/arm64/boot-telephony-common.art" dev="dm-10" ino=1436 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.585 12679 12679 W p.passwordstore: type=1400 audit(0.0:5268): avc:  denied  { lock } for  path="/system/framework/arm64/boot-voip-common.art" dev="dm-10" ino=1442 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.589 12679 12679 W p.passwordstore: type=1400 audit(0.0:5269): avc:  denied  { lock } for  path="/system/framework/arm64/boot-ims-common.art" dev="dm-10" ino=1424 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.589 12679 12679 W p.passwordstore: type=1400 audit(0.0:5270): avc:  denied  { lock } for  path="/system/framework/arm64/boot-core-icu4j.art" dev="dm-10" ino=1388 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.593 12679 12679 W p.passwordstore: type=1400 audit(0.0:5271): avc:  denied  { lock } for  path="/system/framework/arm64/boot-framework-adservices.art" dev="dm-10" ino=1406 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:system_file:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.621 12679 12679 D nativeloader: InitDefaultPublicLibraries for_preload=1: libandroid.so:libaaudio.so:libamidi.so:libbinder_ndk.so:libc.so:libcamera2ndk.so:libdl.so:libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libicu.so:libicui18n.so:libicuuc.so:libjnigraphics.so:liblog.so:libmediandk.so:libm.so:libnativehelper.so:libnativewindow.so:libOpenMAXAL.so:libOpenSLES.so:libRS.so:libstdc++.so:libsync.so:libvulkan.so:libwebviewchromium_plat_support.so:libz.so
12-09 22:23:05.628 12679 12679 D app.passwordstore: Time zone APEX ICU file found: /apex/com.android.tzdata/etc/icu/icu_tzdata.dat
12-09 22:23:05.628 12679 12679 D app.passwordstore: I18n APEX ICU file found: /apex/com.android.i18n/etc/icu/icudt72l.dat
12-09 22:23:05.643 12679 12679 W libc    : Access denied finding property "ro.product.name_for_attestation"
12-09 22:23:05.644 12679 12679 W libc    : Access denied finding property "ro.product.device_for_attestation"
12-09 22:23:05.644 12679 12679 W libc    : Access denied finding property "ro.product.manufacturer_for_attestation"
12-09 22:23:05.644 12679 12679 W libc    : Access denied finding property "ro.product.brand_for_attestation"
12-09 22:23:05.644 12679 12679 W libc    : Access denied finding property "ro.product.model_for_attestation"
12-09 22:23:05.637 12679 12679 W main    : type=1400 audit(0.0:5272): avc:  denied  { read } for  name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=103 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.637 12679 12679 W main    : type=1400 audit(0.0:5273): avc:  denied  { read } for  name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=103 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.637 12679 12679 W main    : type=1400 audit(0.0:5274): avc:  denied  { read } for  name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=103 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.644 12679 12679 W libc    : Access denied finding property "ro.debuggable"
12-09 22:23:05.637 12679 12679 W main    : type=1400 audit(0.0:5275): avc:  denied  { read } for  name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=103 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.637 12679 12679 W main    : type=1400 audit(0.0:5276): avc:  denied  { read } for  name="u:object_r:build_attestation_prop:s0" dev="tmpfs" ino=103 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:build_attestation_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.637 12679 12679 W main    : type=1400 audit(0.0:5277): avc:  denied  { read } for  name="u:object_r:userdebug_or_eng_prop:s0" dev="tmpfs" ino=342 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:userdebug_or_eng_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.645 12679 12679 D AndroidRuntime: Calling main entry com.android.internal.os.ExecInit
12-09 22:23:05.645 12679 12679 D Zygote  : begin preload
12-09 22:23:05.645 12679 12679 I Zygote  : Calling ZygoteHooks.beginPreload()
12-09 22:23:05.654 12679 12679 I Zygote  : Preloading shared libraries...
12-09 22:23:05.655 12679 12679 E app.passwordstore: Unable to find pattern file or unable to map it for am
12-09 22:23:05.655 12679 12679 I Zygote  : Called ZygoteHooks.endPreload()
12-09 22:23:05.661 12679 12679 I Zygote  : Installed AndroidKeyStoreProvider in 5ms.
12-09 22:23:05.661 12679 12679 D Zygote  : end preload
12-09 22:23:05.665 12679 12706 W System  : No Compatibility callbacks set! Querying change 263076149
12-09 22:23:05.665 12679 12706 W System  : No Compatibility callbacks set! Querying change 263076149
12-09 22:23:05.665 12679 12706 W System  : No Compatibility callbacks set! Querying change 263076149
12-09 22:23:05.666 12679 12706 W libc    : Access denied finding property "qemu.sf.lcd_density"
12-09 22:23:05.666 12679 12706 W libc    : Access denied finding property "qemu.sf.lcd_density"
12-09 22:23:05.661 12679 12679 W binder:12679_2: type=1400 audit(0.0:5278): avc:  denied  { read } for  name="u:object_r:qemu_sf_lcd_density_prop:s0" dev="tmpfs" ino=283 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:qemu_sf_lcd_density_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.661 12679 12679 W binder:12679_2: type=1400 audit(0.0:5279): avc:  denied  { read } for  name="u:object_r:qemu_sf_lcd_density_prop:s0" dev="tmpfs" ino=283 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:qemu_sf_lcd_density_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.671 12679 12679 D CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10132; state: ENABLED
12-09 22:23:05.671 12679 12679 D CompatibilityChangeReporter: Compat change id reported: 242716250; UID 10132; state: ENABLED
12-09 22:23:05.671 12679 12679 I Typeface: Preloading /system/fonts/Roboto-Regular.ttf
12-09 22:23:05.671 12679 12679 I Typeface: Preloading /system/fonts/RobotoStatic-Regular.ttf
12-09 22:23:05.673 12679 12679 D CompatibilityChangeReporter: Compat change id reported: 247079863; UID 10132; state: ENABLED
12-09 22:23:05.695 12679 12679 D nativeloader: InitApexLibraries:
12-09 22:23:05.695 12679 12679 D nativeloader:   com_android_art: libnativehelper.so
12-09 22:23:05.695 12679 12679 D nativeloader:   com_android_i18n: libicui18n.so:libicuuc.so:libicu.so
12-09 22:23:05.695 12679 12679 D nativeloader:   com_android_neuralnetworks: libneuralnetworks.so
12-09 22:23:05.695 12679 12679 D nativeloader: InitDefaultPublicLibraries for_preload=0: libandroid.so:libaaudio.so:libamidi.so:libbinder_ndk.so:libc.so:libcamera2ndk.so:libclang_rt.hwasan-aarch64-android.so:libdl.so:libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libjnigraphics.so:liblog.so:libmediandk.so:libm.so:libnativewindow.so:libOpenMAXAL.so:libOpenSLES.so:libRS.so:libstdc++.so:libsync.so:libvulkan.so:libwebviewchromium_plat_support.so:libz.so
12-09 22:23:05.695 12679 12679 D nativeloader: Configuring clns-1 for other apk /data/app/~~DdBJLHsEuDJ8EiK-erpiqQ==/app.passwordstore-Z6XpECdvUv8N-y70MmxBiA==/base.apk. target_sdk_version=34, uses_libraries=, library_path=/data/app/~~DdBJLHsEuDJ8EiK-erpiqQ==/app.passwordstore-Z6XpECdvUv8N-y70MmxBiA==/lib/arm64, permitted_path=/data:/mnt/expand:/data/user/0/app.passwordstore
12-09 22:23:05.695 12679 12679 D nativeloader: InitExtendedPublicLibraries: libedgetpu_dba.google.so
12-09 22:23:05.695 12679 12679 D nativeloader: InitVendorPublicLibraries: libOpenCL.so:libOpenCL-pixel.so:libedgetpu_client.google.so:libedgetpu_util.so:lib_aion_buffer.so:libmetrics_logger.so
12-09 22:23:05.695 12679 12679 D nativeloader: InitProductPublicLibraries: 
12-09 22:23:05.699 12679 12679 V GraphicsEnvironment: Currently set values for:
12-09 22:23:05.699 12679 12679 V GraphicsEnvironment:   angle_gl_driver_selection_pkgs=[]
12-09 22:23:05.699 12679 12679 V GraphicsEnvironment:   angle_gl_driver_selection_values=[]
12-09 22:23:05.699 12679 12679 V GraphicsEnvironment: ANGLE GameManagerService for app.passwordstore: false
12-09 22:23:05.699 12679 12679 V GraphicsEnvironment: app.passwordstore is not listed in per-application setting
12-09 22:23:05.699 12679 12679 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
12-09 22:23:05.770 12679 12712 I DMABUFHEAPS: Using DMA-BUF heap named: vframe-secure
12-09 22:23:05.773 12679 12679 D AppCompatDelegate: Checking for metadata for AppLocalesMetadataHolderService : Service not found
12-09 22:23:05.793 12679 12679 D CompatibilityChangeReporter: Compat change id reported: 237531167; UID 10132; state: DISABLED
12-09 22:23:05.794 12679 12679 W libc    : Access denied finding property "ro.debuggable"
12-09 22:23:05.789 12679 12679 W p.passwordstore: type=1400 audit(0.0:5280): avc:  denied  { read } for  name="u:object_r:userdebug_or_eng_prop:s0" dev="tmpfs" ino=342 scontext=u:r:untrusted_app:s0:c132,c256,c512,c768 tcontext=u:object_r:userdebug_or_eng_prop:s0 tclass=file permissive=0 app=app.passwordstore
12-09 22:23:05.797 12679 12679 W WindowOnBackDispatcher: OnBackInvokedCallback is not enabled for the application.
12-09 22:23:05.797 12679 12679 W WindowOnBackDispatcher: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
12-09 22:23:05.815 12679 12712 E cutils-trace: Error opening trace file: No such file or directory (2)
12-09 22:23:05.818 12679 12679 D BiometricAuthenticator: onAuthenticationError(errorCode=10, msg=Authentication canceled)
12-09 22:23:05.839 12679 12679 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@ea8f706
12-09 22:23:09.241 12679 12679 W WindowOnBackDispatcher: OnBackInvokedCallback is not enabled for the application.
12-09 22:23:09.241 12679 12679 W WindowOnBackDispatcher: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
12-09 22:23:09.250 12679 12679 D BiometricAuthenticator: onAuthenticationError(errorCode=10, msg=Authentication canceled)
12-09 22:23:09.266 12679 12679 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@93019c6
12-09 22:23:10.438 12679 12679 W WindowOnBackDispatcher: OnBackInvokedCallback is not enabled for the application.
12-09 22:23:10.438 12679 12679 W WindowOnBackDispatcher: Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
12-09 22:23:10.448 12679 12679 D BiometricAuthenticator: onAuthenticationError(errorCode=10, msg=Authentication canceled)
12-09 22:23:10.532 12679 12679 W app.passwordstore: Cleared Reference was only reachable from finalizer (only reported once)
12-09 22:23:10.539 12679 12679 I app.passwordstore: Explicit concurrent copying GC freed 149409(6073KB) AllocSpace objects, 31(1004KB) LOS objects, 76% free, 2486KB/10MB, paused 130us,58us total 74.695ms
12-09 22:23:10.637 12679 12679 I app.passwordstore: Explicit concurrent copying GC freed 4980(248KB) AllocSpace objects, 0(0B) LOS objects, 78% free, 2270KB/10MB, paused 62us,55us total 85.037ms
12-09 22:23:10.659 12679 12679 W WindowOnBackDispatcher: sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@f7fc86
12-09 22:23:11.371 12679 12758 D ProfileInstaller: Installing profile for app.passwordstore
@raxod502 raxod502 added C-bug Category: This is a bug S-awaiting-triage Status: New issues that have not been assessed yet labels Dec 10, 2023
@raxod502
Copy link
Author

raxod502 commented Dec 10, 2023

I compiled 8c5655c from source (free version) and ran the same steps as above on it. Same result. This suggests to me that what changed is not something in a recent version of APS, but rather something in my environment that is now triggering a bug. This is not conclusive evidence, however. I had trouble compiling older versions due to Gradle errors, and did not investigate further, but I can if it would be helpful information.

@msfjarvis
Copy link
Member

Nothing in the logs jumps out as problematic, I'm out for the week so will have to wait for the next weekend before I can take a proper look.

@AquaMorph
Copy link

I have also hit this as an issue. I am also running GrapheneOS on my Pixel 7 and I think what caused it to happen is the recent GrapheneOS update as that is when I started having this issue.

I plugged in my phone and looked at the logcat when I try to launch the app and I get the following errors every time I try to launch it.

2023-12-10 09:01:52.290  1985-1985  ThemeUtils              com.android.systemui                 E  View class com.android.systemui.biometrics.BiometricPromptLottieViewWrapper is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
2023-12-10 09:01:52.290  1985-1985  ThemeUtils              com.android.systemui                 E  View class com.android.systemui.biometrics.BiometricPromptLottieViewWrapper is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
2023-12-10 09:01:52.294  1352-1352  AuthSessionCoordinator  system_server                        E  Error unable to find auth operation : authEndedFor(userId=0 ,biometricStrength=15, sensorId=0, requestId=145, wasSuccessful=true)
2023-12-10 09:01:52.307  1985-2104  TaskViewTransitions     com.android.systemui                 E  Found a launching TaskView in the wrong transition. All TaskView launches should be initiated by shell and in their own transition: 980

@msfjarvis
Copy link
Member

I have also hit this as an issue. I am also running GrapheneOS on my Pixel 7 and I think what caused it to happen is the recent GrapheneOS update as that is when I started having this issue.

I plugged in my phone and looked at the logcat when I try to launch the app and I get the following errors every time I try to launch it.

2023-12-10 09:01:52.290  1985-1985  ThemeUtils              com.android.systemui                 E  View class com.android.systemui.biometrics.BiometricPromptLottieViewWrapper is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
2023-12-10 09:01:52.290  1985-1985  ThemeUtils              com.android.systemui                 E  View class com.android.systemui.biometrics.BiometricPromptLottieViewWrapper is an AppCompat widget that can only be used with a Theme.AppCompat theme (or descendant).
2023-12-10 09:01:52.294  1352-1352  AuthSessionCoordinator  system_server                        E  Error unable to find auth operation : authEndedFor(userId=0 ,biometricStrength=15, sensorId=0, requestId=145, wasSuccessful=true)
2023-12-10 09:01:52.307  1985-2104  TaskViewTransitions     com.android.systemui                 E  Found a launching TaskView in the wrong transition. All TaskView launches should be initiated by shell and in their own transition: 980

Yeah this all but confirms it's a bug in GrapheneOS. Can either of you check with another app that uses biometrics and see if the behaviour is identical? I expect it to be since logs indicate as much but more evidence never hurts a debugging process.

@AquaMorph
Copy link

I have several other apps that use biometrics and they all work without any issues. Password Store is the only app I have seen this behavior on.

@msfjarvis
Copy link
Member

I have several other apps that use biometrics and they all work without any issues. Password Store is the only app I have seen this behavior on.

That's quite odd, I suppose I'm misreading the logs somehow and it's an APS bug after all. I'll test it on a Pixel in a bit and see what's up.

@msfjarvis
Copy link
Member

Now that I'm on my laptop I can see the issue, the app isn't actually crashing. In @raxod502's log, there's this line:

12-09 22:23:05.818 12679 12679 D BiometricAuthenticator: onAuthenticationError(errorCode=10, msg=Authentication canceled)

which indicates that the prompt is being canceled immediately, and in response the activity handling pre-launch auth finishes itself and cleanly closes the app.

I have neither the mental nor network bandwidth to investigate this for now so as a stopgap solution I'm disabling the feature and preventing it from being enabled manually. When I'm back home on Friday I'll pick this up on priority.

msfjarvis added a commit that referenced this issue Dec 10, 2023
Completely broken right now and prevents users from opening the app.

Updates #2802
@msfjarvis msfjarvis added P-high Priority: high, must be resolved before next major release C-regression Category: Regressed behavior from a previous release A-UI-UX Area: General UI/UX concerns S-in-progress Status: Implementation is underway and removed S-awaiting-triage Status: New issues that have not been assessed yet labels Dec 10, 2023
@msfjarvis msfjarvis added this to the v2.0.0 milestone Dec 10, 2023
msfjarvis added a commit that referenced this issue Dec 10, 2023
Completely broken right now and prevents users from opening the app.

Updates #2802
msfjarvis added a commit that referenced this issue Dec 10, 2023
* fix: temporarily disable pre-launch biometric auth

Completely broken right now and prevents users from opening the app.

Updates #2802

* fix: disable UnusedResources lint
@msfjarvis
Copy link
Member

The snapshot build for the workaround is up, affected users can update to it to regain functionality.

@viliev
Copy link

viliev commented Dec 12, 2023

Hello everyone,

I've been exploring the latest version encountered something unusual for the first time. Whenever I attempt to access the username and password details of an entity, a new window pops up asking for a password. Interestingly, if I click 'OK' without entering any information, it still reveals the password to me. However, I'm curious to know if there's a way to disable or remove this new prompt. Any insights or suggestions on this matter would be greatly appreciated!

@msfjarvis
Copy link
Member

@viliev please file a separate issue.

@psanford
Copy link

I've started to see this same issue as well on stock Android 14 on a Pixel 8.

@msfjarvis
Copy link
Member

I looked into this for an hour or so yesterday and didn't find any particular reason for why this is happening suddenly or at all. Google recommends relaunching the biometric prompt when receiving the specific error code we're seeing so I'll try that next.

@durka
Copy link
Contributor

durka commented Dec 18, 2023

FWIW, I'm seeing this also with stock Android 14 on my Pixel 7. I think it started to happen with the most recent Android update. Previously APS would flash the biometric authentication screen, it would disappear, and then right away come up again and accept biometrics. Now the screen just darkens briefly and then nothing happens. I will attempt to use the snapshot build as a workaround, although I have been using the F-Droid version with OpenKeychain so it looks like a pain to migrate as there is no way that I can tell to export my keys to a file that APS can read :(

@gwario
Copy link

gwario commented Dec 18, 2023

same for me on pixel 7pro android 14.
this is especially tragic because it seems i can still create new passwords but can't access nor push them to a remote repo.
i am pretty sure this happens since the December update

@msfjarvis
Copy link
Member

Just to confirm, this is happening on both the 2.x snapshot releases as well as the 1.13.5 stable build?

@mandre
Copy link

mandre commented Dec 19, 2023

Just to confirm, this is happening on both the 2.x snapshot releases as well as the 1.13.5 stable build?

Correct, I started seeing the same issue with the 1.13.5 build. On a pixel phone as well.

@msfjarvis
Copy link
Member

Great, another question for everyone: Can you confirm you are running the QPR beta builds?

@mandre
Copy link

mandre commented Dec 19, 2023

Great, another question for everyone: Can you confirm you are running the QPR beta builds?

I'm not. I'm running the UQ1A.231205.015 build.

@jonpikum
Copy link

jonpikum commented Dec 20, 2023

Pixel 4a running CalyxOS 5.2.0, and looks like UQ1A.291205.015 - also experiencing this issue. (Edit: Using F-Droid build btw)

I could be mistaken but it looks like someone reported this to Google back in September.
The issue says they experienced it with U1B1.230908.003?

There seem to be a handful of semi-recent bug reports related to biometrics that seem like they could be relevant, but I'm not familiar enough with the codebase to say for sure.
Perhaps something will jump out at someone else here.

@msfjarvis msfjarvis removed the C-regression Category: Regressed behavior from a previous release label Dec 20, 2023
@msfjarvis
Copy link
Member

The issue affects both 1.13.x and 2.x release trains on all versions of Android 14, and seems to only impact the app launch prompt. I've left a comment on the Google issue with more context so they can hopefully identify the bug, since I find it hard pressed to believe this is a problem with the app if it has worked since 2019 and still does work in all places but one.

@kirelagin
Copy link

Yep, sorry for not reporting here. It was clear to me that the issue was on the Android side, so I went straight to Google (and I also kinda assumed that they were contacting the developers of affected apps when receiving a bug report 🙄). It looked bad enough so I was sure they’d fix it while still in beta and then I completely forgot about it after disabling the prompt.

@kirelagin
Copy link

Cross-posting from their tracker: it looks like this might have been fixed in QPR2 Beta 2, so would be great if someone could test (I am not on beta anymore).

@msfjarvis
Copy link
Member

Unfortunately still broken on Beta 2.

@amirhomayoun
Copy link
Sponsor

Hi @msfjarvis Do you think it's worth pushing the latest version of the app (with the biometric option disabled) to Google Play store, so people won't need to re-install the APK from github? Once/if the issue is fixed a new version with the biometric option can be pushed.

@msfjarvis
Copy link
Member

Hi @msfjarvis Do you think it's worth pushing the latest version of the app (with the biometric option disabled) to Google Play store, so people won't need to re-install the APK from github? Once/if the issue is fixed a new version with the biometric option can be pushed.

Google Play will not allow any more builds from the v1.13.x release train to be published on account of too-old target Android version and it is not feasible to fix that on my side without breaking all users of the external storage feature.

Publishing the current snapshot build is also not an option since it simply has too many (breaking) changes to be offered as an automatic upgrade.

@savar
Copy link

savar commented Dec 23, 2023

Trying to reproduce this. Maybe it is already said and I missed that. If I set a debug point on the develop branch (fed1cc8) in BiometricAuthenticator.kt line 70

      BiometricPrompt(
          activity,
          ContextCompat.getMainExecutor(activity.applicationContext),
          authCallback,
        )
        .authenticate(promptInfo)

then after resuming the biometric part pops up and it works fine.. if I do not, then I fall into the onAuthenticationError with the errorCode 10 (User Cancelled).

Not sure if that helps anyhow.

@msfjarvis
Copy link
Member

Thanks for attempting to investigate, we've observed the same behavior and confirmed it as a bug in Android 14 itself. The relevant information has been relayed to Google.

@jmandel
Copy link

jmandel commented Dec 25, 2023

I'm experiencing this behavior on my Pixel 8 Pro with Android 14 -- but notably after restarting my phone, the "crash on open" problem abates briefly.

@singlow
Copy link

singlow commented Dec 28, 2023

@jmandel thanks for that comment. I was able to restart my phone and access the app shortly after restart in order to disable the biometric feature. I have a Pixel 7.

@msfjarvis
Copy link
Member

Not sure how I missed jmandel's comment but I've updated the OP to add their workaround.

@msfjarvis msfjarvis added S-blocked Status: marked as blocked ❌ on something else such as a RFC or other implementation work. and removed S-in-progress Status: Implementation is underway labels Jan 9, 2024
@grandEL-dsouza
Copy link

Does this bug also affect Automated testing through Appium and other frameworks?

Cause I got the Apps to launch on the Google Pixel 8 device but there was no popup for the Biometric testing that showed up.

Any insights here would be helpful.

Thanks.

@msfjarvis
Copy link
Member

Does this bug also affect Automated testing through Appium and other frameworks?

Cause I got the Apps to launch on the Google Pixel 8 device but there was no popup for the Biometric testing that showed up.

Any insights here would be helpful.

Thanks.

The snapshot builds don't allow the biometric auth feature to be enabled anymore so you'll never get the prompt. You'll have to compile your own build with the commit reverted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-UI-UX Area: General UI/UX concerns C-bug Category: This is a bug P-high Priority: high, must be resolved before next major release S-blocked Status: marked as blocked ❌ on something else such as a RFC or other implementation work.
Projects
Status: 🏗 In progress
Development

No branches or pull requests