apktool 用法命令詳解

工具: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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章