大概是Android权限设计捉鸡,参考 Changes to Device Identifiers in Android O
Instead, they can use a new Android O API, Build.getSerial(), which returns the actual serial number, as long as the caller holds the PHONE permission.
很捉鸡,有没有大佬说下为啥这么设计
1
zts1993 2018-09-08 23:51:29 +08:00
活捉法师
|
2
green15 2018-09-09 00:15:01 +08:00 via iPhone
网易的东西背后各种小动作很多的……
|
3
throns 2018-09-09 00:18:18 +08:00 via Android
活捉两位校友
|
4
remon 2018-09-09 00:33:58 +08:00 via Android
微信和淘宝你确定不给权限能用?
|
6
palxie 2018-09-09 09:28:47 +08:00 1
这个权限问题应该不大吧,通常是获取手机 iemi 等信息, 并不是读取通讯录权限, 但是没权限就不允许用网易就有点夸张了
|
7
ks3825 2018-09-09 09:28:52 +08:00 via Android
一般遇到这种,我选择弃用
|
8
loveour 2018-09-09 10:48:14 +08:00
越发觉得权限设计不合理,应该更细分。国内没有大流氓治这些厂商,其实按理说应用商店应该不允许这样的 App 上架的。不过说到底是隐私保护的法律不健全,光要求必须保护好隐私,却不规定不允许随便搜集隐私,那还能保护个蛋了。我是专门有一台手机用来随便安装这些应用。
|
10
DeweyReed 2018-09-09 11:06:23 +08:00
READ_PHONE_STATE:允许该应用访问设备的电话功能。改权限可让该应用确定本机号码和设备 ID、是否处于通话状态以及拨打的号码。
很多厂商主要用这个权限确定设备 ID。估计是防止虚拟机、机器人什么的。 |
11
azh7138m OP @DeweyReed 道理我都懂,可是网易阅读 支付宝 淘宝 微信在忽略这个权限后都是可以正常使用的
|
12
woyaojizhu8 2018-09-09 11:22:51 +08:00
无法使用,提示什么?网易其他 app 也这样吗?
|
13
kassadin 2018-09-09 11:25:51 +08:00
首先这个权限描述过大,一般都是用来获取唯一标识的,第三方 SDK Bug 统计、推送、IM 等通常都会要这个权限,所以从应用的代码角度来说,强行要权限容错处理上更简单。
当然不排除大厂需求旺盛,要到这种特殊权限后加上隐藏 API 等真的会拿你各种数据… |
15
tadtung 2018-09-09 13:32:22 +08:00 via Android
国内 app 很多都是这样。
前几天下了个小米的就是。一堆权限,定位,短信读取等。。。关键还是这些对于 app 都没什么用处,不给权限 app 打不开。。。干脆卸载了,用 ios 版本的。 |
16
XinLake 2018-09-09 13:41:04 +08:00 via Android
这个权限很多时候是为了读取一个和手机关联的唯一 ID 号,移动网络能够保证这个 ID 号全网唯一。这个权限的能力不大,如果 App 视图读取通讯录、拨打 /接听电话,App 还要请求其他的权限。
不过这个权限可以不用的。很早的时候一些 ID 生成算法就能够保证即使 10 年不停地生成也仅有亿分之一的概率重复。即使重复,App 和服务器通信时发现重复可以再次生成一个,没有任何计算负担。 |
17
remon 2018-09-09 13:43:36 +08:00 via Android
@azh7138m 抱歉没看到 appops,应该是多加了一步判断字段是不是为空,这个不 root 没办法了
|
18
fengleidongxi 2018-09-09 14:01:20 +08:00
@remon ROOT 用什么办法? XP 吗?
|
19
fengleidongxi 2018-09-09 14:06:07 +08:00
@azh7138m 再补充一眯,这个权限可以获取 imsi。如果不喜欢以后可以选择 web 或者收费应用
|
20
huclengyue 2018-09-09 14:36:03 +08:00 via Android
@XinLake 生成的 ID 不能保证在一台设备上的唯一性
|
21
huclengyue 2018-09-09 14:40:16 +08:00 via Android
可以用 AndroidID 代替 但是 AndroidID 手机重置后就会改变。但是万一出个什么邀请送积分的活动估计真有人不断重置来注册,所以大部分都用这个来做为唯一 ID 这样不管你有没有登陆,卸载或者重置系统你的数据都会在。。emmmm 作为开发者我不反对用这个 ID
|
22
XinLake 2018-09-09 14:48:58 +08:00 via Android
@huclengyue 这个 ID App 生成一次就可以保存,以后就用存储的 ID。虽然可以改,但是除了开发者,一般人不会动到那里,有时候还是很适合的。
|
23
remon 2018-09-09 15:30:39 +08:00 via Android
@fengleidongxi 是的啊,appops 类的我知道的都是返回空值
|
24
hhsuan 2018-09-09 15:34:20 +08:00 via Android
这锅要谷歌来背
|
25
terrytw 2018-09-09 15:37:46 +08:00
这个设计就是为了获取你的隐私
不爽不要用 |
26
irainsoft 2018-09-09 16:21:03 +08:00
感觉 Android 应该是需要专门出一个获取 IMEI 之类信息的权限 (滑稽
|
27
lostberryzz 2018-09-09 16:26:33 +08:00
抱歉,用国产 App 就别谈隐私了,做个顺民少点麻烦
|
28
fengleidongxi 2018-09-09 16:29:48 +08:00
@remon 把 OP 设置成 ignore,并不是全部都有效
|
29
fengleidongxi 2018-09-09 16:34:57 +08:00
@hhsuan 这个不能让他来背,play 的大小应用有这样设计的吗?
|
30
tanranran 2018-09-09 18:01:39 +08:00
获取 iemi 必须得电话权限,这锅得谷歌背。其实我们也不想啊,
|
31
ydxred 2018-09-09 21:16:51 +08:00
ios 的貌似不需要。。。
|
32
frozenthrone 2018-09-10 07:47:45 +08:00 via iPhone
珍爱生命远离安卓和国产 app
|
33
aaron61 2018-09-10 08:38:40 +08:00
我这里淘宝,天猫,京东不给权限都用不了
|
34
vibin 2018-09-10 11:00:57 +08:00
买 iPhone 吧
|
35
amew 2018-09-10 11:33:12 +08:00
这个锅真得谷歌来背...
google 没有在碎片化如此严重的生态下给 Android 开发者一个能够真正全平台通用的唯一 ID 获取的方法。 在国外,几乎每一台 android 手机都会运行有 google 框架,所以这个问题还好解决一点 在国内,没办法,为了知道你真的是你,普通 Androider 能够想到的靠谱方法只能是去读你的 IMEI 了 PS for Android developers: 其实如果不是特别要求的话,可以考虑在安装时利用 UUID.randomUUID()生成一个随机唯一 ID,可以解决大多数问题,这样就不用请求敏感权限,省的甚至都被程序员喷了 |
36
zthinking 2018-09-10 11:33:44 +08:00
手头的华为可以单独开 imei 权限,不用把整个通讯录都授权
|
38
azh7138m OP @amew Settings.Secure.ANDROID_ID
只是大家不愿意使用,很奇怪,国内安卓开发似乎停留在 4.X 的时代 |
39
ysc3839 2018-09-10 13:25:47 +08:00
@amew Android 有 AndroidID,获取 IMEI 不是因为没有提供,而是因为开发商想在应用重新安装或者手机重置后继续跟踪用户。iOS 没提供任何唯一 ID,那些软件也不是不能运行。
|
40
zjddp 2018-09-10 14:03:21 +08:00
无非是现在没办法获取相对可靠的用户唯一标识了。这一点上不吹不黑,水果安卓半斤八两。
|
43
qmqmoe123 2019-02-13 21:17:36 +08:00
苹果保平安系列
|