Android 空包签名(详细版)

news/2025/1/21 19:43:47/

在这里插入图片描述

之前是不是没听说过,脑瓜子嗡嗡的吧。为了更加的生动形象,我这里用我之前写的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.ppmy.cn/news/1565022.html

相关文章

拟合算法 (matlab工具箱)

拟合算法: 1线性最小二乘法拟合 使用matlab进行求解 拟合优度:R^2 拟合优度的matlab代码: 2,Matlab工具箱的教学 一些函数: 拟合算法: 插值算法中,得到的多项式f(x)要经过所有样本点。但是如果样本点太多&#…

Windows上同时配置GitHub和Gitee服务

Windows上同时配置GitHub和Gitee服务 摘要摘要 初始化添加用户名和邮箱 创建密钥ssh keys配置文件配置GitHub Gitee公钥GithubGitee 参考文章 摘要 摘要 本文详细介绍了在Windows系统上同时配置GitHub和Gitee服务的步骤。首先,通过命令行工具初始化Git配置&#x…

HTML中的`<!DOCTYPE html>`是什么意思?

诸神缄默不语-个人CSDN博文目录 在学习HTML时&#xff0c;我们经常会看到HTML文档的开头出现<!DOCTYPE html>&#xff0c;它是HTML文件的第一行。很多初学者可能会疑惑&#xff0c;为什么需要这行代码&#xff1f;它到底有什么作用呢&#xff1f;在这篇文章中&#xff0…

【前端】Node.js使用教程

目录 一、?Node.js开发环境和编译 1.1 安装Node.js 1.2 创建一个Node.js项目 1.3 编写Node.js程序 1.4 运行Node.js程序 1.5 使用Node.js模块 二、高级的Node.js编程概念和示例 2.1 异步编程 2.2 错误处理 2.3 网络请求 2.4 构建Web服务器 2.5 数据库交互 三、No…

Python网络自动化运维---SSH模块

目录 SSH建立过程 实验环境准备 一.SSH模块 1.1.Paramiko模块 1.1.1实验代码 1.1.2代码分段讲解 1.1.3代码运行过程 1.2Netmiko模块 Netmiko模块对比paramiko模块的改进&#xff1a; 1.2.1实验代码 1.2.2代码分段讲解 1.2.3代码运行过程 二.Paramiko模块和Ne…

mysql主从复制sql进程中断,报错Tablespace is missing for table ……

一 解决办法 关键执行1.2步&#xff0c;1.1/1.3结合实际环境操作。 1.1 如果从库只读开启了&#xff0c;要先关闭只读 show variables like %read_only%; set global super_read_onlyoff; set global read_onlyoff; 1.2 discart/import tablespace ALTER TABLE 表名 DISC…

网络安全:信息时代的守护者

随着互联网的快速发展&#xff0c;网络安全问题日益成为全球关注的焦点。无论是个人用户、企业组织还是政府部门&#xff0c;网络安全都已成为保障信息安全、保护隐私、确保社会秩序的基石。在这个数字化时代&#xff0c;如何应对复杂多变的网络安全威胁&#xff0c;成为了我们…

机器学习经典无监督算法——聚类K-Means算法

目录 算法原理 算法步骤 算法API 算法导入 API参数理解 算法实现 算法原理 Kmeans 算法是一种无监督的聚类算法&#xff0c;目的是将数据集中的样本划分到 K 个不同的簇中。 聚类&#xff1a;将数据集中相似的数据点归为一组或一个簇的过程。 数据集&#xff1a;一组相…