apktool工具介绍

举报
Bobby9 发表于 2020/08/18 09:46:59 2020/08/18
【摘要】 本文介绍了如何使用apktool工具对已经生成的apk文件进行解包、替换资源文件、打包,以实现对apk文件的重定制。

环境要求:预先安装jdk、jre环境

1. apktool官网:http://ibotpeaches.github.io/Apktool/

下载apktool.bat & apktool.jar (for windows).

2. Windows将其拷贝至C://Windows (不是必须的, 能找到就行), linux拷贝至/usr/local/bin.

3. 解压apk包:

$ apktool d test.apk

解包后会在当前目录生成与apk同名文件夹.

4. 更新解压后的so文件.如果目录下有build文件夹的话,最好将其中的apk目录删掉.

5. 重新打包:

$ apktool b test

打包文件在apk文件夹中的dist目录下.

6. 生成签名证书(只需生成一次)

运行:keytool –genkey –alias android123.keystore –keyalg RSA –validity 20000 –keystore android123.keystore

/*解释:keytool工具是Java JDK自带的证书工具

-genkey参数表示:要生成一个证书(版权、身份识别的安全证书)

-alias参数表示:证书有别名,-alias mine.keystore表示证书别名为:mine

-keyalg RSA表示加密类型,RSA表示需要加密,以防止别人盗取

-validity 20000表示有效时间20000天

-keystore mine123.keystore表示要生成的证书名称为mine123

*/

输入完回车后屏幕显示:

输入keystore密码:[密码不回显](一般建议使用20位,最好记下来后面还要用)

再次输入新密码:[密码不回显]

您的名字与姓氏是什么?

[Unknown]:lili

您的组织单位名称是什么?

[Unknown]:snoopy

您的组织名称是什么?

[Unknown]:snoopy team

您所在的城市或区域名称是什么?

[Unknown]:beijing

您所在的州或省份名称是什么?

[Unknown]:beijing

该单位的两字母国家代码是什么

[Unknown]:CN

CN=lili, U=snoopy, O=snoopy team, L=beijing, ST=beijing, C=CN正确吗?

[否]:Y

输入< mine.keystore>的主密码

(如果和keystore密码相同,按回车):

7. 对重新打包后的apk文件进行签名:

apksigner(推荐,支持V2签名

apksigner sign --ks android123.keystore app.apk

apksigner可以在android sdk路径下找到,例如sdk\build-tools\29.0.3

参考链接:https://developer.android.com/studio/command-line/apksigner

jarsigner(只支持V1签名

jarsigner -verbose -keystore android123.keystore -signedjar new.apk old.apk android123.keystore

/*解释:jarsigner是Java的签名工具。

-verbose参数表示:显示出签名详细信息。

-keystore表示使用当前目录中的mine123.keystore签名证书文件。

-new.apk表示签名后生成的APK名称,old.apk表示未签名的APK Android软件, mine.keystore表示别名。

*/


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。