- 浏览: 325155 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xuanyuanxiaoxue:
...
Android - LayoutInflater -
柴兴博:
不错 多谢
Android 悬浮Activity并可拖动(访悬浮歌词) -
di1984HIT:
写的很好,我收藏一下。
java之动态代理模式(JDK和cglib) -
chinacssnj:
待测试,明天测,测试的结果发给大家
网络开发上传文件到服务器 -
fx_199182:
...
Android之MediaPlayer
一个APK反编译利器Apktool
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,回车。
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命令行里,输入:
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,就是可以装到手机里的了。
打开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罢了
还可以参考文件:http://www.cnblogs.com/playing/archive/2010/08/11/1797696.html
发表评论
-
Android中AsyncTask的简单用法
2012-01-13 16:00 1122在开发Android移动客户端的时候往往要使用多线程来进行操 ... -
Android应用的自动升级、更新模块的实现 .
2011-11-16 14:01 644http://www.eoeandroid.com/threa ... -
自定义Android标题栏TitleBar布局
2011-11-14 14:13 1214很多网友发现自己Android程序的标题栏TitleBar区域 ... -
Android GPS获取地理位置 .
2011-11-14 14:11 825import android.app.Activity; i ... -
android ListView详解
2011-11-14 13:48 1024在android开发中ListView是比较常用的组件,它以列 ... -
Android之Content provider 详解
2011-11-14 13:35 2435Android是如何实现应用程序之间数据共享的?一个应用程序可 ... -
Android源码地址
2011-11-12 19:14 1022http://blog.csdn.net/ilittleone ... -
android之File
2011-11-11 22:39 19691:Fileservice package cn.itcas ... -
Android知识补漏
2011-11-09 22:33 01:AndroidManifiest.xml < ... -
深入剖析Android消息机制
2011-11-09 14:13 934在Android中,线程内部或者线程之间进行信息交互时经常会使 ... -
Android之Handler详解(四)
2011-11-09 14:00 1262d、自己创建新的线程,然后在新线程中创建Looper,主线程调 ... -
Android之Handler详解(三)
2011-11-09 13:58 1347c、将消息队列绑定到子线程上,主线程只管通过Handl ... -
Android之Handler详解(二)
2011-11-09 13:54 1633二:sendMessage版本的Handl ... -
Android之Handler详解(一)
2011-11-09 13:22 2265一个Handler允许你发送和处理消息(Message)以及 ... -
关于StartActivityForResult方法的使用
2011-10-31 17:11 1051根据方法名可知 这个方法是要得到启动后的Activity返回的 ... -
Android 悬浮Activity并可拖动(访悬浮歌词)
2011-10-24 16:23 2047天天动听, 这款Android手机上的音乐播放器,相信不少朋友 ... -
Android GWES
2011-10-24 16:13 1154第八章 Android GWES 8.1 View Syst ... -
Android系统服务-WindowManager
2011-10-24 16:10 1416WindowManager是Android中一个重要的服务 ... -
http通信
2011-10-15 17:31 1067HTTP(HyperText Transfer Proto ... -
android网络与通信(三种网络接口简述 )
2011-10-15 17:27 1413标准Java接口 java.net.*提供与联网有关的类 ...
相关推荐
不小心把项目删除了,只有apk文件,下载了好几个Apktool都用不了,只有这个能用,分享给大家。
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 ...
继承了apktool解包以及dex2jar反编译工具,只需直接解包,并把目录添加到path路径,apk + apk全路径即可直接解包到f:\apk, dex + dex文件全路径即直接生成jar文件到f:\dex。
安卓APK反编译利器,可以反编译并回编译
集成了apktool dex2jar 以及jd-gui等软件,让反编译apk变得更简单
apktools pktool是反编译apk文件的利器,
Android APK+Dex(APKDB)安卓反编译利器包是一款针对Android OS系统的APK程序直接反编译修改的工具,集合了当今最强悍,最犀利的APK及Dex文件编译工具,这款软件比上版调整幅度比较大,而这轮主要是先进行稳定性方面...
反编译apk的利器,除批处理为本人自写外其他均来自谷歌官方,适合改软汉化的童鞋使用
Android逆向工程之反编译三件套,包含apptool、dex2jar、jd-gui。apptool使用最新版本apktool_...三个工具实乃反编译之必备利器。详细使用说明可参考:http://blog.csdn.net/tianyaluqingchen/article/details/79420481
apk反编译程序,android开发者利器啊,Windows版
apktool d XXX.apk ABC 反编译XXX.apk到文件夹ABC apktool b ABC 从文件夹ABC重建APK,输出到ABC\dist\out.apk 然后我们反编译一枚软件玩玩… AutoMemoryManager的免费版底部有一条广告,去掉它吧。 把...
反编译利器,不用安装,直接运行即可!可以重建APK,带签名
文件夹里面包含apktool.jar、aapt.exe、apktool.jar,是反编译的利器
android 分析优秀apk布局资源利器,win7 64 亲测可用。 使用方法: 1、cmd 到解压路径下 2、apktool d target.apk (target.apk 是你目标apk的名字)
apktool v2.3.3,目前最新版本。反编译ANDROID apk程序的利器,支持最的android8.1
windows下反编译android apk利器,支持平台java,可反编译出资源文件以及源码
Obfuscapk是一个模块化的Python工具,用于在不需要反汇编源代码的情况下混淆Android应用程序,因为在对反编译的smali代码,资源和清单应用了一些混淆技术之后, 用于反编译原始apk文件并构建新的应用程序。...