mac下破解apk文件以及apktool的相关使用
Android apktool是一个用来处理APK文件的工具,可以对APK进行反编译生成程序的源代码和图片、XML配置、语言资源等文件,也可以添加新的功能到APK文件中。用该工具来汉化Android软件然后重新打包发布是相当简单的。
下载地址:http://code.google.com/p/android-apktool/downloads/list
一.安装操作:
1.下载apktool.jar — 解压
2.下载Mac上的辅助工具apktool-install-macosx.. – 解压
3. 将apktool.jar放到apktool-install-macosx..目录下,也就是跟apktool命令放到一起
4.运行sh apktool
二.配置环境变量
(1)先查看$PATH的配置
(2)将上述三个文件复制到/usr/local/bin 下面
(3) 接下来你就可以直接使用apktool了
三.APKTOOL的命令解释
1.反编译APK命令
decode:该命令用于进行反编译apk文件,一般用法为 :
apktool d <file.apk> <dir>
<file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\MusicPlayer.apk
<dir>代表了反编译后的文件的存储位置,比如C:\MusicPlayer
如果你给定的<dir>已经存在,那么输入完该命令后会提示你,并且无法执行,需要你重新修改命令加入-f指令
apktool d –f <file.apk> <dir>
这样就会强行覆盖已经存在的文件
2.编译修改好的文件
build:该命令用于编译修改好的文件,一般用法为:
apktool b <dir>
这里的<dir>就是刚才你反编译时输入的<dir>(如C:\MusicPlayer),输入这行命令后,如果一切正常,你会发现C:\MusicPlayer内多了2个文件夹build和dist,其中分别存储着编译过程中逐个编译的文件以及最终打包的apk文件。
3.install-framework
该命令用于为APKTool安装特定的framework-res.apk文件,以方便进行反编译一些与ROM相互依赖的APK文件。具体情况请看常见问题
四.APKTOOL使用实例
4.1 反编译新浪微博的APK
01 |
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ apktool d /Users/bixiaopeng/Downloads/com.sina.weibo.apk /Users/bixiaopeng/work-folder/OWL-APKTOOL |
02 |
I: Baksmaling… |
03 |
I: Loading resource table… |
04 |
I: Loaded. |
05 |
I: Decoding AndroidManifest.xml with resources… |
06 |
I: Loading resource table from file: /Users/bixiaopeng/Library/apktool/framework/1.apk |
07 |
I: Loaded. |
08 |
I: Regular manifest package… |
09 |
I: Decoding file-resources… |
10 |
I: Decoding values */* XMLs… |
11 |
I: Done. |
12 |
I: Copying assets and libs… |
反编译后的结果:
4.2 重新打包修改后的资源文件
1 |
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ apktool b /Users/bixiaopeng/work-folder/OWL-APKTOOL |
2 |
I: Checking whether sources has changed… |
3 |
I: Checking whether resources has changed… |
4 |
I: Building resources… |
5 |
I: Building apk file… |
重新打包成功后,在原文件夹下面会多出一个dist文件夹,重新打包的APK就存在下面
4.3 自动签名
将你准备签名的keystore放到当前目录下,运行命令:
1 |
bixiaopeng@bixiaopengtekiMacBook-Pro dist$ jarsigner -verbose -keystore bxp.keystore -signedjar new.apk com.sina.weibo.apk bxp.keystore |
小解其意:
【keystore】:bxp.keystore
【签名后的apk名字】:new.apk
【签名前的apk名字】:com.sina.weibo.apk
【如果您没有keystore或者是不知道keystore密钥库的口令,那么您需要自己做一个,怎么做?跟我来吧!!】
4.4 用命令行创建keystore
1 |
keytool -genkey -keystore bxp.keystore -keyalg RSA -validity 10000 -alias bxp.keystore |
命令参数说明:
-genkey 产生证书文件
-keystore 指定密钥库的.keystore文件中
-keyalg 指定密钥的算法
-validity 为证书有效天数,这里我们写的是10000天。
-alias 产生别名
在输入密码时没有回显,只管输入就可以了,一般位数建议使用20位,切忌需要记下来后面还要用,
注意:
1. CN(Common Name – 名字与姓氏):其实这个“名字与姓氏”应该是域名,比如说localhost或是blog.devep.net之类的。输成了姓名,和真正运行的时候域名不符,会出问题。浏览器访问时,弹出一个对话框,提示“安全证书上的名称无效,或者与站点名称不匹配”,用户选择继续还是可以浏览网页。但是用http client写程序访问的时候,会抛出类似于“javax.servlet.ServletException: HTTPS hostname wrong: should be ”的异常。
2. 在用keytool生成数字证书时必须保证:-keystore androidapp.keystore -alias androidapp.keystore 两者名称必须相同。否则下一步签名时会出现错误:jarsigner: 找不到 androidapp.keystore 的证书链。androidapp.keystore 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。
mac下破解apk文件以及apktool的相关使用的更多相关文章
- mac下查看.mobileprovision文件及钥匙串中证书.cer文件
mac下查看.mobileprovision文件及钥匙串中证书.cer文件 一. mobileprovision文件查看 xxx.mobileprovision是ios开发中的设备描述文件,里面有证书 ...
- mac 下终端访问文件出现“Permission Denied”解决方案
mac 下终端访问文件出现“Permission Denied”解决方案: 一个文件有3种权限,读.写.可执行,你这个文件没有可执行权限,需要加上可执行权限. 1. 终端下先 cd到该文件的目录下 2 ...
- Mac下无法拷贝文件到移动硬盘
Mac下无法拷贝文件到移动硬盘? 是移动硬盘的文件格式的问题. Mac系统无法识别 NTFS 格式的文件. 将移动硬盘格式化为 exFAT 格式的. 别担心,exFAT 格式的硬盘在Windows下也 ...
- 【原】Mac下统计任意文件夹中代码行数的工
[链接][原]Mac下统计任意文件夹中代码行数的工http://www.cnblogs.com/wengzilin/p/4580646.html
- mac下Android apk 破解流程
相关工具下载:http://pan.baidu.com/s/1kTkOicn 首先你要有eclipse工具,在sdk目录下有如下工具可以使用 android:adb shell:进入交互shell ...
- 『原』在Linux下反编译Android .apk文件 使用apktool dex2jar JD-eclipse
一.使用apktool 将 apk反编译生成程序的源代码和图片.XML配置.语言资源等文件 具体步骤: (1)下载反编译工具包:apktool 官方的打不开 http://apktool.shouji ...
- 【原】Mac下统计任意文件夹中代码行数的工具——cloc
这里介绍一个Mac系统统计代码行数的工具cloc. 1.首先,安装homebrew,已安装的请跳过. 打开终端工具Terminal,输入下列命令.过程中会让你按RETURN键以及输入mac桌面密码,按 ...
- Mac下修改Hosts文件工具——Gas Mask
这段时间在做公司APP的项目,看到公司开发IOS的同事和我这边联调程序时,经常需要手动修改hosts文件,比较麻烦. 在公司忙,没有来及找,给同事推荐了我当时知道的一个切换hosts文件的工具:sma ...
- mac 下做csv文件的读取与生成的 遇到的坑
mac下每次读取就把所有的行都读出来了,其实windows下是正常的. 错误原因是逗号的识别方式不对
随机推荐
- 官网Android离线文档下载
这是Android的离线API及一些Guide——俗称的/docs文件夹下的内容——英文版的...——http://pan.baidu.com/s/1qXmLlQc
- 关于 HTTP meta 的 IE=edge 说明
http://www.oschina.net/question/54100_17414 陌生标记标记一: < meta http-equiv = "X-UA-Compatible&qu ...
- 如何使用werkzeug创建WSGI APP
注意 : 1.定义__call__的意义 class App(): def __init__(self): pass def method(self): pass app=App() app() #错 ...
- 【模板】manacher算法
传送门 某篇好文章 #include <cstdio> #include <cstring> #define N 22200000 #define min(x, y) ((x) ...
- hdu 4801模拟题
/* 模拟: 注意:实质上一次魔方的一半要变化 用c++超内存 用g++过了 */ #include<stdio.h> #include<string.h> #include& ...
- Open Judge 3339 List
3339:List 总时间限制: 4000ms 内存限制: 65536kB 描述 写一个程序完成以下命令:new id ——新建一个指定编号为id的序列(id<10000)add id nu ...
- Codeforces Round #296 (Div. 2) D. Clique Problem [ 贪心 ]
传送门 D. Clique Problem time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- 收藏CSS经典技巧
一. CSS字体属性简写规则 一般用CSS设定字体属性是这样做的: font-weight: bold; font- style: italic; font-varient: small-caps; ...
- Java使用IText(VM模版)导出PDF
Java使用IText(VM模版)导出PDF: public String createPDF(ProjectManageBase projectManageBase) { Map map = new ...
- The Unique MST-POJ1679(次小生成树)
http://poj.org/problem?id=1679 次小生成树 #include<stdio.h> #include<string.h> #include<st ...