用smali实现Android apk的简单汉化

Android中实现了英文apk应用的简单汉化,效果类似这样:

 

image

image

说一下具体步骤:

首先利用解压工具解压apk文件,解压后的目录结构如下:

image

然后利用smali工具对classes.dex进行反编译和编译,同时修改英文“help ”为“帮助”。smali下载地址http://code.google.com/p/smali/downloads/list,将红框中的四个文件下载到本地,并且放到同一个文件夹中。

image

 

反编译classes.dex:

ubuntu@ubuntu-desktop:~/fanxiang/hanhua$ ./baksmali com.braveo.langaid.apk_FILES/classes.dex

这样会在当前目录下生成out文件夹:

image

out文件夹中包含的是以smali结尾的文件,如图:

image

 

我这里打开的是LangAidView.smali文件,修改:

const-string v1, "help"为 const-string v1, "帮助"

然后在通过下面的命令编译out文件夹:

ubuntu@ubuntu-desktop:~/fanxiang/hanhua$ ./smali out

用生成的out.dex替换解压文件中的clesses.dex。同时META-INF文件夹下只保留MANIFEST.MF,其他文件全部删除。

然后利用zip工具将解压的文件夹打成zip包,修改文件后缀名为apk。

最后给apk文件签名。步骤如下:

ubuntu@ubuntu-desktop:~/fanxiang/hanhua$ keytool -genkey -alias my.keystore -keyalg RSA -validity 20000 -keystore my.keystore

输入密码等信息,最后回车如下图:

image

这样就生成了签名文件my.keystore。利用下面的命令给apk签名:

ubuntu@ubuntu-desktop:~/fanxiang/hanhua/com.braveo.langaid.apk_FILES$ jarsigner -verbose -keystore my.keystore -signedjar wendy_signed.apk com.braveo.langaid.apk_FILES.apk  my.keystore

命令中wendy_signed.apk 表示最终要生成的签名apk,com.braveo.langaid.apk_FILES.apk 表示需要签名的apk。输入密码,签名成功截图如下:

image

 

到此wendy_signed.apk就可以直接安装到手机使用。

 

来自:http://bigcat.easymorse.com/?p=729

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值