手机APK加固后二次打包教程

#手机APK加固后二次打包教程

说一下背景,在以前apk被反编译是家常便饭,但是现在我们再去反编译会发现很难,那是因为现在的防破解的技术越来越好了。比如说有比较原始的代码混淆,进一步的自我校验、dex变形等等。今天要讲的就是apk经过加固(具体怎么操作不清楚,比较高端),把我们的签名给破坏了,需要用命令行二次打包。

刚开始我也不太明白,于是百度,Google,都描述的不是很详细,那么吸取了他们的精华,我就一步步带大家来进行二次签名。

1.准备JDK(JDK有版本区分,我们公司使用的keystore是用JDK6生成的,用JDK8重新签名的话打不开应用直接闪退,所以需要准备对应的JDK)
准备对应的JDK


2.进入命令行(cmd),并cd到jdk的bin目录下(没切到bin目录下会默认去JAVAHOME下找)
切换到对应的JDK目录下


3.进行打包
键入命令:jarsigner -verbose -keystore (keystore全路径或者相对路径) -signedjar (签名后的apk) (未签名前的apk) keystore别名
(举个栗子:为了方便我把签名apk命名为:a.apk,keystore改为:key.keystore)
回车
输入密码
过程没报错,打包完成

至此,大功告成。以上为绝对路径,想要使用相对路径的,自己去尝试,补充一下几个参数说明

jarsigner:签名命令
-verbose 在输出设备上显示虚拟机运行信息
-keystore :keystore文件的存储位置
my-release-key.keystore:当前目录下的签名证书
-signedjar:签名后跟第一个签名后的别名,第二个签名前的apk名字
lightpole:证书别名

2020.10.23更新,在新的项目上这个命令无法签名成功,固写出新的命令方式。

  1. 找到本地buildToolsVersion版本对应的apksigner的路径
    在这里插入图片描述

  2. 在当前文件夹下输入签名命令(路径都写全路径)
    apksigner sign --ks 你的签名文件 --ks-key-alias 你的签名文件的别名 --ks-key-alias 签名的别名 --ks-pass pass:签名密码 –in 需要签名的apk文件 –out 签名后的apk存放路径
    例子:

    D:\work\Android\AndroidStudio_sdk\build-tools\28.0.3>apksigner sign --ks D:\shmobile.jks --ks-key-alias shmobile --ks-pass pass:keypass --in D:\download\in.apk --out D:\download\out.apk

命令行敲完之后,如果没有报错,就可以去输出目录找签名apk了。

###Thank you!!第一次用MD写文章,感觉都不会用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值