吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19125|回复: 9
收起左侧

[Android 分享] 一个APK反编译利器Apktool

[复制链接]
王旭东 发表于 2015-1-8 11:53

APK 本地化



说起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。打开看看:

<?xmlversion="1.0" encoding="UTF-8"?>
<resources>
    <string name="application_name">动态壁纸选择器
</string>
    <stringname="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>
    <stringname="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罢了


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Avenshy 发表于 2015-1-8 13:05
现在apktool不是更新到1.5.3了吗
出尘雨 发表于 2015-1-8 13:00
ISBN 发表于 2015-1-8 12:31
追风之音 发表于 2015-1-8 12:13
谢谢楼主分享  试试
deson37234 发表于 2015-1-8 13:09 来自手机
如果我想在启动页面加广告呢  怎么做的
埋身欲搏 发表于 2015-1-8 13:29
看起来很牛逼的样子
覲年lt 发表于 2015-1-11 08:33
谢谢楼主分享  试试
KyleCheng 发表于 2016-3-22 11:16
矮油、、非常感谢楼主的分享!支持...
天蝎紫忆 发表于 2016-3-22 11:52
感谢楼主的分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 14:10

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表