last update 2015年3月30日 14:59

Androidのアプリとデータをバックアップ・移行する方法(root不要)

black-smartphone_sizeXS

Android のアプリ・データをバックアップしたり、別の機種へ移行する方法です。

ここで言う「データ」はSDカードのデータでなく、スマホ・タブレット本体に保存されているゲームのセーブデータやアプリの設定を言います。

具体的には、ゾンビカフェやAngry Birds、CookieDozer、ゆるロボ、ねこあつめ…など例を挙げればキリがありませんが、セーブデータがローカルにあるゲームや、設定が複雑なのにバックアップ機能が無いアプリで重宝します。

パズル&ドラゴンズでもデータ移行できましたが、今は公式データ引き継ぎの方法が用意されているアプリでは、そちらを使った方が良いと思います。

手元の環境では Android 4.x, 5.x でデータ移行を確認済みです。

※もっと簡単なバックアップアプリ「Helium」もあります。

※Helium で復元できないバックアップファイル(拡張子 .ab)も、今回の方法で復元できる場合があります。

※2015/3/30 文章ブラッシュアップ

前提と注意

  • バックアップ元と復元先が両方とも Android 4.0 以上
  • 同一機種だけでなく、別機種への復元も可
  • 非 root でも可。root なら Titanium Backup の方が楽。(root化は推奨しません)
  • Android SDK インストール済みのPCが必要(Macでも可)
  • 使っている Android 機種用のadbドライバがPCにインストール済みで、Android SDK 内のadbコマンドが使える状態であること(adbドライバのインストール方法は機種毎に違うので、これが一番面倒かも)
  • 一部プロテクトがかかったアプリはバックアップ・移行できない

準備

AdbBackupRestore3

  • バックアップしたいアプリのパッケージ名を調べておく。確認方法は以下。

Google Play でアプリを検索し、URL 内の「id = xxx.xxx.xxx」 → 「xxx.xxx.xxx」がアプリのパッケージ名

バックアップ(データ移行元)

データ移行元のスマホと PC を通信用 USB ケーブルで接続し、PC のコマンドプロンプトから「adb backup」コマンドでバックアップします。

adb backup –f [バックアップ先ファイル名] –apk [アプリのパッケージ名]

例えばゾンビカフェ(上)やパズル&ドラゴンズ(下)ならこんな感じ。

adb backup -f zombiecafe.ab -apk com.capcom.zombiecafeandroidJP
adb backup -f puzzleanddragons.ab -apk jp.gungho.pad

◆注意点◆

※ adb.exe の場所は、Android SDK の「platform-tools」ディレクトリ内

※バックアップファイルはカレントディレクトリ内に作られる(先の例の場合)

※バックアップファイルが空(サイズが0KB)でないか要確認
→0KB の場合はバックアップパスワードを設定するとよい。との報告あり(筆者は未確認)

※重要データは「別端末への復元」でバックアップ確認。別端末が無い場合は、他の適当なアプリで予行演習

adbコマンド入力後は Android 側で「データをバックアップ」をタップします。(パスワードは空でもOK)

AdbBackupRestore4

復元(データ移行先)

データ移行先のスマホと PC を通信用 USB ケーブルで接続し、PC のコマンドプロンプトから「adb restore」コマンドで復元します。

adb restore [復元元ファイル名]

例えば先にバックアップしたゾンビカフェ(上)やパズル&ドラゴンズ(下)ならこんな感じ。

adb restore zombiecafe.ab
adb restore puzzleanddragons.ab

コマンド入力後は Android 側で「データを復元する」をタップします。バックアップ時にパスワードを設定した場合は、パスワード入力も必要です。

AdbBackupRestore7

復元先は別機種でも、別 OS でも構いませんが、Android 4.0 以降である必要があります。

うまくいけば、移行先でも同じようにアプリが動きます。

AdbBackupRestore1

バックアップコマンドの使い方(オプション・詳細)

今回は -apk オプションを指定してアプリ本体のバックアップも取りましたが、不要なら外した方が、バックアップサイズが節約できます。

また、特定アプリ・データだけでなく、次のコマンド使えば、フルバックアップ・復元(リストア)も可能です。

adb backup -apk -shared -all

異機種間のフルバックアップ→リストアの場合は、-nosystem オプションを指定して、システムアプリを除外した方がよいでしょう。

他にも adb backup コマンドには多様なオプションがあります。

adb backup / restore コマンドのヘルプを貼っておくので、参考にどうぞ。

adb backup [-f <file>] [-apk|-noapk] [-shared|-noshared] [-all] [-system|-nosystem] [<packages...>]

- write an archive of the device's data to <file>.
  If no -f option is supplied then the data is written to "backup.ab" in the current directory.

 (-apk|-noapk enable/disable backup of the .apks themselves in the archive; the default is noapk.)
 (-shared|-noshared enable/disable backup of the device's shared storage / SD card contents; the default is noshared.)
 (-all means to back up all installed applications)
 (-system|-nosystem toggles whether -all automatically includes system applications; the default is to inclu
de system apps)
 (<packages...> is the list of applications to be backed up.  If the -all or -shared flags are passed, then the package list is optional.  Applications explicitly given on the command line will be included even if -nosystem would ordinarily cause them to be omitted.)
adb restore <file>

- restore device contents from the <file> backuparchive

GUIのツールが欲しければ「Helium」という手も

Android 4.0 から導入された adb バックアップ機能ですが、Android 4.0 ~ 4.4 に至るまで、意外と仕様が変わらず、安定して使えてきたように思います。

最近は Androd 4系から、さらに新機種に機種変なんてケースも普通にありますので、手段が無かった時代に比べれば、まぁ、あるだけマシにはなったよね。とは思います。

ゾンビカフェやマインクラフト、 Coin Dozer とかとか、セーブデータ移行したい。と思うようなハマリゲーって結構ありますしね。

冒頭にも説明したとおり、実は、GUI で簡単にバックアップできるアプリ「Helium」なんてのが今はありますので、Android SDK のインストールや adb コマンドが面倒な場合は、まずはそちらを使うのも良いかと思います。

検索用キーワード:アプリ・ユーザーデータのバックアップ・復元・移行, パズル&ドラゴンズ, パズドラ, パズルアンドドラゴンズ, ドラゴンクエスト, ねこあつめ

この記事への55件のコメントがあります

  1. Aki says:

    4年前

    はじめまして

    ZyaSSさんと同じ方法で悩まされていましたが、アプリケーションを本体からSDカードへと移動したらバックアップのボタンが反応するようになりました。

    バックアップボタンが反応しない場合
    されても0KBもしくは1KBのファイルとしてバックアップされる場合

    バックアップしたいアプリをSDカードへ移動させて試してみてください。

  2. paritybit says:

    4年前

     Akiさんの方法を試してみましたが、SC-06Dなどの内臓ストレージが大きい機種は内臓ストレージのすべての領域がアプリケーション領域となるそうでSDカードへのアプリ移動はできないみたいです。
     なんとかバックアップを取る方法はないものか・・・

  3. ZZZ says:

    4年前

    SO-02eでとったパズドラのバックアップをTF700でうごかしたいのですが復元を開始しましたの後の復元を完了しましたのメッセージが出てこずcmdの方でも
    Now unlock your device and confirm the restore operation.
    のメッセージから動きません
    一時間待ってパズドラを試しに起動してみると初めから始まりました
    なので、apk本体はコピーできているのですが肝心のセーブデータがコピー出来ていません
    何が原因なのでしょうか?ご教授おねがいします

  4. paritybit says:

    4年前

    こちらのサイトで解決方法を見つけました。
    http://mikan8929.blog6.fc2.com/blog-entry-739.html

    <adb: unable to connect for backupと表示されバックアップできない(押せない)>

    この場合、ADBドライバーのインストールが正しくできていない可能性があります。
    または常駐アプリ(バッテリーMIXなど)の設定で表示がズレているだけの場合もあるので、アプリを終了させれば押せることもあります。

    ちなみに、私の場合バッテリー残量常駐アプリを停止したら、バックアップ取れました。

  5. (´・ω・) says:

    2年前

    家族で複数ユーザで使用しているのですが、
    複数ユーザのデータをそれぞれバックアップする方法を教えてください。

コメントを記入