APK 签名 v1 v2 步骤

需要工具 **apksigner.jar jarsinger.exe keytool.exe zipalign.exe **

1.生成 keystore

keytool -genkey -v -keystore my.keystore -alias liuhan -keyalg RSA -keysize 2048 -sigalg SHA256withRSA -dname "cn=Test,ou=Test,c=CA" -validity 10000

这里特别注意下:

​ -alias liuhan (liuhan) 是别名 后面我们需要使用这个别名来生成 v1 v2的签名

提示要输入密钥口令 这里我们要记住自己的密钥口令 后面会用到

参数:-genkeypair 生成一条密钥对(由私钥和公钥组成)-keystore 密钥库名字及存储位置(默认当前目录)-alias 密钥对的别名(密钥库可以存在多个密钥对,用于区分不同密钥对)-validity 密钥对的有效期(单位:天)-keyalg 生成密钥对的算法(常用 RSA/DSA ,DSA 只用于签名,默认采用DSA

生成结果图:

2.查看密钥库

keytool -list -v -keystore my.keystore

3.将未签名的apk进行四字节对齐操作

zipalign -v -f 4 D:\python_work\Apksign_cool\project.apk D:\python_work\Apksign_cool\zlign.apk

zipalign.exe -v -p 4 input.apk output.apkzip对齐,因为APK包的本质是一个zip压缩文档,经过边界对齐方式优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗 ,通过空间换时间的方式提高执行效率(zipalign后的apk包体积增大了100KB左右)。zipalign命令选项不多:
-f : 输出文件覆盖源文件
-v : 详细的输出log
-p : outfile.zip should use the same page alignment for all shared object files within infile.zip
-c : 检查当前APK是否已经执行过Align优化。另外上面的数字4是代表按照4字节(32位)边界对齐。

4.生成带v1 v2签名的apk

这里使用4步骤生成的zlign.apk 进行输入

java -jar ./apksigner.jar sign --ks my.keystore --ks-key-alias liuhan D:\python_work\Apksign_cool\out_zlign_v1_v2.apk   D:\python_work\Apksign_cool\zlign.apk

–ks my.keystore (my.keystore) 是证书的名字和路径

–ks-key-alias liuhan (liuhan ) 是my.keystore 的别名

D:\python_work\Apksign_cool\out_zlign_v1_v2.apk 这个参数是输出

D:\python_work\Apksign_cool\zlign.apk 这个参数是输入

java -jar apksigner.jar sign --ks xxx.jks --ks-key-alias xxx --ks-pass pass:xxxx --key-pass pass:xxxx --out output.apk moa.apkjava -jar apksigner.jar sign            //执行签名操作
--ks 你的jks路径                        //jks签名证书路径
--ks-key-alias 你的alias                  //生成jks时指定的alias
--ks-pass pass:你的密码                 //KeyStore密码
--key-pass pass:你的密码                //签署者的密码,即生成jks时指定alias对应的密码
--out output.apk                        //输出路径
input.apk                               //被签名的apk

5.验证签名apk的信息

使用命令如下:

keytool -printcert -jarfile D:\python_work\Apksign_cool\project_zlign.apkjava -jar ./apksigner.jar verify -v --print-certs D:\python_work\Apksign_cool\project_zlign.apk

6.使用 jarsigner.exe 生成只有v1的签名的apk

jarsigner.exe -verbose -keystore D:\python_work\Apksign_cool\my.keystore  -digestalg SHA1 -sigalg SHA1withRSA  -signedjar D:\python_work\Apksign_cool\project_out.apk D:\python_work\Apksign_cool\project_zlign.apk liuhan

7.错误提示

使用 jarsigner.exe 生成的v1 签名的apk 在android11手机上安装时提示:

adb: failed to install D:\python_work\Apksign_cool\project_out.apk: Failure [-124: Failed parse during installPackageLI: Targeting R+ (version 30 and above) requires the resources.arsc of installed APKs to be stored uncompressed and aligned on a 4-byte boundary]

compressed and aligned on a 4-byte boundary]

解决的话就是只能用  apksigner.jar 来签名![在这里插入图片描述](https://img-blog.csdnimg.cn/fefc69a10d9f4f2fafb328def7767e17.png#pic_center)

APK 签名 v1 v2 步骤相关推荐

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

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

  2. apk 签名v1与v2的区别

    在Android Studio中点击菜单 Build->Generate signed apk... 打包签名过程中, 可以看到两种签名选项 V1(Jar Signature)  V2(Full ...

  3. packer-ng-plugin 360渠道打包的心酸路以及签名V1、V2区别

    昨天APP终于要上线!!!项目批量打包使用的是 packer-ng-plugin 2.0.1,其他应用渠道打包完成之后专攻360APK.众所周知,360应用市场上传必须加固,加固完成后的APK需要重新 ...

  4. [APK签名] jarsigner APK V1签名

    jarsigner APK V1签名 APK打包签名 涉及到两个工具 jarsigner. apksigner,其对应的签名方案如下: v1 方案:基于 JAR 签名,采用的签名工具为 jarsign ...

  5. 一篇文章看明白 Android v1 v2 签名机制

    Android - v1 & v2 签名机制 相关系列 一篇文章看明白 Android 系统启动时都干了什么 一篇文章了解相见恨晚的 Android Binder 进程间通讯机制 一篇文章看明 ...

  6. [APK签名] apksigner APK V2签名

    apksigner V2签名 Android打渠道包时,经常先打一个母包,解压这个母包,完成渠道信息的注入后,需要对APK重新签名,这时就会用到jarsigner 或者 apksigner. 打包涉及 ...

  7. Android开发给apk签名

    前言 最近360加固助手签名突然收费了,加固完后要自己签名了.在此记录一下自己使用命令行签名步骤. 之后又更新了加固助手,点击自动签名提示如下: 之前没提示工具包手动签名,平时也就加固下应用,也没太注 ...

  8. Android打包知识体系(二)——APK签名介绍

    上一节介绍到多渠道打包的快速,他是如何如此迅速的完成打包的? 问题1:如何不修改签名的情况下,网APK中注入渠道信息??? 先不急接着往下看. 一.APK签名介绍: 1.APK 签名方案 Androi ...

  9. Android Apk 签名方案

    Android签名方案 Android签名方案 V1签名(jarsigner方式) V2签名(apksigner方式) 验证签名 V3 签名 优化 查看签名文件证书(MD5/SHA1/SHA256.. ...

最新文章

  1. 机房收费系统【VB版】——前期准备
  2. 做工程师不懂这七点,难怪你总是混不好
  3. MySQL SQL优化
  4. 前端学习(1678):前端系列实战课程之声明和创建游戏地图
  5. 如何使用IntelliJ IDEA搭建spark开发环境(上)
  6. 几个常用的CSS3样式代码以及不兼容的解决办法
  7. oracle odbc驱动 linux,linux下oracle的odbc驱动的安装与配置
  8. 32位单片机应用场合_全球首款基于 RISC-V 的 32 位通用单片机出现
  9. linux版Nacos安装、集群配置
  10. 设计模式必须遵守的六大原则
  11. Redis分布式缓存安装和使用
  12. 《鸟哥的Linux私房菜》读书笔记
  13. 手把手教你上手Proteus(下载安装+仿真51单片机程序)
  14. xcode ios 模拟器下载安装
  15. 熔断机制什么意思_指数熔断机制是什么意思
  16. [转载] 晓说——第1期:揭秘游戏规则奥斯卡走下“神坛“
  17. C语言学习(十)C语言中的小数
  18. 商城app被攻击了之后我们应该怎么处理?
  19. win7 怎么修改记事本的默认编码(测试有效果)
  20. java基础理论知识点

热门文章

  1. mysql根据身份证查询年龄
  2. 暂时不支持APK Signature Scheme v2,解决方案
  3. 简述黑盒测试与白盒测试
  4. Matlab求微分方程de符号解
  5. Linux用户分组管理的常用操作笔记
  6. c++ 11 锁_内江开车锁电话-老友网
  7. 梦想世界2014年5月29日服务器维护公告,《新梦想世界》8月6日更新:药包系统上线 服务器开放等级加快...
  8. PyQt 槽函数多次执行的问题
  9. 70. 爬楼梯 --力扣
  10. 遇到问题–python–pytest引用模块错误