Lineage OSの入ったNexus 6があるが、パターンロックがわからなくなっていた。設定されているパターンを無効にする方法を見つけたのでメモ。
前提
環境はWindows 11(過去にこのPCで、当該Nexus6をUSB接続したことはない)。Nexus6のRecoveryイメージは、TWRP等ではなく、Lineage OSのもの。
事前準備
Windows PCにPlatform-toolsとadbで必要になるGoogle USB Driverはインストールしておく。
作業手順
Nexus6をFastbootモードで起動(電源Off状態から「Volume-Down + 電源ボタン」の長押し)し、VolumeボタンでRecovery modeを選択し、電源ボタンで確定。
※ この状態(Recovery modeになってすぐの状態)では、「adb shell」をやっても「This adb server's $ADB_VENDOR_KEYS is not set」と言われてadb接続できない。
PS D:\platform-tools> .\adb devices
List of devices attached
ZX1G525H5Q unauthorized
PS D:\platform-tools> .\adb shell
adb.exe: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
Nexus6の画面で、「Advanced」⇨「Enable ADB」をタップ。(不要だと思うが、念のため「Advanced」⇨「Mount/unmount system」もタップして/mnt/systemをマウントしておいた)
USBでPCとNexus6を接続。コマンドプロンプトやターミナルを立ち上げ(念のため、管理者で実行しておいた)、以下のようにコマンドを実行する。
PS D:\> cd D:\platform-tools\
PS D:\platform-tools> .\adb shell
shamu:/ # mount /data
shamu:/ # cd /data/system
shamu:/data/system # ls -l locksettings.db*
-rw-rw---- 1 system system 20480 2023-03-03 08:50 locksettings.db
-rw-rw---- 1 system system 32768 2023-03-03 09:04 locksettings.db-shm
-rw-rw---- 1 system system 0 2023-03-03 09:04 locksettings.db-wal
shamu:/data/system # mv locksettings.db locksettings.db.orig
shamu:/data/system # mv locksettings.db-shm locksettings.db-shm.orig
shamu:/data/system # mv locksettings.db-wal locksettings.db-wal.orig
ここまでできたら、Nexus6の画面で「Reboot system now」をしてLineage OSを起動させると、パターンロックの入力画面は表示されず、利用できるようになる。
上記でmvしたlocksettings.db等のファイルは自動的に生成されていた。
参考情報
※/dataパーティションはマウントされていないので、そのままでは空フォルダ
shamu:/ # cd /data
shamu:/data # ls -l
total 0
shamu:/data #
sqlite3を使って、locksettings.dbを書き換えるという手順(後述)もあるが、そもそも利用できるsqlite3コマンドが存在しない。
/mnt/system/system/bin/sqlite3に存在するもののライブラリがなくて実行できない。(/mnt/system/system/lib/libsqlite.so にあるが呼び出せていない)
shamu:/ # /mnt/system/system/bin/sqlite3
CANNOT LINK EXECUTABLE "/mnt/system/system/bin/sqlite3": library "libsqlite.so" not found: needed by main executable
linker: CANNOT LINK EXECUTABLE "/mnt/system/system/bin/sqlite3": library "libsqlite.so" not found: needed by main executable
locksettings.dbを削除する方が楽なので、削除で対応。
locksettings.dbを書き換えるという手順
sqlite3 /data/system/locksettings.db "UPDATE locksettings SET value = '1' WHERE name = 'lockscreen.disabled'"
sqlite3 /data/system/locksettings.db "UPDATE locksettings SET value = '0' WHERE name = 'lockscreen.password_type'"
sqlite3 /data/system/locksettings.db "UPDATE locksettings SET value = '0' WHERE name = 'lockscreen.password_type_alternate'"
echo "" > /data/system/password.key
なお、上記の/data/system/password.keyは存在しなかった。
また、/data/system/gesture.keyを削除するという手法もあるが、そのファイルは存在しなかった。
locksettingsというコマンドがあり、それを使って設定変更できるとの情報もあったが、通常使いそうなパスにそのコマンドはなかったし、実行しようとしても実行ができなかった。
shamu:/ # /mnt/system/system/bin/lock
lockagent_crasher locksettings
shamu:/ # /mnt/system/system/bin/locksettings --help
/mnt/system/system/bin/locksettings[6]: app_process: inaccessible or not found
shamu:/ # /mnt/system/system/bin/locksettings
/mnt/system/system/bin/locksettings[6]: app_process: inaccessible or not found
shamu:/ #
ちなみに、locksettings.dbの中身はこんな感じでした。(adb pullでPCに持ってきて中身を確認した)
PS D:\platform-tools> .\adb pull /data/system/locksettings.db
/data/system/locksettings.db: 1 file pulled, 0 skipped. 10.8 MB/s (20480 bytes in 0.002s)
PS D:\platform-tools>
PS D:\platform-tools> .\sqlite3.exe .\locksettings.db.hiroaki "select * from locksettings"
1|lockscreen.disabled|0|0
2|migrated|0|true
3|migrated_user_specific|0|true
4|lockscreen.password_type_alternate|0|0
5|migrated_biometric_weak|0|true
6|migrated_lockscreen_disabled|0|true
7|migrated_frp|0|1
8|lockscreen.enabledtrustagents|0|com.google.android.gms/.auth.trustagent.GoogleTrustAgent,org.lineageos.profiles/.ProfilesTrustAgent
9|lock_pattern_size|0|3
13|sp-handle|0|644085608932140144
14|prev-sp-handle|0|-6935917000520150992
15|sp-handle-ts|0|1669295729754
16|lockscreen.profilechallenge|0|1
17|lockscreen.patterneverchosen|0|1
20|lock_pattern_visible_pattern|0|0
21|lock_pattern_show_error_path|0|0
27|lockscreen.istrustusuallymanaged|0|1
PS D:\platform-tools>
0 件のコメント:
コメントを投稿