android签名

Android P v3签名新特性

谁都会走 提交于 2020-01-29 07:20:38
新版v3签名在v2的基础上,仍然采用检查整个压缩包的校验方式。不同的是在签名部分增可以添加新的证书,即可以不用修改ApplicationID来完成证书的更新迭代。 本文引用自 https://xuanxuanblingbling.github.io/ctf/android/2018/12/30/signature/ 概述 签名机制主要有两种用途: 使用特殊的key签名可以获取到一些不同的权限 验证数据保证不被篡改,防止应用被恶意的第三方覆盖 这里我们主要讨论第二个用途,即验证数据是否是可信的。应用程序的作者使用自己的私钥签名APK文件,并将签名与公钥一起发布到APK中,这个过程称之为签名。当应用程序被安装时,用发布的公钥去解析签名,并与文件的hash进行比对,这个过程叫验签。 显然这里我们尝试修改被签名数据的任何一部分都会导致验签失败,但是我们并不能防止重新签名。于是就存在一个问题:如何相信一个应用是正版应用?AOSP原生中并没有这种校验机制,如果是第一次安装,则默认相信自签名的应用。 但是当我们更新应用时,android根据应用的ApplicationID(一般与包名相同)来判断是否是同一个应用,并且要验证原来的应用与更新应用的证书是否匹配。但是在v1v2的签名版本中一个应用只允许用一个证书来校验,这时如果软件开发者想要更新证书并且完成软件的更新,是没有办法的

android apk签名(为什么 如何做 验证)

穿精又带淫゛_ 提交于 2020-01-18 02:42:43
android apk签名(为什么 如何做 验证) 这篇文章其实就是根据自己的疑问然后结合多个文章结合成的 文章引用: http://liangxh2008.blog.163.com/blog/static/112411679201041321646855/ http://www.pgcw.com.cn/Newsdetail.asp?id=257565010 http://www.eoeandroid.com/thread-23010-1-1.html http://pepa.iteye.com/blog/250991 http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=36678 http://blog.csdn.net/wenhaiyan/archive/2010/04/23/5520964.aspx http://jojol-zhou.iteye.com/blog/719428 一、为什么要签名: 1、发送者的身份认证,由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,以此保证签名不同的包不被替换 2、保证信息传输的完整性,签名对于包中的每个文件进行处理,以此确保包中内容不被替换,防止交易中的抵赖发生,Market对软件的要求 二、签名的说明: 1、所有的应用程序都必须有数字证书

android:sharedUserId=\"android.uid.system\" 使用的尴尬

橙三吉。 提交于 2020-01-16 20:27:37
在AndroidManife.xml 中添加android:sharedUser可以将不同的程序加入到同一个进程中,方便数据的共享。但必须要满足一个条件,即:共享UserId的程序必须使用相同的签名。对于多个自己开发的程序其好处不言而喻。比如:做皮肤的更新管理。但这不是我关注的重点。 如果这样去定义 android:sharedUserId="android.uid.system" 意味着将自己的程序加入到了系统的进程中,同时也将获得极大的权限。问题出在签名上,在开发过程中通过手动签名的方式用系统的签名文件为程序签名解决了签名的问题,也成功的将程序加入到了系统进程中。可这样一个程序又有什么意义呢?市场上的Android手机操作系统基本都是经过再定制的,签名也不是原有的签名。 android:sharedUserId="android.uid.system"的程序只能留在自己的虚拟机中吗? 来源: https://www.cnblogs.com/kakaluxi/archive/2012/04/01/kaka.html

Android Application Digital Signatures - Android 数字签名

泄露秘密 提交于 2020-01-16 07:08:41
Android 数字签名 同一个开发人员的多个程序尽可能使用同一个数字证书 ,这能够带来下面优点。 (1)有利于程序升级,当新版程序和旧版程序的数字证书同样时,Android系统才会觉得这两个程序是同一个程序的不同版本号。假设新版程序和旧版程序的数字证书不同样,则Android系统觉得他们是不同的程序,并产生冲突,会要求新程序更改包名。 (2)有利于程序的模块化设计和开发。Android系统同意拥有同一个数字签名的程序执行在一个进程中,Android程序会将他们视为同一个程序。所以开发人员能够将自己的程序分模块开发,而用户仅仅须要在须要的时候下载适当的模块。 (3)能够通过权限(permission)的方式在多个程序间共享数据和代码。Android提供了基于数字证书的权限赋予机制。应用程序能够和其它的程序共享概功能或者数据给那那些与自己拥有同样数字证书的程序。假设某个权限(permission)的protectionLevel是signature,则这个权限就仅仅能授予那些跟该权限所在的包拥有同一个数字证书的程序。 在签名时,须要考虑数字 证书的有效期 : (1)数字证书的有效期要包括程序的估计生命周期。一旦数字证书失效,持有改数字证书的程序将不能正常升级。 (2)假设多个程序使用同一个数字证书,则该数字证书的有效期要包括全部程序的估计生命周期。 (3)Android

Android APK的签名与重新签名

我的梦境 提交于 2020-01-16 07:08:11
原文地址: http://zhiwei.li/text/2010/12/android-apk%E7%9A%84%E7%AD%BE%E5%90%8D%E4%B8%8E%E9%87%8D%E6%96%B0%E7%AD%BE%E5%90%8D/ 今年年初的时候,介绍了 BlackBerry系统和签名 从BlackBerry应用程序中移除签名以及重新签名 使用BlackBerry代码签名工具 现在,我们介绍Android APK的签名与重签名的一些要点 APK实际上是一个ZIP压缩文件 解压缩后有个META-INF目录 META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。 安装apk包时,应用管理器会按照同样的算法对包里的文件做校验,如果校验结果与META-INF下的内容不一致,系统就不会安装这个apk。 每一个Android应用程序必须要有数字签名才能安装. 有两种方法:一种是使用调试密钥(可以在模拟器或者设备上做调试时使用), 还有一种就是私钥(为应用程序发布用).当组建Adriod应用程序时组建工具会自动为应用程序提供签名, 但是如果想发布应用程序的时候,必须使用自己的私钥. 编译时使用Release模式 需要手工添加签名.只有有签名的应用程序才可以安装. 签名工具;来自开源软件 Keytool 创建一个密钥证书存储文件和一个私钥,用来为.apk文件签名

Android签名总结

こ雲淡風輕ζ 提交于 2020-01-16 07:07:58
Android APK的数字签名的作用和意义 http://blog.csdn.net/gaomatrix/article/details/6568191 http://jingyan.baidu.com/article/c45ad29cf8e66b051653e26b.html http://blog.sina.com.cn/s/blog_4a4f9fb50101db1f.html android-包签名 http://bbs.9ria.com/thread-221658-1-1.html [精]android程序自动化生成apk的过程 http://blog.sina.com.cn/s/blog_a46817ff0102uylb.html Android签名总结 http://www.cnblogs.com/wanqieddy/p/3556060.html 解决ICS40上设置APN无权限问题 http://blog.sina.com.cn/s/blog_5da93c8f0101cbp7.html apk 重签名 http://blog.csdn.net/mldxs/article/details/12906787 http://jingyan.baidu.com/article/bad08e1ee438e109c851213d.html jarsigner -verbose

Android 生成签名及APK 文件

守給你的承諾、 提交于 2020-01-07 00:55:09
Overview Android apk 我相信每个Android开发者都知道他是干啥的: APK(全称:Android application package,Android应用程序包)是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。 了解了Android APK 的概念接着就让我们看一下如何去生成我们的APK文件以及我们的文件签名吧。 环境配置 Windows系统 Android Studio 3.5.3 创建签名文件 如果你之前有创建好签名文件,那么你可以直接看下一步。 如何创建 在我们的菜单栏中选择我们的Build. 选择我们的Generate Signed Bundle/APK... 选择我们的APK项目 我们先创建我们的.JKS 文件,点击Create New 在我们的界面中填写相关的信息。-证书中你必须填写一个,不然会出错。 完成以上步骤点击OK 这样我们的.JKS文件就创建好了。 生成APK 在我们成功创建了我们的签名文件后,我们只需要生成我们的APK 就可以了。 选择我们的Key store . 然后点击Next 在这里你可以选择debug模式的apk和release模式的apk 在这里我生成了V1的签名 最后点击我们的Finish就可以完成啦 查看我们的签名证书 打开Android Studio底部的Terminal

最简单的方法通过命令制作安卓签名文件证书并获取其 md5,可不安装软件

淺唱寂寞╮ 提交于 2019-12-30 23:38:47
1 前言 签名文件,也叫签名证书(一般用 .jks 后缀),主要是用来证明这个 app 是你开发的,别人没你的签名证书就无法冒充你。所以很多第三方服务提供商需要你提供签名证书的 md5,如百度人脸识别等。建议测试 apk 和正式 apk 都有同一个证书,否则容易给自己添麻烦。 2 制作方法 制作签名证书的方法有很多种,这里介绍常用的三种。 2.1 方法一:命令生成,推荐使用,不用安装软件。 在任意文件夹下执行此命令,执行后就在此文件夹下生成了签名证书。最后一步按 y 按回车,有些系统不用的忽略就好。开始的两次密码是签名证书密码,后面两次密码是别名密码,建议密码设置一致,如 uniapp 如果这 2 个密码不一致无法云打包。 -alias:别名,随便起,记录好以后会用到。 -validity:有效期,以天为单位,太小有问题,太大不可用,推荐和我的一样。 -keystore:生成签名文件的名字,推荐用.jks后缀。 D:\android>keytool -genkey -alias longyoung -keyalg RSA -validity 36500 -keystore longyoung.jks 2.2 方法二:通过 Android Studio 生成。 Android Studio 依次点击:Build -> Generate Signed Bundle / APK... -

安装应用提示安装失败或不能安装,报INSTALL_FAILED_DUPLICATE_PERMISSION错误

杀马特。学长 韩版系。学妹 提交于 2019-12-27 17:25:06
最近开发测试应用时,突然发现打包签名之后的apk安装时一直提示“应用安装失败”,这我就懵逼了,因为没有使用签名,直接连接进行设置调试时一直是没问题的,然后我就问度娘去了,结果如下,遇到同类问题的可以看看: Android 5.0上新增加的 permission 的判断,INSTALL_FAILED_DUPLICATE_PERMISSION ,这个简单讲就是如果两个apk声明了相同的permission,但是如果这两个apk的签名不一样的话,后安装的apk会fail。 我的是因为两个apk都申请了一个极光推送的权限: Package schoolcard attempting to redeclare permission schoolcard.permission.JPUSH_MESSAGE already owned by takephoto 以下是看过的文章: https://blog.csdn.net/willba/article/details/71189860 http://tieba.baidu.com/p/3237226241?see_lz=1&traceid= http://www.voidcn.com/article/p-ytnykvnl-bto.html https://www.cnblogs.com/YatHo/p/6767237.html 虽然很简单

Android应用构建:4:Android Studio 3.5.3:无签名方式的APK构建方式

丶灬走出姿态 提交于 2019-12-18 01:25:08
构建的APK文件根据用途分为调试类型(Debug)和发布类型(Release)两种,这篇文章介绍一下这两种类型无签名方式APK文件的生成方法。 APK文件种类 根据使用用途和是否有签名的区别,使用Android Studio可以构建如下APK文件 APK类别 用途 签名 缺省apk文件名称 无签名调试版APK 调试(Debug) 无 app-debug.apk 无签名发布版APK 发布(Release) 无 app-release-unsigned.apk 事前准备 这里使用Android Studio 3.5.3中创建的Demo应用进行使用说明。详细可参看: https://liumiaocn.blog.csdn.net/article/details/103573366 构建方式1: 使用Android Studio菜单选项 使用Android Studio提供的菜单选项可以轻松地生成无签名格式的apk文件,无签名调试版本APK文件生成可以通过如下操作进行:选择Build菜单,点击Build Bundle(s)/APK(s)子菜单,点击Build APK(s)菜单选项即可开始构建 详细使用可参看: * 构建方式2: 使用内置的gradlew进行构建 清除构建结果 执行命令:./gradlew clean liumiaocn:Demo liumiao$ pwd /Users