もしかして、バックアップも読めるんじゃない?
iRAWShareの作り込みが一段落したところで、iPhone/iPadのバックアップ先を変更する機会がありました。
それを機に、「もしかして、バックアップも読もうと思えば読めるんじゃない?」と考え始めました。
早速実験
ここはさっくりChatGPTに相談し、iPhone/iPadのバックアップを展開できるか聞いてみました。
すると、ChatGPTはあっさりコードを書いて見せてくれました。ならば、iRAWShareに取り込まない手はありません。
悩んだのはFull Disk Access
デフォルトでは、iPhone/iPadのバックアップは ~/Library/Application Support/MobileSync/Backup の下に保存されます。ここは、Full Disk Accessなしでは簡単に手を出せない領域です。
でも、安易にユーザーへFull Disk Accessを要求するのも違う気がしました。
そこで、ファイル選択ダイアログでユーザーが指定したディレクトリへのアクセス許可を取得する方法を試しました。
これが正解でした。
仮想ファイルシステム
少し細かい話になりますが、iPhone/iPadのバックアップでは、ファイルがハッシュ化された名前で保存され、元のファイル名や保存場所との対応関係は Manifest.db に格納されています。
そこで、Manifest.dbを解析し、バックアップ全体を読み取り専用の仮想ファイルシステムとして扱うことにしました。
ファイルブラウザーを流用できた
仮想ファイルシステムとして扱うことができれば、あとはこれまでに作ったファイルブラウザーへ渡すだけで動きそうです。
実際、メニューの「Import to Mac…」による書き出しも、ドラッグ&ドロップによるファイルの取り出しも、スムーズに動作しました。
こうして
こうして、iFunBox代替を目指すネイティブMacアプリ「iRAWShare」は、iPhone Backup Extractor相当の機能も備えることができました。
これにより、iPhone/iPad本体とバックアップ内にあるファイルを、ひとつのアプリでまとめて扱えるようになりました。なかなか良い改良になったと思います。
興味を持ってくださった方は
興味を持ってくださった方は、iRAWShare公式ページからダウンロードできます。
最新版は0.6βです。