之前一直没用过安卓系统,目前有以下 2 个疑问:
1.不同 app 安装后弹出的应用程序许可选项有的多有的少(例如通话,读联系人,使用 gps 等),那些没出现的是默认禁用的吗?
2.应用程序许可全不打勾的安卓 apk 默认有哪些权限?
1
yxzblue 2015-10-25 13:14:59 +08:00
没开发过安卓程序
1. 安装时,会有提示该 APP 需要获取的所有权限列表。安装完后,弹出的获取权限提示,只针对那一次。 2. 不知道 |
2
cabbage 2015-10-25 14:11:35 +08:00
1 、安装后弹出有多有少的是声明的特殊权限,有由你选择开启与否,如果安装包之前没有提出权限声明的话,系统是绝对不会分配对应权限的,而且应用在执行时会出错。
2 、所有应用默认可以读取手机串号、网卡物理地址等基本硬件信息,也有一定的存储空间读写权限。 |
3
ericyl 2015-10-25 17:25:16 +08:00
@cabbage 为什么我记得读手机 IEMI 需要 READ_PHONE_STATE 权限,网卡 Mac 地址需要 ACCESS_WIFI_STATE 权限,当然 android 权限考虑的就是在获取到外部存储权限后就可以直接获取照片,如果不赋予外部存储权限,基本上的 app 都会崩
|
5
ericyl 2015-10-25 17:48:26 +08:00
@cabbage 我没用过第三方的权限管理工具,我就说下 android 6.0 自带的权限管理: READ_PHONE_STATE 也就是电话权限可以关,外部存储权限也可以关, ACCESS_WIFI_STATE 是没法关的,大概或许应该(?)是 RW 的权限是可以关的, ACCESS 的权限是没法关的。反正 android 的权限是个大坑。现在很多应用判断手机唯一性的标示是通过获取 DeviceId 和网卡 Mac 地址来实现的,所以默认都会去拿 READ_PHONE_STATE 电话权限和 ACCESS_WIFI_STATE 权限,以及外部存储的读写权限。。。
|
6
honeycomb 2015-10-26 10:23:19 +08:00
不考虑第三方的或者隐藏的权限管理工具(*)的话,目前只有 Android 6.0 自带交互式的权限系统,这个系统形式上基本和 iOS 的一致。区别在于:
为 Android 6 设计的应用采用这一套做法,为旧版本的应用则(在应用 Android 6 的一些全局约束外)默认按照旧系统的做法放行所有权限,但用户可以随时吊销 protection level 为 dangerous 列表中的任意权限,以及 wirte_settings 和在其它应用上显示两个非 runtime-permission 。 禁掉 wirte_settings 后,应用将不能写入一个系统数据库,似乎还因此导致了别的限制。 很多应用喜欢把设备识别码写到这个数据库。 新权限系统的原型是 Android 4.3 就出现,但不向用户开放界面的 AppOps(*),在 Android 6 里, AppOps 依然存在,且是新权限系统的基础 @cabbage 6.0 以前的 Android 没有吊销权限的能力 @ericyl 至于本机的 WiFi 与 BT 的 mac 6.0 的处理是一律返回 20:00:00:00:00:00 现在还有一个洞,是通过 /proc 还能获得真实的本机 MAC 外部的 mac 需要获得定位权限系统才会提供 |
10
honeycomb 2015-10-26 15:09:21 +08:00 1
@Reficul
现在还是能唯一识别 6.0 第一个是 /proc 还能找到真实 MAC ,这部分要到 Android N 才会堵上 第二个是 Android ID/GSF ID/seiral(永久的)还能拿到,特别是 seiral 没有保护掉,所以还是能唯一追踪硬件 |