当前位置: 首页 > 工具软件 > Apktool > 使用案例 >

Apktool命令使用总结

水恩
2023-12-01
  • apktool 是一个功能非常强大的工具,一般我们可以用它来对apk包进行解析,再修改一些资源文件或者加入自己的代码后再重新构建新的apk。部分游戏的渠道发行方都会使用apktool来重新二次打包签名再发布游戏,这里我总结记录其经常使用的部分。
  • 要使用apktool首先需要去其官网下载apktool的工具包,下面贴上官网地址:

Apktool - A tool for reverse engineering 3rd party, closed, binary Android apps.

  • apktool的使用文档地址:

Apktool - Documentation

  • 我们将下载好的jar文件放置一个目录里面,然后执行cmd命令,使用apktool -help 命令可以看到相关的命令参数说明,执行命令之前需要配置好java环境变量

G:\workspace\apktool2.6.1>java -jar apktool_2.6.1.jar -help
Unrecognized option: -help
Apktool v2.6.1 - a tool for reengineering Android apk files
with smali v2.5.2 and baksmali v2.5.2
Copyright 2010 Ryszard Wi?niewski <brut.alll@gmail.com>
Copyright 2010 Connor Tumbleson <connor.tumbleson@gmail.com>

usage: apktool
 -advance,--advanced   prints advance information.
 -version,--version    prints the version then exits
usage: apktool if|install-framework [options] <framework.apk>
 -p,--frame-path <dir>   Stores framework files into <dir>.
 -t,--tag <tag>          Tag frameworks using <tag>.
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>.
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>.

For additional info, see: https://ibotpeaches.github.io/Apktool/
For smali/baksmali info, see: https://github.com/JesusFreke/smali

  • 如果我们apk包的assets文件下面包含有dex文件的话,在执行解析命令的时候需要加上--only-main-classes 参数,否则会解析失败的,如果你使用了MSA(移动安全联盟统一SDK)来获取oaid,应该会遇到这个问题,因为里面肯含有assets/A3AEECD8.dex、assets/39285EFA.dex文件
  • 如果我们想加速解析和重新构建的速度也可以加上-r或者--no-res ,这样就不会解析资源文件resources.arsc了,加上 -s或者--no-src这样就不会解析classes.dex,classes2.dex等代码文件了
 类似资料: