A few days ago my unlock pattern was not recognized anymore. I'm guessing the cause is memory corruption or some bug.
I haven't restarted the device yet, hoping to "find" the new pattern or somehow bypass the screen lock.
The device is not rooted and "require PIN when device powers on" is disabled. Firmware is G950FXXS5DSJ1 build date Sep 30 2019.
It is encrypted:
> adb shell getprop | find "crypto" [ro.crypto.fde_algorithm]: [AES-256-XTS-DISK] [ro.crypto.fs_crypto_blkdev]: [/dev/block/dm-1] [ro.crypto.fuse_sdcard]: [true] [ro.crypto.state]: [encrypted] [ro.crypto.type]: [block]
What I've tried
Google device manager - can only reset the device for non-enterprise accounts.
Samsung FindMyDevice - can change the PIN if enabled in the settings - disabled it for security reasons.
"Guessing" the PIN - I've tried feeding all the possible combinations to
adb.exe shell locksettings verify --old xxxxxx
The response is always "Old password 'xxxxxx' didn't match". Strangely, it's not throttling (tested the same method with an Android 10 device and immediately got "Request throttled"). Might be related to missing files (more below).
Looking at logs - since ADB is working, I've tried looking at
adb.exe logcat -b system, but have no idea what to look for.
Some suspicious messages:
LockSettingsStorage: Cannot read file java.io.FileNotFoundException: /data/system/fmmpassword.key: open failed: ENOENT (No such file or directory) LockSettingsStorage: Cannot read file java.io.FileNotFoundException: /data/system_de/0/spblob/xxxxxxxxxxxx.weaver: open failed: ENOENT (No such file or directory)
/data/system_de/0/spblob/xxxxxxxxxxxx.weaver is used in the password verification.
/data/system/ some files might be missing (I've read that unlock data is stored in
gatekeeper* files which I can't find, maybe because of insufficient permissions):
1|dreamlte:/ $ ls /data/system/ ls: /data/system//hdcp2_5386: Permission denied ls: /data/system//users: Permission denied ls: /data/system//container: Permission denied ls: /data/system//ndebugsocket: Permission denied ls: /data/system//secure_storage: Permission denied ls: /data/system//.aasa: Permission denied ls: /data/system//heapdump: Permission denied HWParamTime.bin dropbox locksettings.db-shm screen_on_time SimCard.dat enterprise locksettings.db-wal sensor_big_data.txt WifiHistory.db enterprise.conf log-files.xml sensor_big_data_usage.txt WifiHistory.db-journal enterprise.db mobeam_big_data_usage.txt sensor_service analytics.db enterprise.db-journal netpolicy.xml shared_prefs analytics.db-journal enterprise.db-shm netstats shortcut_service.xml appops.xml enterprise.db-wal notification_log.db slice audioservice_sec.db enterprise_cacerts.bks notification_log.db-journal slocation.db audioservice_sec.db-journal enterprise_nativecerts.bks notification_policy.xml slocation.db-journal battery-saver enterprise_untrustedcerts.bks overlays.xml slocation.db-se batterystats-checkin.bin enterprise_usercerts.bks package-cstats.list sound_model.db batterystats-daily.xml entropy.dat package-dex-usage.list sound_model.db-journal batterystats.bin friends package-usage.list startingwindow big_data_sensor_usage_pkg.txt gamemanager.db package_cache storage.xml big_data_usage_call_gesture.txt gamemanager.db-journal packages-warnings.xml sync cachequota.xml graphicsstats packages.list timezone clipboardimage.db harmony_third_party_apps.xml packages.xml ucm_ca_cert clipboardimage.db-journal hcm_info packages.xml.mbak uiderrors.txt conventionalmode hcm_info-journal pda.db urigrants.xml device_policies.xml ifw pda.db-journal usagestats deviceidle.xml inputmethod pre_boot_csc.dat watchlist_report.db diskstats_cache.json install_sessions procstats watchlist_report.db-journal display-manager-state.xml install_sessions.xml recoverablekeystore watchlist_settings.xml displaysolution.db job recoverablekeystore.db wifigeofence.db displaysolution.db-journal last-fstrim recoverablekeystore.db-shm wifigeofence.db-journal dmappmgr.db last-header.txt recoverablekeystore.db-wal dmappmgr.db-journal locksettings.db registered_ucm_services
What can I do to understand what happened?
Will restarting restore the pattern or cause even more problems?