Android签名机制:生成keystore、签名、查看签名信息
2019独角兽企业重金招聘Python工程师标准>>>
Android独有的安全机制,除了权限机制外,另外一个就是签名机制了。签名机制主要用在以下两个主要场合起到其作用:升级App和权限检查。
升级App
用户在升级一款已经安装过的App时,如果程序的修改来自于同一来源,则允许升级安装,否则会提示签名不一致无法安装的提示。
权限检查
我曾在Android Permission权限机制的具体使用一文中提过,对于申请权限的 protection level 为 signature 或者 signatureOrSystem 的,会检查权限申请者和权限声明者的证书是否是一致的。
至于签名机制的原理及其他作用,此不详述,本文主要介绍,签名文件key的生成、用key去签名apk文件及查看签名的方法。
生成keystore
创建keystore,需要用到keytool.exe (位于jdk_xx\jre\bin目录下),具体做法如下:
|
对apk进行签名
使用产生的keystore对apk签名,使用到的是jarsigner.exe ,该工具位于jdk_xx\bin目录下,命令如下:
|
另外需要注意的是,如果你的jdk版本在1.7以上,你在对apk签名时,需要加上这个参数:
|
否则同样会出现:Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]的错误。
查看签名信息
1、查看keystore的信息
|
2、查看keystore的公钥证书信息
|
(注:获取Base64格式的公钥证书,RFC 1421)
3、查看apk的签名信息
|
转载于:https://my.oschina.net/u/818848/blog/483540
Android签名机制:生成keystore、签名、查看签名信息相关推荐
- Android 打包签名 从生成keystore到完成签名
首先,我们需要一个keystore,当然已经有了的话就不用这一步了: cmd下: 进入到jdk的bin目录,这样的话,android.keystore文件就会生成在这个目录下,签名的时候我们需要这个文 ...
- Android签名机制及PMS中校验签名
一.签名机制 众所周知,在Android系统中,应用想要安装到设备中,必须要有签名才行,及时是debug的时候,开发工具也会对要运行的应用自动签名,那么我们先来了解一下这个签名究竟是什么. 首先And ...
- 生成keystore和apk签名
在Android项目开发中想要将项目导出为apk的时候需要选择一个数字证书,即keystore文件,用来对apk进行签名,是导出APP的一个钥匙,一般需要我们自己生成android.keystore文 ...
- 微信注册崩溃?appid签名无法注册or如何查看签名是否一致?如何注册appid?jks和keystore的区别?
跑通微信,这一篇就够了. 一.出现微信注册register(APP_ID)崩溃?或appid无法注册到微信? 解决办法: 1.首先用清理软件彻底清理一下微信缓存吧,可能是因为之前的签名文件已经注册到微 ...
- 安卓生成keystore和查看keystore
----------------重要通知-------------- Hello,本人的博客文章已更新至个人网站(www.jonexu.cn) 文章中有问题可以到网站联系博主,后续新的文章也将更新在个 ...
- 《Android studio 创建生成keystore SHA1值的申请 高德地图key值申请 android studio 打包生成apk》
开发背景:目前做车载项目,领导要求用高德地图.整理了一下,差不多就是下面的目录: 一.创建生成keystore: 二.SHA1值的申请: 三.高德地图key值申请: 四.android studio ...
- android jks sha1,获取Android SHA1 、生成jks密钥、签名Apk
获取应用包名. 打开Android 应用工程的 AndroidManifest.xml配置文件,package 属性所对应的内容为应用包名. 获取 Sha1 值. 目前(2016/06/06)为止,各 ...
- java 微信jssdk签名_JAVA生成微信JSSDK接口签名
签名生成规则如下: 参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信 JSSDK 文档), noncestr (随机字符串,由开发者随机生成),timestamp (由开发者生成的 ...
- 微信jssdk签名java_JAVA生成微信JSSDK接口签名
签名生成规则如下: 参与签名的字段包括有效的 jsapi_ticket(获取方式详见微信 JSSDK 文档), noncestr (随机字符串,由开发者随机生成),timestamp (由开发者生成的 ...
- 我的世界服务器精灵模型文件在哪,[娱乐|机制]PokemonInfo — GUI界面查看精灵信息 , 精灵变照片[1.12.2] - 服务端插件 - Minecraft(我的世界)中文论坛 -...
老板还报错 [23:05:03] [Server thread/INFO]: [PokemonInfo] Disabling PokemonInfo v1.1 [23:05:06] [Server t ...
最新文章
- 斯坦福大学机器学习第十课“应用机器学习的建议(Advice for applying machine learning)”
- Webservice入门教程_用CXF编写基于Spring的WebService
- OpenGL之控制渲染图形的移动
- Cloud for Customer UI里点了超链接后的跳转处理
- 思维导图一定要用计算机来完成吗,计算机绘制思维导图有什么优势
- CSS浮动属性Float到底什么怎么回事,下面详细解释一下
- MongoDB系列之——安装和启动
- QML工作笔记-Key Element的使用
- Java网络编程案例--CS模型的简单实现
- MiluGPS(迷路者GPS导航软件)
- 高通Android camera驱动框架
- Android Rect介绍
- Matlab在工业机器人中的运用,基于MATLAB的工业机器人建模与仿真.docx
- Nature重磅综述;关于机器学习应用单细胞组学+RNA-seq,你想知道的都在这
- 学生用计算机怎么恢复出厂设置,电脑怎么恢复出厂设置
- 【Novel AI】基于Koishi的QQ群配置AI绘图机器人方法
- java 过滤所有特殊字符
- chrome五十大实用插件集合!
- 菌群最新资讯热评 | 菌群与癌症免疫疗法,菌群与消毒剂
- vim使用自定义snippets
热门文章
- 安卓 camera 调用流程_音视频开发之旅(四)Camera视频采集
- java 二进制 归属权限_java 二进制 权限管理
- 硬盘测试软件di,磁盘检测(Folder Size Professional)
- Javascript ES6 Promise同步读取文件(使用async、await)
- 服务器上把计算机放桌面,远程服务器这么显示在电脑桌面
- python中logging模块详解_python logging日志模块详解
- vscode svn使用_使用Typescript封装Vue组件
- windows10 1903中vmware无法运行解决方法和15.5安装
- 禁止ultraiso开机自动加载镜像
- 不只有BERT!盘点2018年NLP令人激动的10大想法