Mobile testing基础之签名

简介: Mobile testing基础之签名

  Mobile testing基础之签名

  1. 什么是数字签名?

  数字签名就是为你的程序打上一种标记,来作为你自己的标识,当别人看到签名的时候会知道它是与你相关的

  2. 为什么要数字签名?

  最简单直接的回答: 系统要求的。

  Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!

  Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。

  这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。

  3. 数字证书的机制?

  Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解android的数字证书,需要先了解以下数字证书的概念和java的数字证书机制。

  4. 程序使用相同的数字证书的好处

  (1)有利于程序升级

  当新版程序和旧版程序的数字证书相同时,Android系统才会认为这两个程序是同一个程序的不同版本。如果新版程序和旧版程序的数字证书不相同,则Android系统认为他们是不同的程序,并产生冲突,会要求新程序更改包名。

  (2)有利于程序的模块化设计和开发。

  Android系统允许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。所以开发者可以将自己的程序分模块开发,而用户只需要在需要的时候下载适当的模块。

  (3)可以通过权限(permission)的方式在多个程序间共享数据和代码。

  Android提供了基于数字证书的权限赋予机制,应用程序可以和其他的程序共享概功能或者数据给那那些与自己拥有相同数字证书的程序。如果某个权限(permission)的protectionLevel是signature,则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。

  5. 在签名时,需要考虑数字证书的有效期:

  (1)数字证书的有效期要包含程序的预计生命周期,一旦数字证书失效,持有改数字证书的程序将不能正常升级。

  (2)如果多个程序使用同一个数字证书,则该数字证书的有效期要包含所有程序的预计生命周期。

  (3)Android Market强制要求所有应用程序数字证书的有效期要持续到2033年10月22日以后。

目录
相关文章
|
3月前
|
API
【Azure Developer】如何用Microsoft Graph API管理AAD Application里面的Permissions
【Azure Developer】如何用Microsoft Graph API管理AAD Application里面的Permissions
|
3月前
|
Python
【Azure Developer】Python代码获取的Token出现'Authentication_MissingOrMalformed'问题
【Azure Developer】Python代码获取的Token出现'Authentication_MissingOrMalformed'问题
|
IDE Java API
REST Assured API Automation Testing Ⅰ - Getting Started
REST Assured API Automation Testing Ⅰ - Getting Started
REST Assured API Automation Testing Ⅰ - Getting Started
|
程序员 iOS开发
iOS开发:真机调试提示XXX, but code signing identity Apple Development问题
最近从网上下载一个demo,然后想要运行真机,运行不成功,提示提示XXX is automatically signed, but code signing identity Apple Development的问题,然后通过排查报错原因找到了报错原因,那么本篇博文就来分享一下具体的解决原因。
233 0
iOS开发:真机调试提示XXX, but code signing identity Apple Development问题
|
iOS开发
iOS No "iOS Distribution" signing certificate matching team ID "xxxxxx" with a private key was fo...
iOS No "iOS Distribution" signing certificate matching team ID "xxxxxx" with a private key was fo...
1193 0
|
Web App开发 JavaScript Android开发
Mobile testing基础
Mobile testing基础
171 0
|
人工智能 测试技术 Python
书籍:ASTQB-BCS移动测试基础指南 Mobile Testing An ASTQB-BCS Foundation Guide - 2018.pdf
简介 移动测试是测试移动软件的功能,可用性和一致性的过程。 与标准软件测试类似,高效且有效的移动测试需要在软件测试人员通常需要的技能之上提供额外的技能。 有了这个必不可少的指南,符合ASTQB认证的移动测试人员课程大纲,您将获得开始成为熟练的移动测试人员所需的理解和技能。
|
API
how to design a good api and why it matters
http://www.open-open.com/doc/view/ceee1d75382f4bbc93c8a8a2a98b4e52   Characteristics of a Good API • Easy to learn • Easy to use, even without documen...
907 0