当前位置: 首页 > article >正文

Android 空包签名(详细版)

在这里插入图片描述

之前是不是没听说过,脑瓜子嗡嗡的吧。为了更加的生动形象,我这里用我之前写的demo来做这个演示。

在这里插入图片描述

就决定是你了,TranslateDemo,这是一个百度翻译Demo,看过这篇博客应该记忆犹新,下面先获取keystore文件。

二、获取keystore


其实在我们生成jks文件的时候,会有一个小提示,类似下面这样

**JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore xxx.keystore -destkeystore xxx.keystore -deststoretype pkcs12” 迁

移到行业标准格式 PKCS12。**

说你不符合行业标准什么的。但是通常我们都是不管它的,它就是让你去生成keystore文件。

那么在哪里生成这个keystore呢?首先打开你的项目,然后找到底部菜单的Terminal,点击之后就会进入到你自己项目当前的目录,如下图所示:

在这里插入图片描述

然后输入

keytool -genkey -alias jks别名 -keyalg RSA -validity 20000 -keystore keystore名称

比如我的别名是key0,我希望生成的keystore名称是translate.keystore,那么就可以这么写。

keytool -genkey -alias key0 -keyalg RSA -validity 20000 -keystore translate.keystore

然后输入秘钥的密码,然后验证密码,之后就是填写一些相关的资料。

在这里插入图片描述

如果你这些资料都忘记了,那么可以通过当前的jks和密码去查看。

比如你新开一个Terminal,在里面输入如下代码:

keytool -list -v -keystore 你的jks路径

比我的路径是D:\APK\translate.jks,那么就这么写

keytool -list -v -keystore D:\APK\translate.jks

然后回车,输入密码后再回车,你就能查看到创建时的信息了。

在这里插入图片描述

然后切换到Local。按照要求输入,因为我之前创建jks,只输入了自己的名字,其他都没有输入,没有的直接回车跳过,最后的问题,问你是否正确,输入Y。如下图所示:

在这里插入图片描述

然后回车。

在这里插入图片描述

由于我的别名密码和秘钥库秘钥是一致的,所以我直接回车,然后就会出现如下所示的提示,复制我标注的这句代码,以你自己的实际为主。

在这里插入图片描述

粘贴到下面去,然后回车,再输入密码,然后就成功创建了keystore文件。

在这里插入图片描述

这个文件在哪呢?如下图所示:

在这里插入图片描述

是不是挺麻烦的,就上面的这些内容我都不知道看了多少博客,踩了多少坑才写出来的。

现在keystore有了,下面就该来签名了,这个签名也有很多的坑。

三、空包签名


首先请安装JDK,如果没有安装的话,请看JDK 安装与环境变量配置(Win10详细版)完成安装。

之后进入到jdk安装目录的bin目录下,比如我的目的地址是:C:\Program Files\Java\jdk1.8.0_162\bin

在这里插入图片描述

然后用管理员身份打开命令提示符,

在这里插入图片描述

管理员打开是不一样的,如下图所示:

在这里插入图片描述

下面把未签名的vivo_unsign.apk、translate.jks和translate.keystore三个文件都复制到这个bin目录中。都是需要管理员权限的。如下图所示就复制进来了。

在这里插入图片描述

然后通过 cd C:\Program Files\Java\jdk1.8.0_162\bin,进入此文件目录下:

在这里插入图片描述

参考格式如下:

jarsigner -verbose -keystore 签名文件路径 -signedjar 签名后APK保存地址路径 未签名APK地址路径 签名文件的别名

那我当前举例子:我刚才把三个文件复制到bin中来,我希望签名后的apk也放在bin中,于是就如下面这样。

签名文件路径 :translate.keystore

签名后APK保存地址路径 :vivo_sign.apk

未签名APK地址路径:vivo_unsign.apk

签名文件的别名:key0

我们组合一下:

jarsigner -verbose -keystore translate.keystore -signedjar vivo_sign.apk vivo_unsign.apk key0

注意区分大小写、英文和空格。

在这里插入图片描述

大功告成!然后去查看一下这个签名后的APK

在这里插入图片描述

然后上传到平台上

在这里插入图片描述

这样就说明你的空包签名成功了。


总结


http://www.kler.cn/a/512293.html

相关文章:

  • AI刷题-病毒在封闭空间中的传播时间
  • 企业级流程架构设计思路-基于价值链的流程架构
  • 数据结构(二)栈/队列和二叉树/堆
  • centos虚拟机异常关闭,导致数据出现问题
  • 【2024年度个人生活与博客事业的融合与平衡总结】
  • 深入解析 C++17 中的 u8 字符字面量:提升 Unicode 处理能力
  • 大模型LLM-微调 RAG
  • Java-数据结构-二叉树习题(1)
  • AUTOSAR OS模块详解(三) Alarm
  • 我想通过python语言,学习数据结构和算法该如何入手?
  • 低代码运维与管理服务
  • 大数据学习(37)- Flink运行时架构
  • 嵌入式STM32创新教学:华清远见虚拟仿真实验平台与智能车项目师资培训
  • Zemax STAR 模块的入门设置
  • 《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》重印变更的彩插
  • Linux(Centos 7.6)命令详解:iconv
  • matlab中的griddata函数
  • element表格滚动错位问题,使用uniapp写的项目
  • 基于Web实时通信的无人机载物联网与严格时间敏感性:案例研究
  • 力扣刷题心得_JAVA