Android反编译apk并重新编译

本文讲述了使用apktool对Android应用进行反编译和再编译的过程,重点讲解了遇到无证书问题时的解决方案,涉及keystore和证书别名的创建及使用。
摘要由CSDN通过智能技术生成

准备工具

jdk1.8
apktool.bat
apktool_2.9.3.jar

反编译

提示:jdk解压之后可以不做环境变量配置

  1. 创建一个文件夹apk,把apktool.batapktool.jar放入apk文件夹中。
  2. 打开环境变量配置,在Path中加入刚才创建的apk路径
#这个是我的路径
D:\Work\android\apk

在这里插入图片描述

  1. 把要反编译的apk复制到apk文件夹
  2. 然后在apk文件夹运行cmd输入一下命令

app.apk是你要反编译的apk文件加后缀
后面那个app是反编译后生成的对应的文件夹名称

apktool d -f app.apk -o app

执行后下图
执行后如图
在这里插入图片描述
![在这里插入图片描述(https://img-blog.csdnimg.cn/direct/cd40b553bcbe436b9b861d42419d694f.png)

图上app文件夹是反编译后得到的文件,以上是反编译流程。

反编译后再次编译

app 是对应反编译后的资源文件夹名称
new_app.apk 是对应编译后的apk

apktool b app -o new_app.apk

回编译问题

反编译后再次编译会出现
在这里插入图片描述

adb: failed to install new_app.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed collecting certificates for /data/app/vmdl1200438068.tmp/base.apk: Failed to collect certificates from /data/app/vmdl1200438068.tmp/base.apk: Attempt to get length of null array]

INSTALL_PARSE_FAILED_NO_CERTIFICATES可以看出来,这个apk没有证书,这就需要重新配置证书

  1. 首先生成keystore注意:这里要keystore而不是jsk

appalias 是证书别名
app.keystore 是证书文件

  1. 需要在jdk的bin目录下执行,输入对应密码,按照提示完成后
keytool -genkey -alias appalias -keyalg RSA -keysize 2048 -validity 36500 -keystore app.keystore
  1. 然后在bin目录中会生成app.keystore
  2. 编译后的new_app.apk复制到bin目录下,然后执行以下命令

sign_app.apk 是配置证书后的apk,执行命令后会自己生成
new_app.apk 是要配置证书的apk
app.keystore 是上一步生成的证书
appalias 是证书别名

jarsigner -verbose -keystore app.keystore -signedjar sign_app.apk new_app.apk appalias

在这里插入图片描述

在这里插入图片描述

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值