zoukankan      html  css  js  c++  java
  • 用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

  • 相关阅读:
    检测mysq组复制的脚本
    centos7安装NFS
    mysql组复制安装
    springboot+VUE(一)
    redis集群配置
    codevs 3139 栈练习3
    codevs 3138 栈练习2
    codevs 2622 数字序列
    codevs 1054 电梯
    codevs 1507 酒厂选址
  • 原文地址:https://www.cnblogs.com/dartagnan/p/2003432.html
Copyright © 2011-2022 走看看