安卓apk文件使用命令行进行V1和V2签名

  • 前言
  • 安装JDK、安卓SDK
  • V1签名
  • V2签名
  • 签名验证
  • 批处理自动签名
    • 批处理文件编写
    • 批处理签名使用
  • 尾巴

前言

现在安卓APP要上传应用市场或者基于安全性考虑需要进行加固,而加固完成之后需要重新进行签名。在AS中我们能使用AS自带的打包功能进行签名,而单独的apk文件可以使用基于JDK和SDK的命令进行手动签名,下面我们就来看下怎么实现吧。

安装JDK、安卓SDK

这步是必须的,因为V1签名是基于JDK,V2签名是基于安卓SDK。

V1签名

V1签名是基于JDK,所以我们需要在命令行(win+R,然后输入cmd回车)进入安装JDK的bin目录,如下图:

接下来就是使用命令进行签名,命令如下:

jarsigner -verbose -keystore [jks路径] -signedjar [V1签名完后apk文件输出路径] [需要签名的apk路径] [签名文件别名]示例:
jarsigner -verbose -keystore D:\cer\Android\sign.jks -signedjar D:\Android\sign_V1.apk D:\Android\jiagu.apk test

如果各项配置没有问题的话,执行完命令后就可以正确生成V1签名的apk文件了。

V2签名

V2签名是基于安卓SDK,同样我们需要在命令行(win+R,然后输入cmd回车)进入SDK的build-tools目录,然后随意选择一个大于27的版本(这里最好选择高点的版本),然后进入lib目录,如下图:

接下来就是使用命令进行签名,命令如下:

java -jar apksigner.jar sign --ks [jks路径] --ks-key-alias [签名文件别名] --ks-pass pass:[证书密码] --key-pass pass:[别名密码] --out [V2签名完后apk文件输出路径] [需要V2签名的apk路径]示例:
java -jar apksigner.jar sign --ks D:\cer\Android\sign.jks --ks-key-alias test --ks-pass pass:123456 --key-pass pass:123456 --out D:\Android\sign_V2.apk D:\Android\sign_V1.apk

到这里V2签名也已经完成了。

签名验证

完成V2签名后使用命令进行签名验证(这里和V2签名一样,也要命令行进入到安卓SDK相关目录,参考上面步骤),命令如下:

java -jar apksigner.jar verify -v [签名文件的路径]示例:
java -jar apksigner.jar verify -v D:\Android\sign_V2.apk

如果正确的完成了V1和V2签名,则显示如下:

批处理自动签名

既然是用用命令行进行签名,那我们只要配置好了相关文件的路径,那就可以利用windows的批处理文件进行自动签名。

批处理文件编写

以V1签名为例,我们先要定位到JDK所在的bin目录,然后执行V1签名的命令,命令中配置好你的证书,需要签名的文件以及签完名的文件路径。代码如下:

cd /d D:\setup\JDK\Java\jdk1.8.0_171\bin && jarsigner -verbose -keystore D:cer\Android\sign.jks -signedjar D:\Android\sign_V1.apk D:\Android\jiagu.apk test
pause

新建文本,然后复制代码到文本文件,将后缀改为.bat,双击bat文件就可以进行V1自动签名了。

V2签名批处理跟上面类似,就不再赘述了,直接贴出代码:

cd /d D:\androidsdk\android-sdk-windows\build-tools\29.0.2\lib && java -jar apksigner.jar sign --ks D:\cer\Android\sign.jks --ks-key-alias test --ks-pass pass:123456 --key-pass pass:123456 --out D:\Android\sign_V2.apk D:\Android\sign_V1.apk
java -jar apksigner.jar verify -v D:\Android\sign_V2.apk
pause

这里将签名验证的命令也加入到了V2批处理文件中,如果不需要可以自行删除。

批处理签名使用

将各项参数配置好后,你就可以双击批处理文件进行自动签名,非常方便,如下图所示:

尾巴

今天的总结到这里就结束了,希望能对大家有帮助。如果喜欢我的文章,欢迎给我点赞:点赞,评论,关注,谢谢大家!

安卓apk文件使用命令行进行V1和V2签名相关推荐

  1. 虚拟机服务器如何关机命令行,安卓虚拟机如何关机命令行

    安卓虚拟机如何关机命令行 内容精选 换一换 华为鲲鹏云手机是运行在云端虚拟出带有原生安卓操作系统,具有虚拟手机功能的云服务器.免费云手机0元领取体验,可发放60台云手机实例!云手机业务数据提供云端数据 ...

  2. Idea 中出现:运行 Test 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。

    Idea 中出现:运行 Test 时出错.命令行过长. 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行. 在项目的 .idea 目录下的 workspace.xml 中的 <comp ...

  3. linux删除文件text命令行,使用 Linux 文件恢复工具

    使用 Linux 文件恢复工具 Linux 系统管理员守则中有这么一条:"慎用 rm -rf 命令,除非你知道此命令所带来的后果",不过 Linux 下删除文件并不是真实的删除磁盘 ...

  4. 银河麒麟文件夹命令行窗口最小化最大化关闭按钮消失

    银河麒麟服务器的文件夹命令行窗口最小化最大化关闭按钮消失且窗口只能重叠不能交替 执行命令 1.将窗口管理器置为marco gsettings set org.mate.session.required ...

  5. c语言文件组织与多文件gcc命令行编译

    c语言文件组织与gcc命令行编译 最近在学习操作系统,关系到一些c语言文件组织,利用基本的编译链接等等的知识,简单记录如下 文件组织 通过实践出真知,记录如下: 编写文件:hello.c hello. ...

  6. 【Android 教程系列第 28 篇】Android 分别使用 jarsigner 和 apksigner 对 APK 签名(v1、v2 签名)的详细教程

    这是[Android 教程系列第 28 篇],如果觉得有用的话,欢迎关注专栏. 为了增加 Apk 的安全性,防止反编译,我们会对开发的 Apk 做签名处理,如果要上架应用商店,部分还会要求 Apk 必 ...

  7. Android 签名方法---同时使用V1和V2签名

    什么是V1和V2签名 V1签名(jar signature): V1是Android7.0之前的签名方式,使用JDK中的jar signature方式对APK进行签名打包.签名完成后会生成一个META ...

  8. Android V1及V2签名原理简析

    Android为了保证系统及应用的安全性,在安装APK的时候需要校验包的完整性,同时,对于覆盖安装的场景还要校验新旧是否匹配,这两者都是通过Android签名机制来进行保证的,本文就简单看下Andro ...

  9. Android V1、V2签名包和快速集成美团多渠道打包

    今日科技快讯 三天的Google I/O大会2018终于落下帷幕,虽说现在的I/O大会重点已经变成了人工智能,但是Android P的推出还是让很多小伙伴激动不已的.这次Android P被喻为近几年 ...

最新文章

  1. 基于kryo序列化方案的memcached-session-manager多memcached...
  2. 芝麻HTTP:TensorFlow基础入门
  3. TSPL学习笔记(1)
  4. margin折叠问题
  5. 上海交大情感脑电数据集(SEED)简介
  6. 后台给前台服务器控件添加样式
  7. 指针应用-----链表二
  8. 团队愿景和团队章程的问答?
  9. c语言函数能改变指针吗,如何修改传递给C中函数的指针?
  10. cas java单点登录_java单点登录系统CAS的简单使用
  11. 一文理解设计模式--命令模式(Command)
  12. SAP License:SAP 清帐函数示例
  13. 00 后程序员征战国际,如何拿下计算机领域的奥林匹克?
  14. 【mobile】安卓图案解锁尝试次数过多导致 要解锁需要GOOGLE账户登录,解决方案...
  15. 在Qtopia中添加国际化支持
  16. alps interview
  17. 通过将OC编译成C++ 一探究竟(边学编写,帮忙点评)
  18. vue+vant 移动端国际区号组件封装
  19. Windows和Mac常用网络测试命令
  20. Grub 引导 WIM / ISO

热门文章

  1. CTraceRoute封装跟踪路由功能
  2. 肝了半个月,我整理出了这篇嵌入式开发学习学习路线+知识点梳理)
  3. 工厂方法模式--实现计算器
  4. 制作网页过程中,经常用到的代码
  5. IDE工具(16) eclipse创建动态web工程搭建CMS开发环境(自动服务器tomcat)
  6. win7下安装HD4000显卡驱动,提示不支持此操作系统
  7. fundamentals of computer graphics
  8. STK中的VVLH坐标系及方位角、高度角
  9. 基于dSPACE的车轮检测装置转速与转向控制(1)
  10. 大一寒假训练:暴力枚举