说起APK的汉化,目前大部分教程都是让用Hex Workshop或者Android ResEdit来做。但是实际操作后,就会发现:
1、Hex Workshop操作繁琐,经常出现搜不到想要修改的字符的情况;
2、Android ResEdit简单用用可以,修改稍微复杂一点就会出现整条整条丢字符串的情况;并且新内容不能比原内容长——谁能保证我的本地化语言就一定比原来的短呢?

现在好了,老外写的《android-apktool》软件,可以帮助我们把APK反编译,生成程序的源代码和图片、XML配置、语言资源等文件。我们对图片和语言资源等文件修改后,可以再把它们编译打包成APK,签名后就是手机可以安装的本地化/修正版APK了。

《android-apktool》软件软件可以访问它的主页http://code.google.com/p/android-apktool/下载获得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip两个包都要下。下载后解开,为了方便使用,按作者的推荐把得到的4个文件复制到C:\Windows文件夹里。

这个工具是Java写的,需要你的电脑安装了JRE或者JDK,并在系统环境变量Path里加入java.exe所在路径。

以上准备工作做好后,就可以用它来反编译APK了。这里我用动态壁纸的APK来做示范。

如果用过动态壁纸,你也许会发现在设置壁纸时,界面的显示有点问题:“动态壁纸”,在手机上中文显示为“当前壁纸”。这是“动态壁纸选择器”LiveWallpapersPicker.apk的翻译错误造成的。

(假设LiveWallpapersPicker.apk放在C盘根目录)

开始 > 运行,输入cmd,回车。

  1. apktool d "C:\LiveWallpapersPicker.apk" "C:\LiveWallpapersPicker"

复制代码

(命令行解释:apktool d 要反编译的文件 输出文件夹)

这样,LiveWallpapersPicker.apk就被反编译了,输出内容在C:\LiveWallpapersPicker文件夹里。

打开C:\LiveWallpapersPicker文件夹,我们发现里面有一些XML文件和一些文件夹。绝大部分情况下,语言和图片资源都在res文件夹里,我们这个例子当然不例外。

打开res文件夹,可以其中又是很多文件夹。(又是)绝大部分情况下,语言资源都放在values*文件夹里。比如说values放默认语言(英语居多),values-de放德语,values-fr放法语等等。一般我们关心的是values-zh-rCN(简体中文)和values-zh-rTW(繁体中文)。

打开values-zh-rCN文件夹,其中有个strings.xml。打开看看:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
  <string name="application_name">动态壁纸选择器</string>
  <string name="live_wallpaper_picker_title">当前壁纸</string>
  <string name="live_wallpaper_preview_title">当前壁纸预览</string>
  <string name="configure_wallpaper">设置...</string>
  <string name="wallpaper_instructions">设置壁纸</string>
  <string name="live_wallpaper_empty">无当前壁纸。</string>
  <string name="set_live_wallpaper">设置壁纸</string>
  <string name="wallpaper_title_and_author">%1$s提供者:%2$s</string>
  <string name="live_wallpaper_loading">正在载入当前壁纸…</string>
</resources>

很好,就是它了。把“当前壁纸”都改为“动态壁纸”,再检查和修正标点——中文内容用中文标点(强烈呼吁大家注意标点问题,目前马大哈太多了)后,保存。

本例改这么多就够了。其它复杂的APK建议把res文件夹里的内容都检查下,至少你关心的语言文件夹里的内容都检查下。

改完后,就可以重打包了。还是在cmd命令行里,输入:

  1. apktool b "C:\LiveWallpapersPicker"

复制代码

(命令行解释:apktool b 要打包内容所在文件夹)
就可以了。生成的APK在C:\LiveWallpapersPicker\dist文件夹里,叫out.apk。

这个out.apk是没有签名的,所以不能直接装到手机里。签名工具和方法见http://www.hiapk.com/bbs/thread-21261-1-1.html,这里不说了。

签名后得到的APK,就是可以装到手机里的了。

操练:去掉免费版软件的广告条
[http://bbs.ophone8.net/viewthread.php?tid=18082]
打开google code发现Apktool更新了,居然支持win了。。。。
那本文就是一篇介绍在windows环境下使用Apktool的笔记。
安装

1.先装JAVA环境,JDK/JRE都行,官网下载 装过的就跳过吧

2.下载apktool.jar及相关文件,这里下apktool-1.0.0.tar.bz2 和apktool-install-windows-2.1_r01-1.zip

3.解压apktool.jar到 C:\Windows 解压apktool-install-windows.zip到任意文件夹(例如E盘根目录)
4.Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入apktool看看。会列出一些帮助的话就成功了。Apktool 命令

apktool d XXX.apk ABC   反编译XXX.apk到文件夹ABC
apktool b ABC           从文件夹ABC重建APK,输出到ABC\dist\out.apk

然后我们反编译一枚软件玩玩…
AutoMemoryManager的免费版底部有一条广告,去掉它吧。
把com.lim.android.automemman.apk放到同文件夹(我的就是E盘根目录)
Win+R 运行CMD
E:<回车>
E:\>apktool d com.lim.android.automemman.apk AMM <回车>
I: Baksmaling…
I: Decoding resource table…
I: Decoding resources…
I: Copying assets and libs…
现在文件被decode到E:\AMM了,打开E:\AMM\res\layout\main.xml看,所有都可见了吧~
编辑第59行

<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”fill_parent” android:layout_height=”wrap_content” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” />

改为

<com.admob.android.ads.AdView android:id=”@id/ad” android:layout_width=”0.0dip” android:layout_height=”0.0dip” admobsdk:backgroundColor=”#ff000000″ admobsdk:textColor=”#ffffffff” admobsdk:keywords=”Android application” />

然后CMD输入
E:\>apktool b AMM
I: Checking whether sources has changed…
I: Smaling…
I: Checking whether resources has changed…
I: Building resources…
I: Building apk file…
用Auto-sign签名E:\AMM\dist\out.apk 安装
这样广告就不见了

再看,嘿嘿~很帅吧…
这其实就是改了AndroidManifest.xml里的ADmob广告ID罢了

还是关于apk文件的反编译相关推荐

  1. 游走Android系列之APK文件的反编译、修改和重新编译打包

    Android apk反编译.重新编译和签名 将apk文件解压后有两部分文件需要处理,一种是xml文件,另一种一个dex文件(.dex),我们可以从.dex文件中得到.class,再将.class处理 ...

  2. 【apk破解尝试之旅】-——apk文件的反编译与回编译

    前段时间玩了个手游,中途碰到一个副本迟迟无法攻破,又不没钱氪金,想着弄个破解版的,搜了半天没找到,于是决定自己动手干! 首先要对apk有个初步的了解,..apk文件是一种压缩文件,网上有种说法:apk ...

  3. app加固apk文件防止反编译apk打包流程

    文章目录 [1]加固 一.为什么要加固 二.加固方案 ①免费的第三方加固方案 ②付费的第三方加固方案SDK ③Java IO 流实现AES加密dex [2]加固方案的实现方式 [3]apk文件构造 [ ...

  4. Apk文件破解反编译(转)

    首先我们了解下什么是apk APK是AndroidPackage的缩写,即Android安装包(apk).APK是类似Symbian Sis或Sisx的文件格式.通过将APK文件直接传到Android ...

  5. 如何修改apk文件,反编译(转)

    APK文件的解包打包和修改 相信每位玩机的人对APK文件都不陌生.你可能每天都与APK文件打交道,无论是安装和卸载有用的应用工具.插件.好玩的游戏等等...你可曾知道这些每天都伴随着你的APK文件是什 ...

  6. 【Android 安全】使用 360 加固宝加固应用 ( 购买高级加固服务 | 设置资源加固 | 设置 SO 文件保护配置 | 设置 SO 防盗用文件配置 | 反编译验证加固效果 )

    文章目录 一. 购买加固服务 二. 设置资源加固 三. 设置 SO 文件保护配置 四. 设置 SO 防盗用文件配置 五. 反编译验证加固效果 本博客用于记录下 360 加固保 加固应用流程 ; ( 上 ...

  7. Apk文件结构, Dex反编译

    android 系统最常见的莫过就似乎apk文件了,这就是android的安装文件 下面简单说说这个apk的文件格式吧,转载了下别人的说明: Apk文件: Android application pa ...

  8. Android APK系列6-------APK反编译

    Android APK系列6-------APK反编译 前面系列提到的工具在此依然有用,比如可以用yaff2img浏览器或者unyaffs来解压system.img,如果手里是手机,则需要用豌豆荚或3 ...

  9. 安卓apk修改(Android反编译apk)

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程.APK修改,分为以下几步:反编译解包,修 ...

最新文章

  1. 智能跳过节假日算法java_java计算两个日期之前的天数实例(排除节假日和周末)...
  2. 异常宕机 Ora-00600 [Kccpb_sanity_check_2] 错误解决方法
  3. 三张內存变化图揭秘基本类型数组的初始化
  4. 网工基础测试题(附HCIA题库)
  5. python牛顿法寻找极值_python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例...
  6. Python flask使用实例
  7. Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告
  8. java遍历字符串_Java后端开发算法基础面试题分享,你离大厂也许就差这份面试题
  9. 24有几种封装尺寸_mmWave设备的封装应该如何处理
  10. Linux 中的 XEN 虚拟化技术(二)Xen 的安装和配置
  11. linux之菜鸟学习第一天
  12. ILSpy反编译软件的使用
  13. Adobe软件的各种卸载工具和方法,不信灭不掉AE!
  14. 红帽 linux 安装,linux (红帽)如何安装?
  15. html 页面长度单位,css绝对长度单位有哪些?
  16. 培训机构让考java证书有必要吗在线等
  17. MySql在Springboot项目中报错errorCode 1045 ,state 28000
  18. PulseSensor开发文档(二)动态阈值算法获取心率值
  19. C#——Windows 程序,一个百万富翁遇到一个陌生人,
  20. Silverlight实用窍门系列:14.Visifire图表控件的使用一(图表的创建和基础使用)【附带源码实例】...

热门文章

  1. testdisk-强大的磁盘恢复工具
  2. 河北大学计算机专业调剂,河北大学考研接收调剂信息
  3. 软件测试肖sir__rf框架之介绍(2)
  4. 【边缘设备】nanoPC-T4 挂载NVME硬盘
  5. 华硕台式机笔记本预装GHOST XP SP3系统V2013(DVD版)
  6. win7怎么修改计算机皮肤,Windows7系统是怎么修改UC浏览器的皮肤?
  7. 打不过就加入!字节70w年薪架构师终是败给了阿里天梯图
  8. Impinj携手英特尔推出EPC UHF RFID平台,助力解决方案快速开发
  9. java字符串abc反转_JAVA字符串反转的三种方法
  10. windows10或11:输入法变成繁体字? windows10或11:输入法变成繁体字解决方法