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)
I understand /data/system_de/0/spblob/xxxxxxxxxxxx.weaver
is used in the password verification.
Looking at /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?