七的博客

安卓软件汉化

Android

安卓软件汉化

汉化就是让一些国外的软件,不支持切换中文语言的,变成界面上显示中文。汉化算是安卓逆向中,最简单的一种。

在国内各大安卓论坛里面,汉化通常都是强制将软件上显示的其他语言转为中文。国外像 XDA 论坛的话有时候会将软件转成多语言,就比如说原先是英文的,它会加一个语言切换选项,然后各国的语言文本都加到软件里面去,这样全世界下载这个软件大部分都可以切换到自己当地的语言。

汉化的一个大致步骤如下:

  • 先反编译要汉化的 apk 文件,反编译后将会生成一个文件夹,文件夹下包括资源文件。
  • 找到资源文件中的英文或者其他语言部分,使用谷歌翻译或者是百度翻译一个个翻译成中文。
  • 替换这种语言文本,然后保存到相应的文件中。
  • 重新编译 apk 文件,生成新的 apk 包。
  • 重新对 apk 文件进行签名,还可以使用 zipalign 进行优化。
  • 将安装包通过 adb 命令传到手机上,或者直接 adb 安装到手机上。
  • 如果签名不一样的话,还需要把原先的软件卸载掉,然后重新安装。
  • 验证文本是否都被汉化,没有汉化完成继续尝试汉化。

举个例子,假如需要汉化的软件为 123.apk ,那么汉化流程如下:

  • 先反编译这个 apk 文件。 执行命令
  java -jar apktool.jar d 123.apk -o  outputFolder/ 

其中 apktool.jar 就是你下载的 apktool 的文件名。 123.apk 就是 apk 的文件路径。 outputFolder 就是反编译后的文件夹。 这个文件夹里面就是字节码以及一些资源文件等。

  • 一般软件中的文本信息,都会在 res/values 目录下找到 strings.xml 这个文件里面。这个文件里面有大部分的软件文本,直接使用 Sublime 编辑器打开,然后将其中的英文或者其他语言改成中文即可。注意 XML 文件的格式不要改变,否则编译会报错。

  • 如果又看到 values-zh 之类的文件,说明本身是有中文支持的,很有可能你不需要汉化。

  • 翻译完后记得保存,然后重新编译。

  • 使用 apktool 重新打包命令。 执行

  java -jar apktool.jar b  outputFolder/  -o new_123.apk 
outputFolder/ 就是反编译后的文件夹。 new_123.apk 就是新的 apk 名称,你可以任意取一个你想的文件名。
  • 然后需要签名,签名我们一般会使用一个默认的签名,从网上下一个或者自己生成一个即可。然后执行
  jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore  default-key.keystore new_123.apk alias_name
  • default-key.keystore 为密钥库文件。

  • new_123.apk 为要签名的文件。

  • alias_name 为密钥别名。

  • 签完名后直接安装到手机里进行测试,看看是否汉化。

如果改完 xml 文件,发现还有些不是中文的,那么这个文本可能在 smail 代码里面,需要去反编译后的 /smail 目录下,搜索对应的文本。比较典型的就是这种,

const-string  v1 , "Menu" 

这种是文本写在代码里面的,换成 Java 代码就有点类似于

String v= "Menu"; 

直接全局搜索文件夹下的 const-string 开头的内容,然后一个个点进去看,再汉化。

按照上面的步骤一步步来,一般只要环境搭建的没有问题,同时操作步骤没问题,汉化都是可以成功的。比较容易出错的,一般都是回编译的时候,修改完了文件,要重新打包回去,一般是由于改错了文件内容导致的错误。

还有一种更加简单的汉化,但是汉化不完全所有的文本。 先下载一个软件,名字叫做 AndroidResEdit 。 这个软件可以很轻松的汉化软件,还可以修改签名。

下载完软件后,将安装包文件名从 *.apk 修改为 *.zip ,然后使用压缩软件打开 *.zip 文件。 将压缩包里面的 resources.arsc 文件拖到桌面或者其他位置。

然后打开 AndroidResEdit 这个软件,将文件 resources.arsc 直接拖入编辑器软件的空白处。 这个时候软件会自动显示这个文件里面的文本资源信息。左边一列是英文,右边一列是要翻译的中文。点击每一行然后右键可以直接提供谷歌翻译,翻译效果也是挺不错的。

翻译完成后,将 /META-INF 下除了 MANIFEST.MF 的文件全部删除,再将修改完成后的 resources.arsc 直接替换原先的 resources.arsc 。 将安装包文件 *.zip 修改成 *.apk。

打开 AndroidResEdit ,选择菜单上的 签名 工具,选择安装包 *.apk 文件,然后再点击立即签名。 签名后的安装包可以安装到手机上试试效果。