工具:apktool和jdk(个人使用jdk1.8.0_77)
下载地址:
apktool_2.2.2.jar
apktool.bat
Apktool官网
说明:apktool_2.2.2.jar需要JDK7+;

首先是配置apktool环境变量或者进入到apktool所在目录进行操作,记得将apktool_2.2.2.jar改名为apktool.jar

apktool命令:
1,apktool if framework-res.apk 加载框架
路径:C:\Users\Administrator\apktool\framework\1.apk
2,反编译命令:

一般:apktool d -f <file.apk> <dir>
2.2.2反编译命令: apktool d -f <file.apk> -o <dir>

<file.apk>代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\xxx.apk
<dir>代表了反编译后的文件的存储位置,比如C:\xxx

如果你给定的<dir>已经存在, -f 表示强行覆盖已经存在的文件夹
提示信息:Destination directory (e:\\custom_bailaohui_163) already exists. Use -f switch i
f you want to overwrite it.

完整命令:H:\apktool>apktool d -f E:\custom_bailaohui_163.apk -o e:custom_bailaohui_163
----------------------------------------------
apktool d 相关选项详解
usage: apktool d[ecode] [options] <file_apk>
 -f,--force              Force delete destination directory.
 -o,--output <dir>       The name of folder that gets written. Default is apk.out
 -p,--frame-path <dir>   Uses framework files located in <dir>.
 -r,--no-res             Do not decode resources.
 -s,--no-src             Do not decode sources.
 -t,--frame-tag <tag>    Uses framework files tagged by <tag>.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
反编译后的目录结构:

3,回编译命令,得到的apk是未签名的apk

回编译命令:
apktool b <dir>  apk文件默认在dir/dist目录下 
apktool b <dir> -o <file.apk>  自己指定apk位置

比如:
H:\apktool>apktool b e:\custom_bailaohui_163
H:\apktool>apktool b e:\custom_bailaohui_163 -o e:\test\163.apk

apktool b 相关选项详解
usage: apktool b[uild] [options] <app_path>
 -f,--force-all          Skip changes detection and build all files.
 -o,--output <dir>       The name of apk that gets written. Default is dist/name
.apk
 -p,--frame-path <dir>   Uses framework files located in <dir>.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
回编译目录结构:

签名:通过java的jarsigner命令

H:\apktool>jarsigner -verbose -keystore d:xxx.keystore -storepass xxx -digestalg SHA1 -sigalg MD5withRSA -signedjar e:666_sign.apk e:666.apk alias_name

-verbose    输出签名时的详细信息
-keystore   密钥库位置
-storepass  签名文件密码
-digestalg  摘要算法的名称
-sigalg     签名算法的名称
-signedjar  签名后的apk路径
e:666.apk   要进行签名的apk路径
alias_name  签名文件的别名

-digestalg  -sigalg  
这两个命令在jdk1.6和jdk1.8可以不用带,
jdk1.7必须加上否则安装apk时安装失败

原因:JDK1.7默认签名算法改变,需要指定签名算法和密钥算法。

H:\apktool>jarsigner -help
用法: jarsigner [选项] jar-file 别名
       jarsigner -verify [选项] jar-file [别名...]

[-keystore <url>]           密钥库位置

[-storepass <口令>]         用于密钥库完整性的口令

[-storetype <类型>]         密钥库类型

[-keypass <口令>]           私有密钥的口令 (如果不同)

[-certchain <文件>]         替代证书链文件的名称

[-sigfile <文件>]           .SF/.DSA 文件的名称

[-signedjar <文件>]         已签名的 JAR 文件的名称

[-digestalg <算法>]        摘要算法的名称

[-sigalg <算法>]           签名算法的名称

[-verify]                   验证已签名的 JAR 文件

[-verbose[:suboptions]]     签名/验证时输出详细信息。
                            子选项可以是 all, grouped 或 summary

[-certs]                    输出详细信息和验证时显示证书

[-tsa <url>]                时间戳颁发机构的位置

[-tsacert <别名>]           时间戳颁发机构的公共密钥证书

[-tsapolicyid <oid>]        时间戳颁发机构的 TSAPolicyID

[-altsigner <类>]           替代的签名机制的类名

[-altsignerpath <路径列表>] 替代的签名机制的位置

[-internalsf]               在签名块内包含 .SF 文件

[-sectionsonly]             不计算整个清单的散列

[-protected]                密钥库具有受保护验证路径

[-providerName <名称>]      提供方名称

[-providerClass <类>        加密服务提供方的名称
  [-providerArg <参数>]]... 主类文件和构造器参数

[-strict]                   将警告视为错误
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
4,使用zipalign优化apk

命令:zipalign -v 4 E:\666_sign.apk e:\666_zipalign.apk

Usage: zipalign [-f] [-v] [-z] <align> infile.zip outfile.zip
       zipalign -c [-v] <align> infile.zip

<align>: alignment in bytes, e.g. '4' provides 32-bit alignment
  -c: check alignment only (does not modify file)
  -f: overwrite existing outfile.zip
  -v: verbose output
  -z: recompress using Zopfli

-c 检查是否已经执行过Align优化
-f 覆盖优化的apk
-v 详细信息输出
-z 使用Zopfli算法进行再压缩
————————————————
版权声明:本文为CSDN博主「huycheaven」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/huyuchaoheaven/article/details/72401427

apktool 用法命令详解相关推荐

  1. Linux虚拟机网络网卡配置nmcli用法命令详解

    RHLE 7 nmcli命令 1)nmcli connection show -> 查看所有网卡连接信息 2)nmcli connection delete ens32 -> 删除已有的网 ...

  2. 文本查找查找命令的grep 、egrep、fgrep用法的详解

    文本查找查找命令的grep .egrep.fgrep用法的详解 一.学习目标 了解并能熟悉运用grep.egrep.fgrep命令. 二.学习内容 1.grep.egrep.fgrep命令的意思和用法 ...

  3. linuxmove命令_move命令详解 dos命令 move的用法

    Linux mmove命令详解 Linux mmove命令怎么用 mmove为mtools工具命令,模拟MS-DOS的move命令,可在MS-DOS文件系统中移动现有的文件或目录,或是更改现有文件或目 ...

  4. linux管道命令详解,Linux系统中的管道命令的用法详解

    Linux系统中管道命令是linux系统的一个强大之处.下面由学习啦小编为大家整理了Linux系统中的管道命令的用法详解的相关知识,希望对大家有帮助! Linux系统中的管道命令的用法详解 管道命令操 ...

  5. top命令参数详解(linux top命令的用法详细详解)

    通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. top命令输出长这样: top命令参数详解(linux top命令的用法详细详解) 以下解析一下各个字段 ...

  6. linux命令行语法cd用法,每天一个Linux命令之cd命令详解

    Linux系统要学好其它命令则首先要学好cd命令的使用方法和技巧.下面由学习啦小编为大家整理了每天一个Linux命令之cd命令详解,希望对大家有帮助! 每天一个Linux命令之cd命令详解 cd命令用 ...

  7. linux vsftpd用法,Linux_LINUX系统下vsftpd 命令详解,FTP命令是Internet用户使用最频 - phpStudy...

    LINUX系统下vsftpd 命令详解 FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操 作系统下使用FTP,都会遇到大量的FTP内部命令. 熟悉并灵活应用FTP的内 ...

  8. linux的nice命令用法,nice命令详解

    nice命令详解 发布时间:2008-09-27 13:15:38来源:红联作者:jerry520 [命令]nice -- 调整程序运行的优先级 [格式]nice [OPTION] [command ...

  9. flock用法详解 linux_netstat命令详解

    它主要的用法和详解! (netstat -na 命令),本文主要是说Linux下的netstat工具,然后详细说明一下各种网络连接状态. netstat -nat |awk '{print $6}'| ...

最新文章

  1. 不改文件名的情况下上传突破
  2. 不可不知的软件架构模式
  3. 查找(三)——基于平衡二叉树的查找(对排序二叉树的改进)
  4. A-Frame.js 学习文档翻译(一)实体
  5. CefSharp 支持MP4
  6. python从入门到_Python学习路线从入门到上手,如何快速Python学习?
  7. spring---aop(3)---Spring AOP的拦截器链
  8. matlab libjli.so,error while loading shared libraries: libjli.so 问题解决
  9. 微信 8.0 来啦,炸裂!
  10. 根据配置文件的值创建不同对象
  11. (转)C#封装CTP
  12. 用户界面设计实验指导书
  13. 文件转换-----(类型,格式)
  14. 基于麒麟座继续串口--DMA可以顺手开启-它是ADD不影响
  15. 2018个人年度总结:我是如何从嵌入式开发到服务器开发对接天猫精灵、小爱智能音箱服务器!懵懂 | 奋斗 | 进阶 | 信心
  16. azkaban报错Error Chunking during uploading files to db
  17. matlab 积分函数曲线,Matlab之函数积分 | 学步园
  18. html5 多点触控 缩放,WebBrowser禁用触摸缩放
  19. 国外众测之密码找回漏洞
  20. 微软云 (Microsoft Cloud) 技术概述

热门文章

  1. Android 开发:(十四)NavigationBar篇-自定义顶部导航栏
  2. Android4.0的StatusBar和NavigationBar
  3. 青春版网盘:不限度,10GB 空间
  4. win8.1磁盘使用率100解决方法
  5. Android开发:微信应用签名如何获取
  6. 利用Python爬虫爬取指定天猫店铺全店商品信息
  7. 服务熔断和服务降级的区别
  8. Linux从入门到入狱-01
  9. 微信小程序是否支持手机定位经纬度坐标
  10. PTS,SLM,Filter三种降低PAPR方法的matlab仿真