iOS

他端末ログイン等で消えたLINEのトークを復元するという話

更新日:

移転前のブログで一度書いたことだけれど、検証も兼ねて記事を書きなおそうと思う。

そういうわけで、棚の中で埃を被っていたiPhone4さんとiPhone4sさんに協力してもらうことにする。

4は7.1.2、4sは9.0.2で両方ともJB済みである。

使うLINEアカウントはステアカナンバー2番と3番だったり。因みに10番まで存在するが1番はパスワードが分からなかったりする。

前置きはここまでにして検証結果を述べようと思う。

と、検証に移ろうとして2段階認証に引っかかった。そもそも、登録されている電話番号など、存在しないのだ。

⇒あきらめて、facebookのステアカを使うことにする。

⇒無理だった。

泣く泣くホンアカさんに消えてもらうことにした。

成功すれば、データが飛ぶことなんてない…はず。

やりたいこと

他端末ログインで消えたトークデータの復元。

ただ単に機種変更等で失敗したのなら、もう一度復元しなおせば問題ないのだが、他端末ログインしてリセットして消えてしまった場合、復元しなおしてもトーク履歴が戻ってくることはない。

因みに他端末ログインしただけなら、LINEを削除して、インストールしなおし、アカウントを入力すればデータは消えなかったはずである。

今回はやるところまでやってしまって、どうしようもなくなったトークデータを強引に書き換えて戻してしまおうという話。

前提 ~必要な物や事~

まず、直近2週間のiPhoneのバックアップデータと、LINEにアクセスできる暗号化されていない最新のiPhoneのバックアップデータが無ければならない。

前者はLINEのサーバーには2週間分のトークデータしか保存されないから、後者は自分のアカウントへのアクセス権を所持しているからだ。

まず、iPhoneのバックアップデータだが、これは他のところにコピーしておくことが望ましい。失敗して全部消えるとシャレにならないからだ。

機種変更や、クリーンインストールの場合、バックアップデータは別として生成されるが、通常のバックアップでは上書きされるので注意すること。

次に、iBackupBotPupSQLiteを使うためダウンロード&インストールをする。

必要なトークデータを取り出す

まず、現行LINEの最新バージョンは6.2.0だが、iBackupBotで探したところ、App Group Filesのcom.linecorp.line/Library/Application Support/PribateStore/***(意味のなさげな文字列)/Messagesの中に存在する。

便宜上、ここでは古いバックアップから抜かれたデータをトークデータA、新しいバックアップから抜かれたデータをトークデータBとして書くことにする。

取り出し方を既に知っている人は次の見出しまで飛ばして構わない。

まず、iBackupBotを起動すると、パソコン内のバックアップデータが読み込まれるので、左上のボックスに表示されるまで待機する。

そこで、対象のバックアップを選択して、App Group Filesのcom.linecorp.line/Library/Application Support/PribateStore/***(意味のなさげな文字列)/MessagesにあるLine.sqliteを選択してExportで任意の保存先を選択する。

line_1

これでトークデータA,Bを取り出す。

因みに、下の画像のものが表示された場合は、iTunesのバックアップ時に入力したパスワードを入力すればいい。

line_0

トークデータの編集

ここで散々悩まされたのだけれど、簡単な解決策を見つけることができた。以前の方法とは作業の対照ファイルが違うので気を付けること。

まず、トークデータBのZ_METADATAを右クリックし、テーブルのコピーをする。line_2

次に、トークデータAで適当なところを右クリックして、テーブルの貼り付けを選択する。

line_3

処理の選択が出たら、テーブルの置き換えを選択する。

line_4

置き換えが終わったら、PupSQLiteは終了してかまわない。

端末に戻す

最新のバックアップの中の、Line.sqliteの階層を開く。

そして、Import File(s)で、説明上トークデータAで表した、Line.sqliteを選択する。

line_5

因みに書いた通りにやっていれば出ることはないのだが、

line_6

もし、これが表示されたら、バックアップが暗号化されているのが原因なので、iTunesのこのバックアップを暗号化のチェックを外して、バックアップを取り直すこと。

Yes/No/Cancelのアラートが出た場合はYesを選択すれば間違いはないと思う。

終わったらLine.sqliteを選択した状態で上のRestoreを実行。

端末の再起動後LINEを起動すれば、トークがしっかりと表示されているはずだ。

できなかった場合

LINEで適当にメッセージを送り、端末の再起動。

パスコードを入力して、iTunesでバックアップを取り直す。

それを上でいうトークデータBとして、トークデータの書き換え作業からやり直せば、リストア後トークが表示されるはずだ。

作業のコツとしては、バックアップの直前に再起動すること、作業中に勝手にLINEを開かないこと。

 

-iOS

Copyright© 虚無空間 , 2018 All Rights Reserved.