大家我是老张,又来跟大家分享我的折腾日常了!这回,我盯上了B站的风纪委员会安卓客户端,想着能不能给它整个汉化版出来,方便大家伙儿更好地参与社区管理。说干就干,咱们开始!
第一步:拿到安装包,开始反编译
得有风纪委员会的安卓安装包。这个简单,直接从手机里导出来一个。拿到apk文件后,就开始了我的反编译之旅。我用的是apktool
这个工具,挺好使的,能把apk文件拆解成咱们能看懂的smali代码和资源文件。打开命令行,敲下命令:
apktool d 风纪委员会.apk
等它跑完,就会生成一个叫“风纪委员会”的文件夹,里面就是反编译后的东西了。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
第二步:大海捞针,寻找文本
反编译之后,就得开始找那些需要翻译的文本了。安卓应用的文本一般藏在res/values
文件夹下的文件里,但这回我发现,风纪委员会的文本并不全在这里,还有一部分写在了代码里,也就是那些smali文件里。这下就麻烦了,得一个一个文件地翻。
我先从开始,用文本编辑器打开,里面密密麻麻全是英文。一个一个对照着翻译,把英文替换成中文。这个过程很枯燥,眼睛都看花了。
第三步:啃代码,硬着头皮改
搞定了,接下来就是啃smali代码了。这玩意儿看起来像汇编,但又不是,反正我是看得头大。只能一点一点地分析,找到那些显示文本的地方,然后把英文替换成中文。这里需要用到一些smali的语法知识,比如怎么调用字符串、怎么赋值等等。不会就去网上查,一点一点地学。
举个例子,我找到这样一行代码:
const-string v0, "Report Reason"
这表示定义了一个字符串"Report Reason",并把它赋值给v0这个变量。那我就把它改成:
const-string v0, "举报理由"
就这样,一点一点地改,改到吐血。
第四步:回编译,生成新安装包
改完代码和资源文件后,就要把它们重新打包成apk文件了。还是用apktool
,这回用的是b
命令:
apktool b 风纪委员会
它会把修改后的文件重新打包成一个apk文件,放在dist
文件夹里。但是,这个apk文件还不能直接安装,因为它没有签名。
第五步:签名,让手机信任它
安卓系统为了安全,要求所有的apk文件都要有签名才能安装。我们需要对新生成的apk文件进行签名。签名需要用到jarsigner
这个工具,它是JDK自带的。先要生成一个证书,然后再用证书对apk文件进行签名。
keytool -genkey -alias mykey -keyalg RSA -keysize 2048 -validity 10000 -keystore *
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore * 风纪委员会.apk mykey
这两条命令执行完,就会生成一个签名后的apk文件,就可以安装到手机上测试了。
第六步:测试,修bug
安装到手机上后,就开始测试。发现有些地方翻译不对,有些地方显示乱码,还有些地方直接崩溃。这时候就得重新反编译,找到问题所在,然后修改代码,重新打包签名。这个过程反复了很多次,简直就是噩梦。
一步:分享,供大家学习
经过一番折腾,总算是把风纪委员会的安卓客户端汉化得差不多了。虽然还有一些小bug,但基本不影响使用。我把汉化后的apk文件分享出来,供大家学习交流。希望大家多多支持,也欢迎大家提出宝贵意见,一起完善这个汉化版。
这回汉化经历真是让我体会到了安卓逆向的艰辛,也学到了很多新的知识。虽然过程很痛苦,但看到成果的那一刻,还是很有成就感的。希望我的分享能对大家有所帮助!