Android 安全模型包括两个方面:部署和运行.
部署应用到设备必须具有一个数字证书.数字证书包括作者签名,公钥,密钥,公司信息,地址等.
你可以生成数字证书通过 keytool 或 认证中心(CA).
签名一个Android应用需要以下三个:
1.一个数字证书
2.一个.apk文件
3.一个apk签名工具(keytool)
部署一个Android应用包括两个步骤:
1.生成证书(keytool)
2.签名应用(jarsigner tool)
模拟器使用的证书是默认的,在实际设备中不可用.因此部署需自己给应用签名.
通过 keytool 生成一个自动签名的证书
1.创建一个发行目录,用于存放 keystore
比如: c:\android\release
2.打开命令行.运行如下命令
D:\WINDOWS\system32>
keytool -genkeypair -v -keystore c:\android\release\release.keystore
-alias androidbook -storepass 123456 -keypass 123456 -keyalg RSA
-validity 14000
引用
D:\WINDOWS\system32>keytool -genkey -v -keystore c:\android\release\helloworld.k
eystore -alias helloworld -storepass 123456 -keypass 123456 -keyalg RSA -validit
y 14000
您的名字与姓氏是什么?
[Unknown]: w26
您的组织单位名称是什么?
[Unknown]: cs
您的组织名称是什么?
[Unknown]: cs
您所在的城市或区域名称是什么?
[Unknown]: sz
您所在的州或省份名称是什么?
[Unknown]: gd
该单位的两字母国家代码是什么
[Unknown]: cn
CN=w26, OU=cs, O=cs, L=sz, ST=gd, C=cn 正确吗?
[否]: y
正在为以下对象生成 1,024 位 RSA 密钥对和自签名证书 (SHA1withRSA)(有效期为 14,00
0 天):
CN=w26, OU=cs, O=cs, L=sz, ST=gd, C=cn
[正在存储 c:\android\release\helloworld.keystore]
参数说明:
-genkey 生成公钥/密钥对
-v 生成详细信息
-keystore 密钥库
-alias 密钥库条目惟一别名
-storepass 密钥库密码
-keypass 公钥/密钥对密码
-keyalg 加密算法
-validity 有效期(天)
如果你要在google market 发布应用,证书最好大于25年.
使用 jarsigner tool 签名.apk 文件
1.使用eclipse adt 生成一个未签名的包.Export Unsigned Application Package.把 生成的 .apk 文件保存到 c:\android\release\*.apk
2.使用命令行,运行如下命令:
引用
D:\WINDOWS\system32>
jarsigner -keystore c:\android\release\helloworld.keystore
-storepass 123456
-keypass 123456 c:\android\release\calc.apk helloworld
D:\WINDOWS\system32>
如果你想更新应用,需要相同的签名.不同的签名,android认为是另外一个应用.
如果应用安装过期,应用仍会运行,android只在安装时验证证书,并分配第个应用一个惟一的UID.当应用过期时,应用不能再更新升级.
3.使用 zipalign 优化资源
略
运行应用具有一个UID,android根据uid管理进程间的数据访问.android使用权限管理各种资源.
声明与使用权限
如果应用要使用受保护的资源,需要请求相应的权限.用户可以在manifest 文件中配置相关权限,android安装时检查,并同意/禁止相关权限.
完整权限列表,请查看:
http://developer.android.com/reference/android/Manifest.permission.html
自定义权限
你可以为android 各种组件定义权限.
分享到:
相关推荐
一、Android安全模型 Android的安全模型基于Linux内核,并引入了权限管理、应用程序签名、数据加密、沙箱机制等关键组件。每个应用程序运行在一个独立的Linux用户ID下,限制了它们对系统资源的访问。应用程序签名...
一、Android安全模型基础 Android的安全模型基于Linux内核,采用了微内核架构,强调权限分离和最小权限原则。每个应用程序都在自己的沙箱环境中运行,拥有独立的用户ID(UID),限制了程序之间的相互影响。此外,...
其次,可能详细讨论了权限管理,这是Android安全模型的核心部分。开发者需要理解如何正确声明和使用权限,避免过度授权导致的数据泄露或其他安全风险。同时,书中可能会介绍如何通过动态权限请求来提高用户体验。 ...
Android App 的安全保护实践之路需要从多方面入手,包括 Android 平台安全现状、Android 安全模型、程序安全、数据安全和系统安全等。只有通过了解这些方面的安全问题和保护措施,才能更好地保护 Android App 的安全...
### 浅谈Android线程模型:深入理解与实践 #### 引言 随着智能手机的普及和技术的不断进步,Google的Android操作系统成为了移动设备领域的重要力量。Android不仅为用户提供了丰富的功能,也为开发者提供了广阔的...
首先,Android安全模型的基础是Linux内核,它提供了基于权限的访问控制(DAC)和强制访问控制(MAC)。DAC允许每个文件拥有者定义访问权限,而MAC如 SELinux 则为系统提供更严格的策略,限制了不同程序间的交互。 ...
首先,书中会讲解Android系统的基础架构和安全模型,包括Linux内核、Dalvik/ART虚拟机、权限管理、签名机制等。了解这些基础是理解Android安全问题的关键。作者会深入解析应用程序的生命周期、组件通信方式(如...
沙箱隔离机制则是Android安全模型的核心,它确保应用程序运行在独立的环境中,彼此之间不能直接访问对方的内存空间或数据。每个应用程序都运行在一个单独的Linux进程里,形成了所谓的“沙箱”。这种隔离使得一个应用...
在 Android 安全模型中,应用沙盒的概念起到了基础作用。每个应用在自己的沙盒里运行,而 SELinux 在 Android 4.3 及更高版本中加强了沙盒的边界。在早期版本中,应用通过独特的 Linux UID 来定义沙盒,但从 4.3 ...
权限机制是Android安全模型的核心组成部分,旨在保护用户的隐私和系统的稳定性。 【应用安全检测】由于Android应用可能存在恶意行为,如滥用权限、窃取用户数据或执行恶意操作,因此应用安全检测显得尤为重要。文中...
在Android系统中,`android.policy.jar`扮演着至关重要的角色,它是Android安全模型的核心组成部分。这个库包含了系统权限管理、设备策略以及安全相关的类和方法,主要用于控制应用程序的行为和访问权限。本文将深入...
权限管理是Android安全模型的重要组成部分,开发者需要明确声明应用对哪些系统功能有访问需求。 对于Android 5.0(Lollipop)及以上版本,Material Design设计语言成为主流,带来了统一的视觉风格和交互规范。...
9. Android安全模型:包括Android权限模型、数据加密和安全存储等方面的讨论。 10. 其他高级主题:涵盖了诸如使用Git进行版本控制、性能优化、国际化和本地化、单元测试与自动化测试等进阶话题。 本书还特别强调了...
《Android安全架构深究》这本书深入探讨了Android操作系统的核心安全机制,揭示了其设计原则、实现方式以及如何保障用户和应用程序的安全。Android作为全球最受欢迎的移动操作系统,其安全性至关重要,对于开发者、...
系统签名文件的管理是Android安全模型的核心部分。它们不仅保护用户免受恶意软件的侵害,还确保了系统的稳定性和一致性。对于开发者来说,理解和正确使用这些签名文件至关重要,尤其是在定制和维护Android系统镜像时...
七、Android安全模型 杨云君还介绍了Android的安全模型,包括权限管理系统、签名机制和沙箱环境,以及如何保护应用程序免受恶意攻击。 八、Android版本迭代与适配 随着Android版本的不断更新,新特性、新API的引入...