画面ロック設定後にTWRPでバックアップ→リストア(復元)してロック解除できなくなった時の対処法です。
TWRPでリストア後に画面ロック解除ができない
症状や発生する環境
画面ロック設定をしたままTWRP(カスタムリカバリ)でバックアップを行い、その後フルワイプや違うROMを焼いた後にバックアップを書き戻す(リストア)と発生します。
この状態でOSを起動すると、正しいPIN/パターンなどを入力しているにも関わらず画面ロックが解除できなくなり、アクセスすることができなくなります。
「PINが正しくありません」などとメッセージが表示され解除できない |
この問題が発生するかは端末や環境によると思いますが、私の場合、Nexus 6PでカスタムROM使用中に「指紋認証」「画面ロック(PIN)」「端末を起動するにはPINが必須とする」を設定した状態で、バックアップ→リストアしたところ発生しました。
使用していたTWRPのバージョンは「3.0.0-0」で、ストレージは暗号化されています。
原因
リストアによって書き戻されたロックに関する古いデータファイルが原因。
恐らく、TWRPのバックアップファイルだけではリストアできない情報(セキュリティ関連)があり、フルワイプやROM焼きによって変更された情報とリストアされた古い情報とで一致せず、解除できなくなるのではないかと思われます。
※Nexus 6P/5Xには指紋認証機能「Nexus Imprint」が搭載されており、従来の端末よりセキュリティが強化されています。また、ストレージも暗号化されているため、それらがロック解除に影響しているのではないかと思います。
解決方法
端末内に存在する以下のファイルを全て削除する。(合計5ファイル)
※環境によってファイル名が多少異なる可能性があります。
これらのファイルを削除することで画面ロック設定が解除され、アクセスできるようになります。
※環境によってファイル名が多少異なる可能性があります。
これらのファイルを削除することで画面ロック設定が解除され、アクセスできるようになります。
- /data/system/gatekeeper.password.key
- /data/system/gatekeeper.pattern.key
- /data/system/locksettings.db
- /data/system/locksettings.db-shm
- /data/system/locksettings.db-wal
削除はカスタムリカバリ(TWRP)上から行います。
今回はTWRPに搭載されている「ファイルマネージャ」(File Manager)機能を使って、端末上での操作のみで削除してみます。
もちろん端末をPCに接続して、adbコマンドを使って削除しても問題ありません。
- TWRPを起動する。
- 起動中にPINコードの入力を求められたら、「端末を起動するにはPINが必須とする」で設定したコードを入力して解除する。
- 「Advanced」をタップする。
- 「File Manager」をタップする。
- 「data」フォルダをタップする。
- dataフォルダを開いたら、下にスワイプし「system」フォルダをタップする。
- systemフォルダを開いたら、下にスワイプして前述の5ファイルがあることを確認する。
※この5ファイル全てを削除します。
- 5ファイルのうち一番上の「gatekeeper.password.key」をタップする。
- 選択肢が表示されるので、「Delete」(削除)をタップする。
- 本当に操作を実行するか確認されるので、下の青いボタンを右にスワイプして実行する。
- 「Back」をタップしてファイル一覧画面に戻る。
- 「gatekeeper.password.key」が削除されているのを確認し、手順8~11と同様に残り4ファイルも削除する。
- 5ファイル全てを削除したら、下のホームボタンをタップしてTWRPのメニューに戻る。
- 「Reboot」をタップする。
- 「System」をタップして端末jを起動させる。
- 端末の起動途中でPINコードを要求された場合、「端末を起動するにはPINが必須とする」で設定したコードを入力して解除する。
- PIN/パターンによる画面ロック設定が解除されているので、そのままスワイプして解除する。
以上が今回の問題の解決方法です。
端末のロック設定は全て解除されているので、必要な場合は「設定」アプリから再度設定を行ってください。
このようにリストアしてしまっても解除することはできますが、そもそもTWRPでのバックアップ前にロック設定を解除しておけばこの問題は発生しません。
都度行うのは面倒かもしれませんがロック設定解除後のバックアップをおすすめします。