admin 管理员组

文章数量: 1184232


2024年4月20日发(作者:什么是随机数字表)

[教程] Android程序(.apk)汉化教程之汉化

Android, dex, apk, classes, 教程

本帖最后由 s.p.k 于 2010-9-7 14:24 编辑

是程序编译后的[程序名].java文件。

其中包含了软件所有activity编译后的代码。

JesusFreke写了一个反编译dex文件的java程序,并发布在google code上

/p/smali/ 我们可以去下载和最新版

dex解包

程序需要java环境,下载JDK或者JRE已经安装的请跳过

解包dex:

java -jar %1 -o classes

打包dex:

java -jar classes

两个jar程序和上面操作使用的批处理都在压缩包内..点击下载(内含和

v1.1版)..

把需要反编译的文件和两个jar放在同一目录下,拖动dex到 “解包.bat”,

之后会在同目录生成”classes”文件夹

打开classes文件夹看看(以twigee为例)

路径为*classesticetwitterwalk里头有很多以.smali为后缀的文件

他们就是反编译后的程序,也就是我们要修改的文件

这些文件通常有几十个甚至几百个,数量惊人(.smali文件数量=程序原activity数量),

不知从何下手吗?

用最简单的记事本打开看看吧~

没错,他们就是纯文本文件,是不是眼前一片明朗了呢?

不过对于大量的文件,window自带滴记事本是绝对应对不了的。

接下来就轮到大杀器Notepad++登场了~

Notepad++支持文件夹内批量搜索文本,而且速度超快,这就是要用他的原因了。

打开Notepad++ 按Ctrl+F 选择“文件查找”选项卡,就可以批量搜索了

那么如何知道要修改些什么呢?

首先我们来分析那一大堆.smali文件

和xml一样,作者很明确的表明了每个activity的作用

和分析xml一样地分析smali文件,想一想你要找的资源会出现在activity,但是要做的

这点对于不是学程序的人真的很难。

简单方法当然有,那就是批量搜索!

我们汉化的顺序是先arsc再xml,最后才会到dex中寻找资源

再汉化完前两者之后,最好先上机测试下,看看有还有哪些资源没有被汉化,而这些没有

被你汉化到的资源,就藏在dex中了。

也就是说,汉化dex中资源的目标是确切的,你可以在运行软件后记录下还没被汉化的地

方,然后逐个寻找,替换。

具体实例:

我再把Twigee的arsc和xml汉化完之后,还有些资源没被汉到

分别是:“Following”“Follower”“Home”等

用Notepad++搜索“Follow”

(点击图片放大)

下面出现了好多结果„.

我们找要的是const-string vn “关键字”

把英文改了吧~不过修改完是乱码„

没关系,那是编码问题,选择 格式→转为UTF8就可以显示了,不过千万要记得保存前要

改回ANSI !!

注意:1.只能修改const-string vn “关键字” 引号中的字符

2.同时出现多个重复的关键字时,请谨慎修改,有些可能是定义函数的 具体参考

/p/smali/source/browse/#svn/dalvik-docs/opcodes

3.千万记得保存时的文本编码为ANSI

dex打包

注意:打包前请确定classes 文件夹下没有其他无用文件,如notepad++的备份文件

拖动“classes”文件夹到 “打包.bat”,之后会在同目录生成””文件,它就是

重新编译后的了

就此,dex汉化完成

在完成arsc xml dex的分别汉化之后

我们进入最后的收尾步骤——打包&签名

打包 首先我们得先找到原来的那个APK包,别告诉我你已经删了„.

1.用winrar打开它,把你汉化完成的arsc,xml,dex文件按照原目录替换,也就是用鼠

标拖进winrar去

2.删除META-INF文件夹,里面是原来的证书文件,删除后才能正确签名

3.关闭winrar窗口

签名 1.把修改后的APK包重命名为 放到Auto-Sign目录下 下载Auto-Sign

(需要java环境)

2.拖动到签名,在同目录生成,这就是签名后

的APK包

签名后程序为何不能安装?

1.如果提示证书错误,请删除英文原版程序后安装。

2.如果提示无法安装,请检查汉化过程中有没有修改到程序定义或函数的环节。

3.如果安装后无法运行或各种报错,请检查汉化过程中有没有修改到程序定义或函数的环

节。


本文标签: 文件 程序 修改 文件夹 目录