運営資金/寄付について何もない空間。好きなことで埋めようか。2016移転前のブログで一度書いたことだけれど、検証も兼ねて記事を書きなおそうと思う。いうわけで、棚の中で埃を被っていた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のバックアップデータだが、これは他のところにコピーしておくことが望ましい。失敗して全部消えるとシャレにならないからだ。機種変更や、クリーンインストールの場合、バックアップデータは別として生成されるが、通常のバックアップでは上書きされるので注意すること。次に、iBackupBotとPupSQLiteを使うためダウンロード&インストールをする。Support/PribateStore/***(意味のなさげな文字列)/Messagesの中に存在する。便宜上、ここでは古いバックアップから抜かれたデータをトークデータA、新しいバックアップから抜かれたデータをトークデータBとして書くことにする。取り出し方を既に知っている人は次の見出しまで飛ばして構わない。iBackupBotを起動すると、パソコン内のバックアップデータが読み込まれるので、左上のボックスに表示されるまで待機する。Support/PribateStore/***(意味のなさげな文字列)/MessagesにあるLine.sqliteを選択してExportで任意の保存先を選択する。これでトークデータA,Bを取り出す。因みに、下の画像のものが表示された場合は、iTunesのバックアップ時に入力したパスワードを入力すればいい。トークデータの編集ここで散々悩まされたのだけれど、簡単な解決策を見つけることができた。以前の方法とは作業の対照ファイルが違うので気を付けること。トークデータBのZ_METADATAを右クリックし、テーブルのコピーをする。次に、トークデータAで適当なところを右クリックして、テーブルの貼り付けを選択する。処理の選択が出たら、テーブルの置き換えを選択する。置き換えが終わったら、PupSQLiteは終了してかまわない。端末に戻す最新のバックアップの中の、Line.sqliteの階層を開く。File(s)で、説明上トークデータAで表した、Line.sqliteを選択する。因みに書いた通りにやっていれば出ることはないのだが、もし、これが表示されたら、バックアップが暗号化されているのが原因なので、iTunesのこのバックアップを暗号化のチェックを外して、バックアップを取り直すこと。Yes/No/Cancelのアラートが出た場合はYesを選択すれば間違いはないと思う。終わったらLine.sqliteを選択した状態で上のRestoreを実行。端末の再起動後LINEを起動すれば、トークがしっかりと表示されているはずだ。できなかった場合LINEで適当にメッセージを送り、端末の再起動。パスコードを入力して、iTunesでバックアップを取り直す。それを上でいうトークデータBとして、トークデータの書き換え作業からやり直せば、リストア後トークが表示されるはずだ。作業のコツとしては、バックアップの直前に再起動すること、作業中に勝手にLINEを開かないこと。本当に復元できました。am報告ありがとうございます。こちらに記載の方法は、LINE最新6.2.2でも通じるものでしょうか。PupSQLiteで最新のLine.spliteから古い方へテーブルを貼り付けたところで下記エラーが出てしまいます...対処法をご存じであれば、お教えいただければ幸いです。(iphone6.ios9.3.5)0007:SQL構文エラーまたはデータベースが見つかりません。テーブル:"Z_METADATA"が見つかりません。amコメントありがとうございます。残念ながら最新バージョンのLINEでの動作は、"未確認"となっておりますので、今日中に確認作業に入ろうと思います。ところで、バックアップデータのibackupbotでの大体の位置、ファイル名、分かるのであればバージョンは幾つで取ったものか、を教えていただけないでしょうか?バックアップが古すぎる場合、復元が出来ない、出来たとしても最新のトークデータが表示されない、という事を確認しております。pmお返事ありがとうございます。バックアップデータの位置・ファイル名は、記事記載のところで変わりないです。LINEのバージョンは新旧共に6.6.2、iosも共に9.3.5です。(先の6.2.2は誤りです。)旧バックアップは今月10月4日ですので、古すぎることもないと思います。pmLINEのバージョン6.6.2にて確認してきましたが、報告されたエラーが出ることもなく、無事PupSQLiteでの動作を完了させることができました。確認していただきたいのですが、新旧ともにテーブルの数、名前は一致しているのでしょうか?また自身も同じエラーを見たことがあるのですが、その時はコピー元、コピー先で同じsqliteファイルを指定していました。一度確認してみてください。pm検証いただきましてありがとうございます。テーブルの数、名前共に一致しており、記載のやり方でしているましたが、同様のエラーでした。そこでPupSQLiteではなく、別のGUIでZ_METADATAのUUIDを置き換えたらうまくいきました。画像の復元もしようとすると、また別のファイルのリストアも必要みたいですので、探り探りやってみたいと思います。ありがとうございました。am報告ありがとうございます。ソフトがダメ...ということをあるのですね...。画像は基本的にtempのような扱いなのかな?と思っております。Attachments/にあることを確認しました。