1
operafans 2017 年 6 月 14 日
UUID ?
|
3
PP 2017 年 6 月 14 日 via iPad 据我所知,在 iPhone 3 和 4 的时代很早期苹果允许应用获得设备识别码,后来担心隐私问题关闭了这个接口,现在不允许了,除非应用使用私有接口。
|
4
paradoxs 2017 年 6 月 14 日 |
5
finab 2017 年 6 月 14 日 keychain 呀 ,将登陆过的账号保存在 keychain 中。卸载 APP 不删除 keychain 里保存的
|
7
Citrus 2017 年 6 月 14 日
搭车同问,iOS 应用能获取到我插的卡的手机号么?这两天拿了个安卓玩了玩,我擦居然不允许我禁止应用获取 IMEI 和手机号,打开微信点登陆手机号直接就输进去了。。。吓人。。。
|
9
nikoo OP |
14
paradoxs 2017 年 6 月 14 日
iOS keychian 有分 icloud keychian 和 另外的 keychian 这个概念, 好像是很久之前 V2EX 首发的.
我 google 了好久也没发现别处有这个说法 |
15
sunhr 2017 年 6 月 14 日
iOS10.3 之前,可以生成 UUID 写入 Keychain,卸载应用后 Keychain 内容保留。
iOS10.3 及以上版本,卸载应用之后 Keychain 会被清空。 楼上有童鞋提到 Google 和 Baidu,这两家的很多产品使用了 Keychain Sharing,也就是可以在一个开发者账号下的多个 Apps 之间共享 Keychain 的内容。 在 iOS10.3 及以上版本,当共享一个 Keychain 的所有 Apps 都被卸载后,这个 Keychain 会被清空。 |
17
honeycomb 2017 年 6 月 14 日
|
18
honeycomb 2017 年 6 月 14 日
@nikoo
--如果关闭 keychain 并且新系统只安装"百度贴吧"一个应用,登录后删除,重新装,他还能自动登录么? 在 iOS 10.3 以前,能自动登陆 在 iOS 10.3 以后,不能(因上述 keychain 改动) 如果手机内还有其它第三方应用,可能因为 Keychain Sharing 的缘故导致这个隐私措施被绕过 |
20
kera0a 2017 年 6 月 14 日
|
23
regicide 2017 年 6 月 14 日
应该是可以的 之前抓过今日头条的包 里面有跟机的 device_id 不会变
|
24
mooczz 2017 年 6 月 14 日 via iPhone
Keychain+UUID 可以实现,下个博雅斗地主看一下就知道了,只要你在这台设备登录过,删除再安装,会自动登录
|
26
honeycomb 2017 年 6 月 14 日
@Citrus
无需 root 手机应用可以使用网络 adb 模式,局限是每次重启手机需要重新启用一次网络 adb 当然也可使用 root 模式,或把应用安装到 system/priv-app 也可以手动通过 abd shell 的 appops 命令设置 |
30
wzxjohn 2017 年 6 月 16 日
@honeycomb 今天测试了一下 AppOps,发现一个很奇怪的问题。getLine1Number 这个 API 在文档中写的是需要:
READ_PHONE_STATE, READ_SMS or READ_PHONE_NUMBERS 这样的权限,那么是不是任意一个允许其中一个,就能调用呢? 更奇怪的是,我明明已经关了 READ_SMS 这个权限,但是保留了 SEND_SMS 的权限(通过 AppOps ),这个应用还是能通过 getLine1Number 获取到手机号。。。这是为啥。。。 |
31
honeycomb 2017 年 6 月 16 日
@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 生成的 |