android-password-store / Android-Password-Store

Android application compatible with ZX2C4's Pass command line application
https://passwordstore.app
GNU General Public License v3.0
2.59k stars 268 forks source link

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

Closed raxod502 closed 3 months ago

raxod502 commented 11 months ago

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)

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 https://github.com/android-password-store/Android-Password-Store/issues/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

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 commented 11 months ago

I compiled 8c5655cf9f92b0bfbbe4da1ad7cc555f31d317fb 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 commented 11 months ago

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 commented 11 months ago

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 commented 11 months ago

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 commented 11 months ago

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 commented 11 months ago

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 commented 11 months ago

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 commented 11 months ago

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

viliev commented 11 months ago

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 commented 11 months ago

@viliev please file a separate issue.

psanford commented 10 months ago

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

msfjarvis commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

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

mandre commented 10 months ago

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 commented 10 months ago

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

mandre commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

Unfortunately still broken on Beta 2.

amirhomayoun commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

Trying to reproduce this. Maybe it is already said and I missed that. If I set a debug point on the develop branch (fed1cc86be747612fb292495f92168bc9186bf33) 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 commented 10 months ago

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 commented 10 months ago

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 commented 10 months ago

@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 commented 10 months ago

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

grandEL-dsouza commented 9 months ago

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 commented 9 months ago

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.

msfjarvis commented 3 months ago

The issue is fixed on the Android 15 betas so I've re-enabled the feature for everyone except Android 14 users who are still affected by this.