今天折腾了一整天安卓汉化的破事儿,差点把手机都给整废了。早上有个铁粉私信问我《禁忌的秘密》这游戏汉化老是闪退咋整,我寻思这问题挺典型,干脆录个实操过程。
1. 准备阶段踩的坑
先翻遍全网找汉化包,结果下载了七八个版本,不是带病毒就是压缩包损坏。在某个论坛犄角旮旯扒到个2023年更新的包,重点看了评论区有人说成功运行才敢下手。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
- 工具清单:
- MT管理器(安卓端拆包必备)
- JDK环境(电脑端编译要用)
- Notepad++(改代码比记事本强百倍)
2. 实操翻车现场
按老方法把汉化包里的*直接覆盖原文件,游戏直接闪退连logo都不给看。试了改APK签名、调兼容模式,压根不顶用。
后来用MT管理器反编译一看傻眼了:这游戏居然把关键文本藏在了smali代码里!那些汉化包只替换了表面资源文件,深层代码全是乱码。
3. 硬核破解过程
步骤1: 把APK后缀改成.zip解压,在smali/com/game/secrets文件夹里找到几十个带$符号的怪异文件。
步骤2: 用Notepad++批量搜索”UTF-16″编码的日文原文,替换成中文时发现个巨坑:中文字符必须控制在原文本1/3长度内,超了就报错。
步骤3: 遇到字符串被截断的情况(比如”你 找到 钥匙 了 吗 “被拆成五个变量),得先在JDK里编译新变量,再把smali代码里的引用地址全改掉。
4. 临门一脚
重打包时签名工具总报错,发现是安卓11以上系统需要V2签名。用MT管理器自带的V2签名功能打钩,再禁用资源混淆,安装后终于看到中文界面!
测试时发现有个支线任务对话框还是日文,回头检查发现漏改了个叫a$*的文件。这种带数字编号的文件千万得用正则表达式批量搜索,手动找眼睛会瞎。
折腾到晚上八点才搞定,核心就三点:拆smali代码+控制中文字长+强制V2签名。这种把文本藏在代码里的游戏越来越多了,下次见到直接上smali准没错。顺便说句,改代码前千万备份原包,我手滑删错文件重来了三次…
(刚测试完发现游戏成就系统乱码了,淦!明天得继续修这破事儿)