いよいよ2017年ですね。みなさんは年末は帰省しましたか。
私は帰省したついでに母ウェイに Zenfone3 Laser
をプレゼントしました。結構大きいけど薄くて使いやすかったですよ。
と、そんなことはどうでもいいんですが、諸々の設定などを移行してて困ったのがねこあつめのデータ。
公式にねこあつめのデータを移行する方法ってのが存在しない んですよ(2018年1月時点も継続中)
ぼくも移行がめんどくさくてやめちゃったから運営さんはめんどくさがってないでサポートした方がいいと思います。(移行したのは母のデータ)
ちなみに移行元の端末が古いからかBluetoothでの同期はできませんでしたよ。
ねこあつめのデータ移行で調べると
【ねこあつめ】機種変更時のデータ移行!引き継ぎ方法の完全版!(Android)
のように Helium
というアプリを使って移行する方法が多く見つかりました。
Helium (Premium) - Google Play のアプリバックアップ、復元、およびアプリを同期!https://play.google.com/store/apps/details?id=com.koushikdutta.backup.license&hl=ja
でも、こういうのって基本最初の一回しか使いませんよね。無駄なアプリをインストールしたくない!
ということで今回Android端末に専用アプリを入れることなく、別端末へねこあつめのデータを移行したので記事にしました。
もともと Android 4.4.2
から Android 6.0.1
への移行を目的としていたのですが、
月日が経つのは早いもので最新のAndroidバージョンはどんどん上がっていき、記事のバージョンと合わなくて困っている人が思いの外多いようなので、
最新 Android でも動作するように記事を更新しました。
ちなみにねこあつめに限った話ではなく Android
アプリ全てで使えるので知っておいて損はないと思います。
特に同じ会社からでた旅かえるも移行ツールが用意されていないような雰囲気なのでおそらく同様のやり方で移行できます。 旅かえる - Google Play のアプリ旅好きなかえるのために 少しだけおせっかいをやいてみませんか? 放置型シミュレーションアプリ「旅かえる」https://play.google.com/store/apps/details?id=jp.co.hit_point.tabikaeru&hl=ja
必要なものはPCとUSBケーブルです。PCはWindows10を使いますが、MacでもLinuxでも同じことはできるはずです。
結局PCは使うんですがPCをセットアップしておけば今後スマートフォンを変えても同じ手順で何度でも使えます。
これを口実に女の子を自分の家に連れ込めるかもしれませんよ。iPhone?そんなものは知らん。
やりかたを順番に見ていきましょう。
- warning
- 念のためお伝えしておきますが、自己責任でお願いします。
AndroidのUSBデバッグを有効にする
スマートフォンをPCにUSB接続してゴニョゴニョするためにはAndroidの
USBデバッグ
という設定を有効にしなければいけません。
USBデバッグの有効化は「設定」→「開発者向けオプション」に移動すると見つかります。
しかし中には開発者向けオプションが表示されていない人もいると思います。当初この設定は非表示になっているため表示に変えてあげる必要があります。
そのために「設定」→「端末情報」に移動して「ビルド情報」と書かれた項目を7回タップしてください。
すると「開発者になりました」と言われ、「設定」に戻ると「開発者向けオプション」が表示されるようになります。
これを移動元・移動先、両方のAndroid端末で行ってください。
- info
- データ移行が終わったら無効にすることを推奨します。
PCでadbコマンドを使えるようにする
今回はadbというコマンドを使ってアプリデータのバックアップとリストアをすることでデータを移行していきます。
ということでコマンドを使えるようにしましょう。
最低限のファイルだけあれば十分なので、 Android Studio
のような全部入りのインストーラは不要で、 platform-tools
と呼ばれるファイルだけをダウンロードして利用できます。
最新であれば Android Studioのサイト から持ってきましょう。
この中の adb
とよばれるコマンドを使うのですが、Androidのバージョンと相性があるため手持ちスマホのAndroidバージョンによって使い分けてください。
過去のバージョンは以下にまとめてあるので探すのが面倒な方は使ってください。 https://github.com/righ/android-platform-tools-zips/blob/master/README.md
ちなみに platform tools
のバージョン(リビジョン)と
adb
のバージョンは
次のような関係になっています。(adbのバージョンって飛び飛びなんですかね?)
- r16〜r20
- adb1.0.31
- r21〜r23
- adb1.0.32
- r24〜r25
- adb1.0.36
- latest
- adb1.0.39 (at 2018/1/13)
と、そんなこと言われてもどのバージョンを使うかわからないですよね。
adbとAndroidの対応関係が公式に発表されていないので独自にまとめてみました。
わからないところは空白、あんまり自信がないところは ?
つけてます。
コメントをくれた方々、ありがとうございました。
android/adb | 1.0.31 | 1.0.32 | 1.0.36 | 1.0.39 |
---|---|---|---|---|
4 | o | x | x | x |
5 | o | o | o? | |
6 | o | o | o? | |
7.0 | o? | o? | o | o |
7.1以上 | x? | o | o | |
8 | x | o |
つまりAndroid 4
から 8
への移行とかになると2つのバージョンを使い分ける必要があります。
検証はしていないので、間違っていたらコメントなどをください。
Androidのバージョンもわからない、という方はとりあえず最新を試してみると良いでしょう。
というわけで、ダウンロードしたZIPファイルを展開してどこかに配置します。
自分は C:\util\android_sdk\platform-tools
に置いたのでその前提で話していきます。
- info
- 私は試していないのですが、複数のadbバージョンを使い分けたい場合、以下のように設置フォルダで分けるとよいでしょう。
C:\util\android_sdk\platform-tools-r20
C:\util\android_sdk\platform-tools-r25
- この場合、以下の
パスを通す
(後述) の記述も少し変わってきます。
- 私は試していないのですが、複数のadbバージョンを使い分けたい場合、以下のように設置フォルダで分けるとよいでしょう。
パスを通す
このままだと C:\util\android_sdk\platform-tools
に移動しないとコマンドが使えません。不便ですね。
どこからでもコマンド使えるようにするために上の「パス」を環境変数に登録します。これを「パスを通す」といいます。
Windowsでの手順は以下。
わかる方は飛ばしてください。(マカーやLinuxユーザの方はわかりますよね)
「コントロールパネル」→「システムとセキュリティ」→「システム」を開く
- 起動方法がわからない人は左下の「何でも聞いてください」ってところ(Cortana)に「コントロールパネル」って打つと補完されて候補が出てくるのでそれをクリック。
左の「システムの詳細設定」をクリックして「システムのプロパティ」を開く
下から2番めのボタン「環境変数(N)...」をクリックして環境変数の設定画面を開く
ユーザー環境変数の「Path」を選択して「編集」をクリックして「ユーザ変数の編集」を開く。
変数値(V):
の右のテキストボックスの末尾に;
(セミコロン)を挟んで先程のパスC:\util\android_sdk\platform-tools
を記述する。 (すでに入っている値を消さないように注意してください)終わったら「OK」をクリック。
- 「環境変数」、「システムのプロパティ」ウィンドウも「OK」をクリック。
複数のadbを使い分ける場合
前述したように複数のバージョンを使い分け、複数の
platform-tools-r??
のようなフォルダがある場合、 すべてパスに登録すれば良いと思ってしまうかもしれませんが、実はそれだけでは不十分です。コマンドというのは「登録したパスを前から順に探して、先に一致したものを使う」という動作をするため、 いずれか片方のバージョンの
adb
コマンドしか見えなくなってしまうというわけです。ではどうすればよいでしょうか。解決方法はいくつかありますが、私だったら以下のいずれかで対応します。(1がオススメ)
1.一段上のパスの階層を登録する
- 具体的には
C:\util\android_sdk\platform-tools-r20
ではなくC:\util\android_sdk\
までしか登録しないということです。 - こちらの方法を使う人は 後述する
adb
コマンドをplatform-tools-r20\adb
platform-tools-r25\adb
のように読み替えて使いましょう。
2.adb のコマンドファイル名を変える (例えば以下のようにします)
C:\util\android_sdk\platform-tools-r20\adb.exe
はC:\util\android_sdk\platform-tools-r20\adb-r20.exe
C:\util\android_sdk\platform-tools-r25\adb.exe
はC:\util\android_sdk\platform-tools-r25\adb-r25.exe
- こちらの方法を使う人は 後述する
adb
コマンドをadb-r20
とかadb-r25
とかに読み替えて使いましょう。
- 具体的には
これでパスが通ったはずです。
adbコマンドを使ってバックアップする
まず最初に移行元(古い方)のスマホをUSBでPCに接続します。
続いてコマンドプロンプトを起動します。
起動方法がわからない人は左下の「何でも聞いてください」ってところ(Cortana)に「cmd」って打つと補完されて候補が出てくるのでそれをクリック。
黒い画面が出てきました。ここから操作をしていきます。
まずバックアップ用のフォルダを作ります。今回は data
としましたが自由に変えて結構です。
C:\>mkdir data C:\>cd data C:\data>
続いて接続されているデバイスを確認します。 adb devices
と入力します。
C:\data>adb devices List of devices attached 353351060139045 device
うまくいっている場合は上記のようになります(数値部分は可変)が
USBデバッグ
が有効になっていない場合は以下のように
Unauthorized
となります。その場合はデバッグ設定を再度有効にしてください。
C:\data>adb devices List of devices attached 353351060139045 unauthorized
- error
- 'adb' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。
と言われた場合は パスがうまく通っていない
のでやり直してください。
ではバックアップをします。
adb backup jp.co.hit_point.nekoatsume
のように入力してください。
C:\data>adb backup jp.co.hit_point.nekoatsume Now unlock your device and confirm the backup operation...
まだ終わっていません。スマホ側で許可する必要があるのです。USB接続しているスマホを見てください。
とあるので、「データをバックアップ」をタップするとバックアップが完了します。
- warning
- パスワードはあってもいいですが入力した場合はリストアする時に必要になるので覚えておいてください。
- 放置するとタイムアウトするのでその場合はやり直してください。
端末側で終了しましたと出たらひとまずバックアップは終了です。
backup.ab
というファイルが作られました。多分ファイル名を指定しないとデフォルトでこうなる。
C:\data>dir ドライブ C のボリューム ラベルは OS です ボリューム シリアル番号は 3A44-6E75 です C:\data のディレクトリ 2017/01/01 18:08 . 2017/01/01 18:08 .. 2017/01/01 18:08 24,540,932 backup.ab
元旦の夕方に何をやってるんだ俺は。
ちなみに jp.co.hit_point.nekoatsume
はアプリの識別子のようなものです。
もしねこあつめ以外のアプリをバックアップしたいのであれば、
adb shell pm list packages -f
とすればインストールされているアプリ一覧がわかるので調べた後に同じようにバックアップできます。
ちなみに旅かえるは jp.co.hit_point.tabikaeru
です。
あなたが違うアプリをバックアップしたい場合、Playストアのアドレスバーに書かれた
idパラメータ
と同じ識別子を指定すればOKです。
C:\data>adb shell pm list packages -f | findstr nekoatsume package:/data/app/jp.co.hit_point.nekoatsume-1.apk=jp.co.hit_point.nekoatsume
- info
findstr nekoatsume
はフィルタです。- 結果がたくさん出るので
nekoatsume
を含む行だけに絞り込むためのものです。
adbコマンドを使ってリストアする
バックアップしたデータを戻す(適用)することをリストアといいます。
先程のバックアップではデータだけをバックアップした(apkを含まない)ので、データだけをリストアすることになります。 アプリは含まれていないので移行先のスマホにねこあつめを予めインストールしておいてください。
今度は移行先(新しい方)のスマホをUSBでPCに接続します。先程のスマホは抜いていいです。(安全に取り外してください)
つづいて adb restore backup.ab
と入力し、リストアを行います。
C:\data>adb restore backup.ab Now unlock your device and confirm the restore operation.
先ほどと同じように。スマホ側で許可する必要があります。USB接続しているスマホを見てください。
先ほどパスワードを入れた方は同じパスワードを入力。空にした場合は省略し、「データを復元する」をタップします。
終わるまで待って、ねこあつめを起動してみましょう。
できましたわー。よかった。金にぼ2つとかだらしねぇな。
脱線ですが Android4
から 6
に移行するときに使った adb のバージョンは 1.0.31
です。
1.0.32
以上を使って Android4.X
のバックアップ取ろうとすると空のバックアップが作られてしまい、これで結構ハマったのでみなさんも気をつけてください。
C:\data>dir ドライブ C のボリューム ラベルは OS です ボリューム シリアル番号は 3A44-6E75 です C:\data のディレクトリ 2017/01/01 16:32 . 2017/01/01 16:32 .. 2017/01/01 16:32 41 backup.ab 2 個のファイル 41 バイト
パスワード入力するとできるようなことが何処かに書いてあった気がしたので試したみたけど
C:\data>adb backup jp.co.hit_point.nekoatsume Now unlock your device and confirm the backup operation... C:\data>dir ドライブ C のボリューム ラベルは OS です ボリューム シリアル番号は 3A44-6E75 です C:\data のディレクトリ 2017/01/01 17:07 . 2017/01/01 17:07 .. 2017/01/01 17:08 549 backup.ab 1 個のファイル 549 バイト
549バイト!やったか..!?
とおもったらやっぱりできてなかった( ^ω^)・・・
コメントを頂いてもすぐに返答できないため、 この記事に関して不明点があった場合はお手数ですがインターネットのみんなに聞いてみてください。
その他参考リンク
ウェブリブログ:サービスは終了しました。http://hikoukai.at.webry.info/201611/article_1.html