1
operafans 2017-06-14 13:08:44 +08:00
UUID ?
|
2
nikoo OP @operafans 苹果拒绝 iOS 应用访问 UDID 和 IMEI
在我的理解,一个普通应用的权限是无法确定唯一设备的,不知道对不对 |
3
PP 2017-06-14 13:15:58 +08:00 via iPad 1
据我所知,在 iPhone 3 和 4 的时代很早期苹果允许应用获得设备识别码,后来担心隐私问题关闭了这个接口,现在不允许了,除非应用使用私有接口。
|
4
paradoxs 2017-06-14 13:18:22 +08:00 1
|
5
finab 2017-06-14 13:23:50 +08:00 1
keychain 呀 ,将登陆过的账号保存在 keychain 中。卸载 APP 不删除 keychain 里保存的
|
7
Citrus 2017-06-14 13:43:44 +08:00
搭车同问,iOS 应用能获取到我插的卡的手机号么?这两天拿了个安卓玩了玩,我擦居然不允许我禁止应用获取 IMEI 和手机号,打开微信点登陆手机号直接就输进去了。。。吓人。。。
|
8
paradoxs 2017-06-14 13:52:41 +08:00 1
@nikoo 办法肯定是有的, 你把 gmail 和百度贴吧, 卸了, 重新装, 还不是自动给你登录了.
就算你关了 keychain |
9
nikoo OP |
14
paradoxs 2017-06-14 14:57:42 +08:00
iOS keychian 有分 icloud keychian 和 另外的 keychian 这个概念, 好像是很久之前 V2EX 首发的.
我 google 了好久也没发现别处有这个说法 |
15
sunhr 2017-06-14 16:09:06 +08:00
iOS10.3 之前,可以生成 UUID 写入 Keychain,卸载应用后 Keychain 内容保留。
iOS10.3 及以上版本,卸载应用之后 Keychain 会被清空。 楼上有童鞋提到 Google 和 Baidu,这两家的很多产品使用了 Keychain Sharing,也就是可以在一个开发者账号下的多个 Apps 之间共享 Keychain 的内容。 在 iOS10.3 及以上版本,当共享一个 Keychain 的所有 Apps 都被卸载后,这个 Keychain 会被清空。 |
16
kera0a 2017-06-14 16:22:52 +08:00 1
|
17
honeycomb 2017-06-14 16:31:16 +08:00
|
18
honeycomb 2017-06-14 16:32:42 +08:00
@nikoo
--如果关闭 keychain 并且新系统只安装"百度贴吧"一个应用,登录后删除,重新装,他还能自动登录么? 在 iOS 10.3 以前,能自动登陆 在 iOS 10.3 以后,不能(因上述 keychain 改动) 如果手机内还有其它第三方应用,可能因为 Keychain Sharing 的缘故导致这个隐私措施被绕过 |
20
kera0a 2017-06-14 16:57:18 +08:00
|
21
honeycomb 2017-06-14 17:00:34 +08:00 via Android
|
23
regicide 2017-06-14 17:32:08 +08:00
应该是可以的 之前抓过今日头条的包 里面有跟机的 device_id 不会变
|
24
mooczz 2017-06-14 18:01:12 +08:00 via iPhone
Keychain+UUID 可以实现,下个博雅斗地主看一下就知道了,只要你在这台设备登录过,删除再安装,会自动登录
|
26
honeycomb 2017-06-14 22:07:24 +08:00
@Citrus
无需 root 手机应用可以使用网络 adb 模式,局限是每次重启手机需要重新启用一次网络 adb 当然也可使用 root 模式,或把应用安装到 system/priv-app 也可以手动通过 abd shell 的 appops 命令设置 |
28
honeycomb 2017-06-15 11:09:16 +08:00
|
30
wzxjohn 2017-06-16 14:41:46 +08:00
@honeycomb 今天测试了一下 AppOps,发现一个很奇怪的问题。getLine1Number 这个 API 在文档中写的是需要:
READ_PHONE_STATE, READ_SMS or READ_PHONE_NUMBERS 这样的权限,那么是不是任意一个允许其中一个,就能调用呢? 更奇怪的是,我明明已经关了 READ_SMS 这个权限,但是保留了 SEND_SMS 的权限(通过 AppOps ),这个应用还是能通过 getLine1Number 获取到手机号。。。这是为啥。。。 |
31
honeycomb 2017-06-16 15:51:40 +08:00
@wzxjohn
考虑看一下 getLine1Number 的实现? 看上去这个接口应该是由 OP_READ_PHONE_STATE 管的 所以 READ_SMS/SEND_SMS 这两个 OP 和 getLine1Number 无关 确实是这样 https://android.googlesource.com/platform/frameworks/base/+/android-7.1.2_r12/telephony/java/android/telephony/TelephonyManager.java 里面有一句 number = telephony.getLine1NumberForDisplay(subId, mContext.getOpPackageName()); 后面的参数就是要把调用这个接口的应用包名传进去,appops 负责检查这个包是否可以执行特定的 OP 但它的具体实现在 ITelephony.java 里,是要通过 ITelephony.aldl 生成的 |