Pages Menu
TwitterRssFacebook
Categories Menu

Posted on 3月 23, 2012 in Android

root 不要の完全なバックアップ・リストア方法



Android 4.0 には ADB Backup/Restore という機能があり、PCからユーザーデータを完全にバックアップ・リストアすることができる。
しかも、bootloader unlock も rootも不要である。
何故今更こんな機能を説明するのかと言うと、GALAXY NEXUS を発売日当日に root化して TitaniumBackup を使える状態だったので今まで気付かなかったのだ。



例:

adb backup -f komugi.bak net.komugi.chromepencil
adb restore komugi.bak

adb backup [-f ] [-apk|-noapk] [-shared|-noshared] [-all] [-system|-nosystem] []
adb restore backupfile

-f
ファイル名を指定する。指定しない場合「backup.ab」としてカレントに保存される。

-apk|-noapk
バックアップに apkファイルを含める。デフォルトは noapk

-shared|-noshared
バックアップにSDカード内のコンテンツを含める。デフォルトは noshared

-all
全てのアプリケーションを対象に含める。apkは含まれない。

-system|-nosystem
バックアップにシステムアプリケーションを含めるか。デフォルトは nosystem
-all を指定した場合にはシステムアプリケーションを含みます。

パッケージ名を直接指定した場合、そのパッケージのみをバックアップすることができます。

バックアップ、リストアコマンドを実行すると、端末側にバックアップ、リストアを許可するための画面が表示されます。
バックアップ時には暗号化のためのパスワードを指定することができます。
リストア時には何故か2つの入力欄が表示されましたが、上側にパスワードを入力することで正常にリストアされました。

作成したバックアップファイルは別の端末でもリストア可能であることを確認済みです(両方共 GALAXY NEXUS ですが)

試しにフルバックアップ後、ファクトリーリセットを行い、リストアでどれぐらい戻せるのか検証してみました。
コマンドは以下の通り。

adb backup -f full.bak -apk -shared -all

バックアップ前に、リカバリメニューから Wipe/Factory Resetを実行し、再起動後リストアを行いました。
バックアップ前に比べるとリストア後では随分とストレージ使用量が減ってしまっています。

まず、WiFiのアクセスポイントや自分で作成したAPN、データ使用履歴などは失われてしまいました。
また Protectedなユーザーアプリについてもバックアップが行われませんでした。
ただし、Protected機能は廃止される予定のため将来的には全てのユーザーアプリがバックアップできるようになるはずです。
SDカードの内容についてもバックアップされません。-shared オプションでバックアップされるのは SDカードにインストールされたアプリだけのようです。

完全というのはちょっと言い過ぎだったかなと思いますが、オフィシャルの機能としては動作速度などを含めてかなり優秀です。
root化した GALAXY NEXUS だといまいち恩恵が感じられないかもしれませんが、104SHなどの Android 4.0 搭載端末や、今後端末を買い換えた際の環境移行には大いに活用できるかもしれません。
特に twicca のラベルとかラベルとか


GeekYouUp’s Mobile Blog: Android 4.0 ADB Backup / Restore


1 Comment

  1. 有益な情報、ありがとうございます。大変、参考になりました。今Backupを取っています。
    あとは無事、restoreできるかどうかですね。ホーム画面やフォルダ分けしたショートカットも復元できると良いのですが!