- ここに書かれている方法でデータが消えても責任は取れませんのでご了承ください。
- バックアップは必要に応じてしてください。
- 各アプリケーションなどの利用規約などを確認してください。
- バックスラッシュ(\) は適宜 円マーク(¥)に読み替えてください。
要約
動機
もともと私は Intel の mac を使用し, Boot Camp の中で BlueStacks 5 を動かし, ゲームを1つ入れていました。
その後, そのゲームがサービス終了し, Play Storeからは消え, そのゲームは端末の引き継ぎができなくなりました。
しばらくして, M3 の mac を買い, 移行アシスタントで mac の中はほぼ移行できましたが, Boot Camp は Apple Chip には対応しておらず, 移行することができませんでした。
また, Blue Stacks は M3 の mac には対応していません。
このような状況で M3 の mac にゲームのデータを移行した方法を説明します。
かなり試行錯誤したので, 他の方のお役に立てたらと思い, ブログにしました。
環境
以前の mac
CPU: Core i9
mac OS: Sonoma 14.2
Boot Camp の OS: Windows 10 Home
BlueStacks 5.10
Android の OS: Pie 64
新しい mac
CPU: Apple M3 Pro
mac OS: Sonoma 14.4
Android Studio Iguana | 2023.2.1
失敗した方法
- UTM の 中で Windows
→ UTM は VT (仮想化の機能?) が使えないらしいので BlueStacks が動きませんでした。 - Paralles Desktop
Paralles Desktop は Boot Camp ディスクからの起動の機能があるので, もしかしたらと思いましたが, 仮想化機能が使えないらしいのでBlueStacksを使えませんでした。
- BlueStacks 5 を Rosseta で
動きませんでした。 - BlueStacks X
https://support.bluestacks.com/hc/en-us/articles/17979986317837-Introducing-BlueStacks-X-for-macOS/
ここにあるように Apple Chip に対応しているので, VPN を使ってダウンロードしましたが, クラウドで実行するサービスらしく, そもそも目的のものではありませんでした。
成功した方法
- 移行元の mac の Boot Camp にある BlueStacks を root 化
BlueStacks Tweaker はダウンロードできませんでした。
このサイトの方法で root 化しました。 - BlueStacks のインスタンスの名前をメモ
- Cドライブを開く
- 表示タブ > 隠しファイルにチェックを入れる
- C:\ProgramData\BlueStacks_nxt\bluestacks.confを編集
(私はVSCodeを使いました。) - adb の確認
BlueStacks が入っているなら C:\Program Files\BlueStacks_nxt\HD_Adb に adb があるはずです。少し場所が違うかもしれません。 私は別にadbを入れました。
以降で adb のパスを通していない人は adb を読み替えてください。
コマンドプロンプトに入力する部分は
のように書きます。> adb shell whoami shell
- BlueStacks からデータをとる
- BlueStacks 5 Multi-Instance Manager を再起動
- 後で使うので OS をメモ
- BlueStacks のインスタンスを開く
- 設定 > 上位設定 > Android Debug Bridge (ADB) をオンにする
- ポートをメモする
- BlueStacks のインスタンスを再起動
- Command⌘ キー(Windows キー) + R のあと cmd と入力し, コマンドプロンプトを開く。
- adb を接続
> adb connect 127.0.0.1: 【5.でメモしたポート】
- adb のシリアルを取得
どちらかを使います。私は下を使いました。メモします。> adb devices
List of devices attached【シリアル】 device
【シリアル】 device - adb でバックアップをする
> adb backup -apk -obb -shared -all -system -f %homepath%\Desktop\backup.ab
- (root で実行)
必要かは分かりません
> adb -s 【シリアル】 root
restaring adbd as root - adb shell に入る
> adb -s 【シリアル】 shell
- 目的のアプリのパッケージ名を調べる
$ pm list packages -3
複数出てくる場合は目的のアプリのものを選んでくださいpackages:【パッケージ名】
メモします。 - apk の場所を調べる
$ pm path
メモします。【パッケージ名】
packages:【apkのパス】 - root になる
$ su
- 内部ストレージをまとめる
# cd /data/user/0/
時間がかかることがあります。【パッケージ名】/
# tar cvf /storage/emulated/0/Android/data/【パッケージ名】/files/data.tar . - 外部ストレージをまとめる
# cd /storage/emulated/0/Android/data/
時間がかかることがあります。【パッケージ名】/files
# tar czvf ../out.tar.gz . - shell から出る
# exit
$ exit - Android の中からデスクトップに apk を持ってくる
>
adb -s 【シリアル】 pull 【3.13.でメモしたパス】 %homepath%\Desktop\
- Android の中からデスクトップに持ってくる
>
時間がかかる場合は待ちます。(4.を並行して行うことをお勧めします。)adb -s 【シリアル】 pull /storage/emulated/0/Android/data/【パッケージ名】/out.tar.gz %homepath%\Desktop\
- デスクトップにある out.tar.gz と base.apk と backup.ab を外付けのハードディスクやギガファイル便などで新しいPCに転送します。(apkの名前が違う場合は読み替えてください。)
- 移行先の mac で Android Emulator を準備する
- Android Studio をインストール
以前に Android Studio をインストールしていた場合は
環境設定 > Language & FrameWorks > Android SDK
から設定し直す必要がある場合があります。
私はこの設定をしていなかったために Android Emulator を起動できませんでした。 - Device Manager を開く
トップ画面 > More Actions > Virtual Device Manager - + Create Virtual Device ボタンを押す
- 好きなデバイスを選ぶ
- OS は 3.2. でメモしたものをダウンロードし, 選ぶ (私は Pie 64 でした。)
- Show Advanced Setting を押す
- Memory and Storage > Internal Storage を十分大きい大きさにする。
- Finish
- 作成したデバイスを起動する。
- Android Studio をインストール
- Android Emulator にデータを移動する
- ターミナルを開く
- 3.20.で移動した out.tar.gz と base.apk と backup.ab があるディレクトリに cd で移動する
- adb の場所を確認する
私の場合は ~/Library/Android/sdk/platform-tools/adb にありました。 - adb に接続されているか確認する
すでに接続されていると思います。
$ adb devices
複数ある場合は以降のコマンドに -s をつけてください。 - apk をインストールする
$ adb install base.apk
アプリ一覧にあると思います。 - バックアップからリストアする
$ adb restore backup.ab
- バックアップからリストアする
$ adb restore backup.ab
- 一度アプリを起動し, 閉じる。
- データを Android に送る
$ adb push
out.tar.gz /storage/emulated/0/Android/data/【パッケージ名】/
- shell に入る
$ adb shell
- root になる
$ su
- 外部ストレージを展開する
# cd /storage/emulated/0/Android/data/
時間がかかることがあります。【パッケージ名】/files/
# tar xzvf ../out.tar.gz - 圧縮ファイルを削除する
# rm ../out.tar.gz
- 内部ストレージを展開する
# cd /data/user/0/
時間がかかることがあります。【パッケージ名】/
# tar xvf /storage/emulated/0/Android/data/【パッケージ名】/files/data.tar - アーカイブファイルを削除する
# rm /storage/emulated/0/Android/data/【パッケージ名】/files/data.tar
- shell から出る
# exit
$ exit
- アプリを起動して動作確認をする
お疲れ様でした。
最後まで読んでいただきありがとうございます。
うまくいった, うまくいかないなどコメントをいただけるとうれしいです。
参考にしたサイト