BlueStacks から Android Studio の Android Emulator に移行する方法

  • ここに書かれている方法でデータが消えても責任は取れませんのでご了承ください。
  • バックアップは必要に応じてしてください。
  • 各アプリケーションなどの利用規約などを確認してください。
  • バックスラッシュ(\) は適宜 円マーク(¥)に読み替えてください。

要約

  1. BlueStacks のインスタンスをroot化
  2. adb pull
  3. 同じOSのAndroid Emulator Deviceを作成
  4. adb push
  5. 動作確認

動機

もともと私は Intelmac を使用し, Boot Camp の中で BlueStacks 5 を動かし, ゲームを1つ入れていました。

その後, そのゲームがサービス終了し, Play Storeからは消え, そのゲームは端末の引き継ぎができなくなりました。

 

しばらくして, M3 の mac を買い, 移行アシスタントで mac の中はほぼ移行できましたが, Boot CampApple 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

失敗した方法

成功した方法

  1. 移行元の macBoot Camp にある BlueStacks を root 化
    BlueStacks Tweaker はダウンロードできませんでした。

    weichen168.medium.com

    このサイトの方法で root 化しました。
    1. BlueStacks のインスタンスの名前をメモ
    2. Cドライブを開く
    3. 表示タブ > 隠しファイルにチェックを入れる
    4. C:\ProgramData\BlueStacks_nxt\bluestacks.confを編集
      (私はVSCodeを使いました。)
  2. adb の確認
    BlueStacks が入っているなら C:\Program Files\BlueStacks_nxt\HD_Adb に adb があるはずです。少し場所が違うかもしれません。

    BlueStacksでADBを使う - みじんこのメモ書き

    私は別にadbを入れました。

    sp7pc.com


    以降で adb のパスを通していない人は adb を読み替えてください。
    コマンドプロンプトに入力する部分は
    > adb shell whoami
    shell
    のように書きます。
  3. BlueStacks からデータをとる
    1. BlueStacks 5 Multi-Instance Manager を再起動
    2. 後で使うので OS をメモ
    3. BlueStacks のインスタンスを開く
    4. 設定 > 上位設定 > Android Debug Bridge (ADB) をオンにする
    5. ポートをメモする
    6. BlueStacks のインスタンスを再起動
    7. Command⌘ キー(Windows キー) + R のあと cmd と入力し, コマンドプロンプトを開く。
    8. adb を接続
      > adb connect 127.0.0.1: 【5.でメモしたポート】
    9. adb のシリアルを取得
      > adb devices
      List of devices attached
      【シリアル】 device
      【シリアル】 device
      どちらかを使います。私は下を使いました。メモします。
    10. adb でバックアップをする
      > adb backup -apk -obb -shared -all -system -f %homepath%\Desktop\backup.ab
    11. (root で実行)
      必要かは分かりません
      > adb -s 【シリアル】 root
      restaring adbd as root
    12. adb shell に入る
      > adb -s 【シリアル】 shell
    13. 目的のアプリのパッケージ名を調べる
      $ pm list packages -3
      packages:【パッケージ名】
      複数出てくる場合は目的のアプリのものを選んでください
      メモします。
    14. apk の場所を調べる
      $ pm path 【パッケージ名】
      packages:【apkのパス】
      メモします。
    15. root になる
      $ su
    16. 内部ストレージをまとめる
      # cd /data/user/0/【パッケージ名】/
      # tar cvf /storage/emulated/0/Android/data/【パッケージ名】/files/data.tar .
      時間がかかることがあります。
    17. 外部ストレージをまとめる
      # cd /storage/emulated/0/Android/data/【パッケージ名】/files
      # tar czvf ../out.tar.gz .
      時間がかかることがあります。
    18. shell から出る
      # exit
      $ exit
    19. Android の中からデスクトップに apk を持ってくる
      > adb -s 【シリアル】 pull 【3.13.でメモしたパス】 %homepath%\Desktop\
    20. Android の中からデスクトップに持ってくる
      > adb -s 【シリアル】 pull /storage/emulated/0/Android/data/【パッケージ名】/out.tar.gz %homepath%\Desktop\
      時間がかかる場合は待ちます。(4.を並行して行うことをお勧めします。)
    21. デスクトップにある out.tar.gz と base.apk と backup.ab を外付けのハードディスクやギガファイル便などで新しいPCに転送します。(apkの名前が違う場合は読み替えてください。)
  4. 移行先の macAndroid Emulator を準備する
    1. Android Studio をインストール

      以前に Android Studio をインストールしていた場合は
      環境設定 > Language & FrameWorks > Android SDK
      から設定し直す必要がある場合があります。
      私はこの設定をしていなかったために Android Emulator を起動できませんでした。
    2. Device Manager を開く
      トップ画面 > More Actions > Virtual Device Manager
    3. + Create Virtual Device ボタンを押す
    4. 好きなデバイスを選ぶ
    5. OS は 3.2. でメモしたものをダウンロードし, 選ぶ (私は Pie 64 でした。)
    6. Show Advanced Setting を押す
    7. Memory and Storage > Internal Storage を十分大きい大きさにする。
    8. Finish
    9. 作成したデバイスを起動する。
  5. Android Emulator にデータを移動する
    1. ターミナルを開く
    2. 3.20.で移動した out.tar.gz と base.apk と backup.ab があるディレクトリに cd で移動する
    3. adb の場所を確認する
      私の場合は ~/Library/Android/sdk/platform-tools/adb にありました。
    4. adb に接続されているか確認する
      すでに接続されていると思います。
      $ adb devices
      複数ある場合は以降のコマンドに -s をつけてください。
    5. apk をインストールする
      $ adb install base.apk
      アプリ一覧にあると思います。
    6. バックアップからリストアする
      $ adb restore backup.ab
    7. バックアップからリストアする
      $ adb restore backup.ab
    8. 一度アプリを起動し, 閉じる。
    9. データを Android に送る
      $ adb push out.tar.gz /storage/emulated/0/Android/data/【パッケージ名】/
    10. shell に入る
      $ adb shell
    11. root になる
      $ su
    12. 外部ストレージを展開する
      # cd /storage/emulated/0/Android/data/【パッケージ名】/files/
      # tar xzvf ../out.tar.gz
      時間がかかることがあります。
    13. 圧縮ファイルを削除する
      # rm ../out.tar.gz
    14. 内部ストレージを展開する
      # cd /data/user/0/【パッケージ名】/
      # tar xvf /storage/emulated/0/Android/data/【パッケージ名】/files/data.tar
      時間がかかることがあります。
    15. アーカイブファイルを削除する
      # rm /storage/emulated/0/Android/data/【パッケージ名】/files/data.tar
    16. shell から出る
      # exit
      $ exit
  6. アプリを起動して動作確認をする

お疲れ様でした。

最後まで読んでいただきありがとうございます。

うまくいった, うまくいかないなどコメントをいただけるとうれしいです。

参考にしたサイト

scrapbox.io

www.farend.co.jp

qiita.com

qiita.com

qiita.com