Android Permissions

随着时间的推移,Android已经支持各种各样的存储设备类型和特性。

所有版本的Android都支持传统存储设备,包括便携式(portable)和模拟(emulated)存储两种。便携式存储可以由物理介质提供,如SD卡或USB,用于临时数据传输/文件存储。物理媒体可能在较长时间内与设备保持联系,但不与设备固定在一起,可能被随时移除。自Android 1.0 以来,SD卡就已经成为便携式存储了;Android 6.0 增加了USB支持。模拟(emulated)存储是通过在模拟层暴露一部分内部存储而提供的,并且自Android 3.0以来就已经可用了。

Starting in Android 6.0, Android supports adoptable storage, which is provided by physical media, like an SD card or USB, that is encrypted and formatted to behave like internal storage. Adoptable storage can store all types of application data.
Android 6.0开始,Android支持 adoptable storage,这是通过物理介质提供,如SD卡或USB,并且是可以加密和格式化的,像内部存储一样。Adoptable storage 可以存储所有类型的应用数据。

Permissions

Android 1.0开始写入就需要 WRITE_EXTERNAL_STORAGE permission的权限;Android 4.1开始读取需要READ_EXTERNAL_STORAGE permission的权限。

但是Android 4.4开始,包名 com.example.foo 的app 可以 无条件访问 Android外部存储上 /data/com.example.foo/ 目录下的数据.

Reason:the owner, group and modes of files on external storage devices are now synthesized based on directory structure. This enables apps to manage their package-specific directories on external storage without requiring they hold the broad WRITE_EXTERNAL_STORAGE permission. These synthesized permissions are accomplished by wrapping raw storage devices in a FUSE daemon.

Runtime permissions

Android 6.0(Android M)开始,用户对app权限的管理都会在app运行时(runtime)进行,而不是在app安装时。

M之前: app安装时,系统会提示该应用所包含的所有权限。用户如果拒绝某项权限,只能选择不安装。

M开始:app安装时不会再有权限的声明,但是需要在app运行时动态的给用户提示进行申请权限。

系统权限类别

系统权限被分为几个类别:Normal, Dangerous, Signature, SigatureOrSystem

Normal Permission指的是那些 app获取它所在的sandbox(每个进程都有独立的一个沙箱)以外的数据和资源所对应的权限,这些权限一般不会对用户的隐私信息造成风险. 比如,设置时区的权限(SET_TIME_ZONE)。

对于此类权限,app申请后系统会自动赋予。

Dangerous Permission指的是那些可能对用户的隐私信息造成风险,或者可能影响用户数据的行为权限。比如读取用户的联系人。对于Dangerous Permission,app必须显示的获取用户的允许才可以正常使用。Runtime Permission机制针对的即是此类dangerous permission.

Signature permission:权限请求者只有使用和[权限声明者]相同的证书来签名的情况下,才可以使用的权限。如果证书匹配,系统会自动赋予这些权限,不需要通知或请求用户。

SignatureOrSystem: 该类权限除了上述的 Signature Permission以外,还包括那些只赋予Android System Image内的应用的权限。Android并不建议app使用这类,因为Signature Permission已经能满足大部分的需求,不管这些app是否是build在System Image里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安德路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值