Android SDK之系统权限
来源:互联网 发布:淘宝食品类目有哪些 编辑:程序博客网 时间:2024/04/30 02:28
android系统的安全设计出发点是任何应用不能对其他应用,系统和用户数据造成威胁或破坏。
应用以互不相同的Linux UID运行在独立的进程里面,若应用需要读写其他应用,系统或者用户的数据就需要申请permissions。
系统以一定的形式将应用的permissions申请呈现给用户,用户决定是否授权。
1)应用签名
每个apk都需要用开发者持有私有密钥的证书签名。
签名是为了系统能够区别不同的开发者,以及在apk申请权限的时候系统能够预判其潜在风险。
2)UID与文件
在应用安装的时候系统会给应用(package)分配一个唯一的UID。同样的应用安装在不同的设备上其UID不同。UID保持不变直到应用被卸载。
Android系统允许最多两个应用通过在AndroidManifests.xml文件中声明sharedUserId来共享UID和Linux进程。
应用产生的数据只能本应用访问,若需要公开应用产生的数据,可在创建文件的时候添加 MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE标签。
3)普通权限与危险权限
Android系统将权限分为多种,主要为普通和危险两种。
普通权限是指不对用户数据和其他应用造成影响的权限。申请后系统自动授予。
危险权限是指对用户数据和其他应用造成影响的权限,申请后系统会以对话框的形式展现给用户,最终由用户决定是否授权。
4)自定义权限
5)组件权限
android四大组件都可以在AndroidManifests.xml各自tag里面申明自己的权限。
activity和server申明权限后,调用者必要具有相应的权限,否则系统会抛出 SecurityException。
BroadcastReceiver申明权限后,只能接收到具有相应权限的组件发生的广播,不会造成异常。
ContentProvider具有 android:readPermission和android:writePermission两种权限,相互之间互不干扰。
ContentResolver.query()需要readPermission,ContentResolver.insert(), ContentResolver.update(), ContentResolver.delete()等操作需要writePermission。
https://developer.android.com/guide/topics/security/permissions.html#defining
应用以互不相同的Linux UID运行在独立的进程里面,若应用需要读写其他应用,系统或者用户的数据就需要申请permissions。
系统以一定的形式将应用的permissions申请呈现给用户,用户决定是否授权。
1)应用签名
每个apk都需要用开发者持有私有密钥的证书签名。
签名是为了系统能够区别不同的开发者,以及在apk申请权限的时候系统能够预判其潜在风险。
2)UID与文件
在应用安装的时候系统会给应用(package)分配一个唯一的UID。同样的应用安装在不同的设备上其UID不同。UID保持不变直到应用被卸载。
Android系统允许最多两个应用通过在AndroidManifests.xml文件中声明sharedUserId来共享UID和Linux进程。
应用产生的数据只能本应用访问,若需要公开应用产生的数据,可在创建文件的时候添加 MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE标签。
3)普通权限与危险权限
Android系统将权限分为多种,主要为普通和危险两种。
普通权限是指不对用户数据和其他应用造成影响的权限。申请后系统自动授予。
危险权限是指对用户数据和其他应用造成影响的权限,申请后系统会以对话框的形式展现给用户,最终由用户决定是否授权。
4)自定义权限
开发者可通过如下形式自定义权限:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.myapp" ><permission android:name="com.example.myapp.permission.DEADLY_ACTIVITY"android:label="@string/permlab_deadlyActivity"android:description="@string/permdesc_deadlyActivity"android:permissionGroup="android.permission-group.COST_MONEY"android:protectionLevel="dangerous" />android系统不允许不同的包定义名字相同的权限,除非他们的证书一样。
5)组件权限
android四大组件都可以在AndroidManifests.xml各自tag里面申明自己的权限。
activity和server申明权限后,调用者必要具有相应的权限,否则系统会抛出 SecurityException。
BroadcastReceiver申明权限后,只能接收到具有相应权限的组件发生的广播,不会造成异常。
ContentProvider具有 android:readPermission和android:writePermission两种权限,相互之间互不干扰。
ContentResolver.query()需要readPermission,ContentResolver.insert(), ContentResolver.update(), ContentResolver.delete()等操作需要writePermission。
https://developer.android.com/guide/topics/security/permissions.html#defining
0 0
- Android SDK之系统权限
- android sdk 编译出有root权限的系统
- Android学习之Android权限系统
- 《Android系统学习》第三章:Android SDK之ddms
- (android之系统) android 支付宝SDK集成
- Android SDK系统要求
- Android开发之深入理解Android 6.0、7.0系统权限
- Android开发之深入理解Android 7.0系统权限
- Android之——利用系统权限实现手机重启(获取系统权限签名详解)
- php之权限系统
- 获取Android系统权限
- android系统权限大全
- Android系统权限配置
- android系统权限大全
- Android系统常用权限
- android 系统权限汇总
- Android系统权限配置
- android系统权限大全
- Python正则表达式验证邮箱
- IBM HyperLedger fabric基础
- sql 2008获取表字段说明
- 欢迎使用CSDN-markdown编辑器
- clang: a C language family frontend for LLVM
- Android SDK之系统权限
- (Ryan的Koa系列博客)6.依赖库:on-finished(本文尚未完成)
- 纯css小猫
- Android ContentProvider+获取系统联系人小Demo
- <iframe>标签自适应高度和宽度
- 在jsp的c标签循环后台对象属性的情况下,使用js提取其中一个id属性使用ajax传到后台删除
- iOS开源项目周报0216
- Java 基础
- arcEngine 10.1与arcEngine 10.2中smoothline的区别