关于安卓应的用程序权限?

2015-10-25 13:10:18 +08:00
 FunyKis

之前一直没用过安卓系统,目前有以下 2 个疑问:
1.不同 app 安装后弹出的应用程序许可选项有的多有的少(例如通话,读联系人,使用 gps 等),那些没出现的是默认禁用的吗?
2.应用程序许可全不打勾的安卓 apk 默认有哪些权限?

10551 次点击
所在节点    Android
13 条回复
yxzblue
2015-10-25 13:14:59 +08:00
没开发过安卓程序
1. 安装时,会有提示该 APP 需要获取的所有权限列表。安装完后,弹出的获取权限提示,只针对那一次。
2. 不知道
cabbage
2015-10-25 14:11:35 +08:00
1 、安装后弹出有多有少的是声明的特殊权限,有由你选择开启与否,如果安装包之前没有提出权限声明的话,系统是绝对不会分配对应权限的,而且应用在执行时会出错。
2 、所有应用默认可以读取手机串号、网卡物理地址等基本硬件信息,也有一定的存储空间读写权限。
ericyl
2015-10-25 17:25:16 +08:00
@cabbage 为什么我记得读手机 IEMI 需要 READ_PHONE_STATE 权限,网卡 Mac 地址需要 ACCESS_WIFI_STATE 权限,当然 android 权限考虑的就是在获取到外部存储权限后就可以直接获取照片,如果不赋予外部存储权限,基本上的 app 都会崩
cabbage
2015-10-25 17:33:14 +08:00
@ericyl 但是这些权限用户并不能关闭?
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 权限,以及外部存储的读写权限。。。
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 需要获得定位权限系统才会提供
ericyl
2015-10-26 10:31:41 +08:00
@honeycomb soga
ericyl
2015-10-26 10:38:29 +08:00
@honeycomb 刚试了一下确实返回 20:00:00:00:00:00
Reficul
2015-10-26 13:09:02 +08:00
@ericyl

怪不得刷了 6.0 之后用手机订外卖一直都告诉我今日两单优惠已经使用。。。。
honeycomb
2015-10-26 15:09:21 +08:00
@Reficul
现在还是能唯一识别 6.0

第一个是 /proc 还能找到真实 MAC ,这部分要到 Android N 才会堵上
第二个是 Android ID/GSF ID/seiral(永久的)还能拿到,特别是 seiral 没有保护掉,所以还是能唯一追踪硬件
cabbage
2015-10-26 21:38:07 +08:00
@honeycomb 原来如此,但是统一返回 20......这样真的好吗哈哈哈😅
honeycomb
2015-10-26 23:11:58 +08:00
@cabbage

iOS 在 7 还是 8 就这么做了
而且它更绝,不考虑这次有米非法使用了私有 API ,在 iOS 上第三方 app 根本找不到一个可以永久标识 iOS 设备的串号,只要重置设备,它就认不出了

初次以外, iOS9 不允许第三方 app 检索设备上还有哪些别的应用,甚至苹果还因此对分享 API 做了限制
haato
2017-02-10 17:28:54 +08:00
@honeycomb 请教下 android6.0 以后,读写存储卡的权限包含读写 sdcard/DCIM 的权限吗?包含的话岂不是一给存储授权,就能获取用户照片信息了?貌似很多应用都要存储权限啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/230897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX