【非Root】 Android版Minecraftのワールドデータをアプリ領域から取り出した話

先日、久しぶりにMinecraftをプレイしました。
ワールドなどのデータも消してしまっていたので、まったくの0からのスタートだったのですが、ワールドを作成する際「ファイルストレージの場所」を「アプリケーション」にしてしまっていました。

この記事では、実際にAndroid版Minecraftで「アプリケーション」に保存したワールドをRoot・Relms無しで取り出した方法をご紹介します。

目次

知らないうちに増えていた「ファイルストレージの場所」

「遊ぶ」をタップするとそこにあったのは「ファイルストレージの場所」という設定項目。
その時は特に何も考えず、もともと選択されていた「アプリケーション」に設定したまま、ワールドを作成しました。

MODを入れようとした。

何時間かプレイした後、僕はMODを使おうとBlockLauncherを起動しました。

すると...
何もない(* ॑꒳ ॑* )⋆*

このBlockLauncerというアプリは、そのアプリ内で仮想的にMinecraftを起動している。といったような形のアプリです。
そのため、もちろんアプリデータの場所も実際のMinecraftとは異なります。
以前は、ワールドデータはすべて「外部(ユーザー領域)」に保存され、アプリごとに分けられることはなかったのですが、最近のバージョンでは「ファイルストレージの場所」に「アプリケーション」を選択してしまうと、ワールドデータがMinecraftのアプリデータとして保存され、BlockLauncherアプリからはアクセスできなくなってしまいます。
そのため、その場合にはMinecraftアプリとBlockLauncherアプリでワールドを共有することができなくなってしまうようです。

あとこれ、ワールド配布とか機種変更の引継ぎとかもできない。

皆さんはお気づきでしょうか。
アプリデータが保存される領域は通常、ユーザーがアクセスすることはできません。
PCに接続しても、基本的にはアクセスできないようになっています。
そのためこのままでは、ワールド配布がかなり難しいです。

また、Android標準のバックアップ機能ではアプリデータは引き継ぐことができません。(アプリ自体とユーザー領域にあるデータは引き継げます)
つまり機種変更の際、場合によってはワールドを捨ててしまうことにもなります。

データの救出(?)作業開始!

ということで、どうにかしてワールドデータを「アプリケーション」から「外部」に移動させたいわけですが、なにしろワールドデータがあるのはアプリ領域。通常の権限ではアクセスできません。

どこかに必ず道はある。

何かそのセキュリティを突破できる部分はないかと、端末の設定アプリ内を彷徨っていると...
「バックアップとリセット」項目内に、メーカー独自のバックアップ機能が。

開いていくと...
そこには「アプリとデータ」の文字が。
どうやらここでは、通常はAndroid標準のバックアップ機能でもアクセスできない、アプリデータもバックアップできるようです。

早速バックアップしてみました。

対象のアプリが1つだけだったこともあってか、処理には10秒もかかっていない印象です。

バックアップファイルはどこ?

バックアップデータは sdcard/MIUI/backup/AllBackup に保存されていました。
バックアップ日時のフォルダを開くと、そこには2つのファイルがありました。
ファイルサイズ的にも、名前的にも、Minecraftのデータが入っているのは99.9%下のファイルでしょう。

さあ、開いてみよう。

多分これはアーカイブファイル(野生の勘)なので、とりあえず拡張子を「.zip」にして開いてみましょう。


ダメでした。まあさすがにそこまでのガバガバ仕様じゃないよね、うん。

結論から言うと、7-Zipは神。

調べてみてもこのファイルの正体がわからなかったので(検索力)、とりあえずパソコンに移して7-Zipに投げ込んでみました。
普通に開けました。

7-Zip半端ないって!あいつ半端ないって!
拡張子適当でも普通に開くもん
そんなん出来ひんやん普通(激寒)

とにもかくにも。

ここまでくればもう簡単です。
さっき開いたアーカイブの中からワールドデータを探して、スマホにコピーするだけです。
ワールドデータは apps/com.mojang.minecraftpe/r/games/com.mojang/minecraftWorlds にありました。

これをスマホの sdcard/games/com.mojang/minecraftWorlds に移して、Minecraftの設定から「ファイルストレージの場所」を「外部」にしてゲームを再起動すれば完成ですね!
もし絶対に成功している自信があれば、その前に「アプリケーション」に保存されたワールドデータを削除しておいてもいいかもしれません(自己責任で)

お疲れ様でした。

ここまで読んでいただきありがとうございました。
だいぶ手順がごちゃついてますが、実際にはもっといろいろ試行錯誤してました。
合計5時間くらいはかけた気がします。
あとこれ思ったんですが、実際にやるかどうかは別として、端末にデータを保存するゲームであればそのデータをいじれちゃったりするんじゃないでしょうか。
バックアップデータを書き換えて、そのままリストア...みたいな。
悪用厳禁ですね。

だから私は、Xiaomi。

ただ今回使った手順、中国のXiaomiというメーカーが開発したMIUIというカスタマイズされたAndroid OSの独自機能を利用しているので、ほかのメーカーのスマホではこれと全く同じやり方は使えません。
メーカーによっては似たような機能を搭載していたりすると思うので、その場合にはぜひこちらの記事を参考にしていただければなと思います。
またAOSPでも、ADBを使って同じようなことをする方法があるみたいなので、もし時間があればまた今度ご紹介したいと思います。


コメント