1.基本的にアプリ環境の完全バックアップができないAndroid
iPhoneやiPad、iPod touchなどのiOS搭載端末の場合、PCやMacのiTunesやクラウドストレージであるiCloud経由でアプリケーションデータの完全バックアップが可能で、別端末間のアプリデータ移行すら可能(iPod touch→iPhoneへのバックアップデータのリストアやiPhone→iPadへのバックアップデータのリストアなど)なのですが、Androidの場合純正環境ではアプリケーションデータの完全なバックアップ方法があまり確立されていません。
一応Googleのサーバーに端末の情報をバックアップするという項目自体は存在するのですが、ほとんどの場合この機能を利用しても端末にインストールされていたアプリ自体はGoogle Play経由で再ダウンロードされるものの、アプリデータ自体のバックアップは行っていません。
またAndroid 6.0以降ではこれとは別にGoogle Driveにアプリデータをバックアップするという機能も搭載されたものの、アプリがAndroid 6.0に対応したものである必要があるほか、アプリのバックアップデータが25MBまでに制限されているため、データファイルが大きいアプリデータのバックアップには対応しきれないという欠点があります。
Root化してしまえば「Titanium Backup」でシステムアプリも含めた完全なアプリ環境のバックアップも可能ですが、rootをとった時点で端末のメーカー・キャリア保証が切れてしまうほか、すべての端末がroot化できるわけではありません。
そこで活躍するのが前回の記事でインストールしたADBコマンドのバックアップ機能です。この機能を利用すればrootをとっていない端末でもPC上にほぼ完全なアプリケーション環境のバックアップが可能となります。一部有料ソフトでアプリケーションデータが暗号化されているものに関してはバックアップが取れないという制限はあるものの、アプリケーション環境のバックアップがほぼないAndroidにとっては強力なバックアップツールになるかと思われます。
2.実際に使ってみる
それでは実際に端末のデータをバックアップしたいと思います。あらかじめADBインストール紹介記事の手順通り端末をUSBデバックモードにしておいてください。
コマンドプロンプトを管理者権限で起動し、バックアップしたいディレクトリ(フォルダ)まで移動します。フォルダを移動するコマンドは以下になります。
CD 移動したいフォルダのパス
移動したいフォルダのあるドライブ名
次に以下のコマンドを入力します。
adb backup -f 任意のファイル名 -apk -obb-shared -all -system
各スイッチの意味は以下の通りとなります。
-f バックアップファイル名を指定するオプション。指定しない場合デフォルトのファイル名backup.abが指定されます。
-apk Androidのアプリ本体であるAPKパッケージも込みでバックアップする。指定しない場合アプリデータ自体のみのバックアップとなりますが、Google Playでの再ダウンロードの時間が省けるので指定しておいたほうがいいかと思われます。
-obb アプリケーションがダウンロードしてくる追加ダウンロードデータもバックアップ対象に含めます。デフォルトでは追加データはバックアップファイルには含めません。
-shared microSDに作られているデータファイルもバックアップ対象に入れます。
-all このオプションをしているするとAndroid端末のすべてのデータをバックアップします。指定しない場合後述のパッケージ名を指定した個別アプリ単体のバックアップとなります。
-system プリインストールされているシステムアプリのデータもバックアップ対象にします。
入力すると端末側に上の画面が表示されます。バックアップ作成時にパスワードをかけて暗号化することもできますので必要であればパスワードを設定して「データをバックアップ」をタップします。
これでAndroidのアプリ環境のバックアップ作業が開始されます。フルバックアップの場合それなりに時間がかかりますのでしばらく待ちましょう。
バックアップ完了後、フォルダ内に指定したファイル名のバックアップファイルが出来上がっていればバックアップは正常に完了しています。端末の初期化後にバックアップしたデータをリストアした場合は同じくバックアップ作成先のフォルダに移動後、
adb backup -restore バックアップ時に指定したファイル名
と入力すればリストア作業が開始されます。一部バックアップされないアプリもありますがおおむね元の環境に復元することが可能です。
3.アプリケーションの単体バックアップも行える
上記の手順ではAndroid端末の完全バックアップを作成しましたが、ADB Backupではアプリケーション単体のバックアップも可能となっています。その場合は以下のようにしてバックアップを作成します。
adb backup -apk -obb バックアップしたいファイルのパッケージ名
バックアップしたいアプリのパッケージ名をいちいち確認しなければいけないのでちょっと面倒ですが、バックアップしたいアプリ名をPC上のブラウザで開いたGoogle Play Storeのページで検索するとアドレス欄が「https://play.google.com/store/apps/details?id=アプリのパッケージ名」となっていますのでこれで容易に確認は可能です。上記の「Yahoo!ニュース」の場合、「jp.co.yahoo.android.news」というのがアプリケーションパッケージ名になりますので、このアプリのデータをバックアップしたい場合は、
adb backup -f yahoo.ab -apk -obb jp.co.yahoo,android,news
と指定してあげればOKです。リストアした場合はフルバックアップからのリストアと同じ手順でリストア可能です。
4.アプリ使ったほうが楽かも…
このようにADB Backupは一部有料アプリのバックアップは行えないとはいえ、非root環境でもアプリケーションデータのフルバックアップが作成できる強力なツールになっています。Androidのシステム環境がおかしくなった時にバックアップを作成しておくといざというときに便利になるかと思われます。
ただADB自体がコマンドラインツールなので初心者にはとっつきづらい部分がありますのでその場合はGoogle Play Storeで配布されている「Helium App Sync and Backup」を利用したほうがいいかもしれません。こちらも母艦にADBの導入が必須でこのソフト自体がADB BackupのGUIフロントエンドそのものですが、ツール自体がGUI化されているためコマンドツールのADBでバックアップするよりわかりやすいのと端末の外部ストレージに直接バックアップファイルの作成が可能になっています。
コメント
×デバック
○デバッグ
こんにちは、コメントありがとうございます。まあまあ…
3.アプリケーションの単体バックアップも行える で下から3行目のコマンド部分のapk名について,jp.co.yahoo.android.newsの一部がピリオドでなくカンマになっていますが,すべてピリオドが正しいのではないでしょうか。細かいですが…
こんにちは、コメントありがとうございます。執筆者に確認します。
adb backup -restore バックアップ時に指定したファイル名
で実行したらバックアップ画面に遷移し,このままで良いのかと思い実行したらバックアップファイルが上書きされ手動でバックアップすることになりました
おそらく,
adb restore バックアップ時に指定したファイル名
ではないでしょうか?
上の方が言っている通り adb restore ファイル名 が正しいです。
adb backup -restore ではファイルが上書きされてしまいバックアップファイルが無意味なものに変わってしまいます
この間違い正直悪質ちゃあ悪質ですよね。
即刻修正するべきだと思います
インストールも無事終わりバックアップ開始には成るんですが、すぐ終了します。。
環境変数が怪しいのでしょうか。。Win7
リストアのコマンドが違います。
上で書いてる人が正しい
記事直せよ お前のせいでバックアップ上書きされたじゃねーか
adbバックアップ実にいいね。root化せずにバックアップできる。変数作業が面倒だけど、実にいいね。
初心者的なことを聞いて申し訳ないのですが、このバックアップは別端末には使えないのでしょうか。
今回端末を修理に出そうと考えており、修理端末のバックアップを作りそれを代替機にリストアし、返却前にもう一度バックアップを取り帰ってきた端末にうつす
ということを考えています。
>>匿名さん
基本的には端末固有のアプリなどを除きそのまま別端末に移すことも可能・・・なのですが、この記事を執筆したのがAndroid 6.0~7.0時代で現在はバージョンが大分変わってしまっているので場合によっては正常にリカバリできないアプリもあるかもしれません。
返信ありがとうございます。
一応できそうな気がするのでやってみたいと思います。
adb backup -restoreのトラップ回避してもandroid 13 pixel 6aは復元できませんでした。