前言
在某些情况下,我们可能需要将MC的数据存储路径从私有目录(/storage/emulated/0/Android/data/)改为公有目录(/storage/emulated/0/)。本教程将教你如何使用 MT文件管理器 修改 class.dex 文件中的 getExternalStoragePath() 方法。
免责声明:因本教程导致的任何责任都和教程作者无关,教程作者无需负责
警告: 修改安装包可能导致游戏无法正常运行或出现其他意外问题。强烈建议不要擅自修改游戏安装包,除非你完全理解可能带来的风险,并已备份原始 APK 文件。擅自修改MC安装包可能违反Mojang的使用条款和条件。
操作步骤
步骤一:提取安装包
1. 打开 MT文件管理器。
2. 点击左上角的三条横杠。
3. 选择“安装包提取”选项,点击你要提取的安装包,点击,将 APK 文件提取到指定目录(例如默认目录 /storage/emulated/0/MT2/apks/)。
步骤二:编辑 class.dex 文件
1. 在 MT文件管理器 中,导航到提取的 APK 文件位置(例如默认目录 /storage/emulated/0/MT2/apks/)。

2. 点击 APK 文件,选择“查看”。

3. 在查看界面中,找到并点击 classes.dex 文件。

4. 选择“Dex编辑器++”并打开 class.dex 文件进行编辑。


步骤三:查找 getExternalStoragePath() 方法
1. 在 “Dex编辑器++” 中,依次打开以下路径: - com -> mojang -> minecraftpe

2. 找到并点击 MainActivity 文件,进入该类的代码。

3. 查找 .method public getExternalStoragePath() 方法,找到以下代码:
.method public getExternalStoragePath()Ljava/lang/String;
.registers 2
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/mojang/minecraftpe/MainActivity;->getExternalFilesDir(Ljava/lang/StringLjava/io/File;




步骤四:修改 MainActivity 代码
1. 删除下两行代码:

const/4 v0, 0x0

2.将代码:
invoke-virtual {p0, v0}, Lcom/mojang/minecraftpe/MainActivity;->getExternalFilesDir(Ljava/lang/StringLjava/io/File;

替换为:
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;

3. 修改后的代码应如下所示:
.method public getExternalStoragePath()Ljava/lang/String;
.registers 2
.line xxxx #这一行是部分包内有的,没有请忽略(如有勿动此代码)
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;

步骤五:保存修改
1. 修改完成后,点击右上角的保存按钮。

2. 确保修改的 classes.dex 文件已保存。

第六步:修改 targetSdkVersion 版本
图略,
首先点击安装包内的AndroidManifest.xml,选择反编译。
接着搜索 targetSdkVersion 随后将其后面的数字改为28并保存
步骤七:重新签名 APK
1. 长按修改过 classes.dex 的 APK 文件,选择“签名” -> “确定”。
(使用默认的签名方法签名 APK 文件。)


步骤八:安装APK测试
1. 将修改后的 APK 文件安装到设备上。
2. 启动应用,确认数据是否已存储到公有目录(/storage/emulated/0/)。

注意事项
---
通过以上步骤,你可以使用 MT文件管理器 修改 class.dex 文件,将MC的存储路径更改为公有目录。但请务必注意风险,并在进行操作前做好充分的备份和准备。
在某些情况下,我们可能需要将MC的数据存储路径从私有目录(/storage/emulated/0/Android/data/)改为公有目录(/storage/emulated/0/)。本教程将教你如何使用 MT文件管理器 修改 class.dex 文件中的 getExternalStoragePath() 方法。
免责声明:因本教程导致的任何责任都和教程作者无关,教程作者无需负责
警告: 修改安装包可能导致游戏无法正常运行或出现其他意外问题。强烈建议不要擅自修改游戏安装包,除非你完全理解可能带来的风险,并已备份原始 APK 文件。擅自修改MC安装包可能违反Mojang的使用条款和条件。
操作步骤
步骤一:提取安装包
1. 打开 MT文件管理器。
2. 点击左上角的三条横杠。
3. 选择“安装包提取”选项,点击你要提取的安装包,点击,将 APK 文件提取到指定目录(例如默认目录 /storage/emulated/0/MT2/apks/)。
步骤二:编辑 class.dex 文件
1. 在 MT文件管理器 中,导航到提取的 APK 文件位置(例如默认目录 /storage/emulated/0/MT2/apks/)。

2. 点击 APK 文件,选择“查看”。

3. 在查看界面中,找到并点击 classes.dex 文件。

4. 选择“Dex编辑器++”并打开 class.dex 文件进行编辑。


步骤三:查找 getExternalStoragePath() 方法
1. 在 “Dex编辑器++” 中,依次打开以下路径: - com -> mojang -> minecraftpe

2. 找到并点击 MainActivity 文件,进入该类的代码。

3. 查找 .method public getExternalStoragePath() 方法,找到以下代码:
.method public getExternalStoragePath()Ljava/lang/String;
.registers 2
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/mojang/minecraftpe/MainActivity;->getExternalFilesDir(Ljava/lang/StringLjava/io/File;




步骤四:修改 MainActivity 代码
1. 删除下两行代码:

const/4 v0, 0x0

2.将代码:
invoke-virtual {p0, v0}, Lcom/mojang/minecraftpe/MainActivity;->getExternalFilesDir(Ljava/lang/StringLjava/io/File;

替换为:
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;

3. 修改后的代码应如下所示:
.method public getExternalStoragePath()Ljava/lang/String;
.registers 2
.line xxxx #这一行是部分包内有的,没有请忽略(如有勿动此代码)
invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;

步骤五:保存修改
1. 修改完成后,点击右上角的保存按钮。

2. 确保修改的 classes.dex 文件已保存。

第六步:修改 targetSdkVersion 版本
图略,
首先点击安装包内的AndroidManifest.xml,选择反编译。
接着搜索 targetSdkVersion 随后将其后面的数字改为28并保存
步骤七:重新签名 APK
1. 长按修改过 classes.dex 的 APK 文件,选择“签名” -> “确定”。
(使用默认的签名方法签名 APK 文件。)


步骤八:安装APK测试
1. 将修改后的 APK 文件安装到设备上。
2. 启动应用,确认数据是否已存储到公有目录(/storage/emulated/0/)。

注意事项
- 确保应用具有正确的存储权限,如 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE,否则无法正常访问外部存储。
- 修改 APK 后,必须重新签名,否则 APK 无法安装。
- 在操作前,建议备份原始 APK 文件,以防修改过程中出现问题。
- 强烈建议 不要擅自修改游戏安装包,因为这可能导致应用出现问题或违反使用条款。
---
通过以上步骤,你可以使用 MT文件管理器 修改 class.dex 文件,将MC的存储路径更改为公有目录。但请务必注意风险,并在进行操作前做好充分的备份和准备。