现在的 app 是如何通过运营商直接获取当前手机号的?

2019-06-14 18:45:00 +08:00
 morethansean
下了个快狗打车的 app,刚打开发现自动填入了我的手机号,然后还可以一键登录。

有点好奇需要什么样的资质可以向运营商申请这样的功能?

另外,即便我连着 WiFi 为啥也可以获取到这些信息?原理是啥有没有老哥介绍一下哇?


7857 次点击
所在节点    问与答
22 条回复
ladypxy
2019-06-14 18:55:41 +08:00
苹果获取不到,安卓随便获取
morethansean
2019-06-14 19:03:11 +08:00
@ladypxy #1
Android 能不能获取我就不说了...我这截图就是 iOS 啊亲...
cb192c3
2019-06-14 19:05:57 +08:00
移动联通 都有提供 sdk
hihipp
2019-06-14 19:06:52 +08:00
很早就有了,三家运营商都有。

可看一下这里
https://www.cmpassport.com/dev/developer/h5/index.html
Jirajine
2019-06-14 19:10:06 +08:00
同想知道原理。按理说 Android 应该是拿 IMEI 像运营商提供的接口查询,iOS 应该实现不了。
尤其在使用 WiFi 的情况下,应该没有可能关联到本机运营商信息的。
morethansean
2019-06-14 19:13:48 +08:00
@cb192c3 #3
这样的 sdk 通过什么实现的呢?
lizhuoli
2019-06-14 19:18:16 +08:00
@morethansean 走的是运营商服务信道,你要是开发者的话,自己直接搜索 Core Telephony 的相关方法
lizhuoli
2019-06-14 19:19:10 +08:00
@lizhuoli 只能是每个运营商 SDK 都接入一份(三份),电信取号 SDK,联通 SDK,移动不知道有没有
cb192c3
2019-06-14 19:19:46 +08:00
@morethansean 电信有个测宽带的服务,打开那个页面连宽带账号都会显示出来,你猜是怎么实现的
lnim
2019-06-14 19:28:50 +08:00
运营商有 sdk 的, 还分免费版本 付费版本
morethansean
2019-06-14 19:31:10 +08:00
@lizhuoli 果然,搜了下这个 API,把应用的蜂窝权限关掉后这个功能就不行了……不知道 Android 上有没有这么细粒度的权限控制……
Jirajine
2019-06-14 19:33:58 +08:00
@morethansean @lizhuoli
我测试了一下。
在我 Android,xposed hook 所有网络数据,电话信息的 API 情况下安装这个应用完全没有被读取到电话号码。
插了下资料,两个系统都有对运营商相关的 API,倒是并没有用什么无法阻止的骚操作获取。对 iOS 不了解,我以为 iOS 没有提供这种渠道的。
值得一提的是,看 LZ 描述并没有任何授权提示就被取得了?这样看来 iOS 的安全性有点值得怀疑了。
morethansean
2019-06-14 19:53:29 +08:00
@Jirajine #12
看我上一条评论,至少国行 iOS 应用初次启动时会弹出一个框,询问是否允许 app 访问移动和 WiFi 网络,正常情况下为了 app 能联网都是能通过的,但只要允许了移动网络,app 就能通过 Core Telephony 的相关 API 获取 carrier 的网络等信息了,这个时候就能通过运营商给的 sdk 获取到手机相关信息包括唯一识别码了。
Jirajine
2019-06-14 20:02:30 +08:00
@morethansean 这就有点坑了。iOS 访问 LTE 网卡还是分应用的?这样的话简直比 Android 滥用 IMEI 更严重了。Android 只是搞拒绝就闪退,还能欺骗。这个和必须权限绑定一起的话,普及起来简直危害太大
seabirds
2019-06-14 21:19:12 +08:00
@Jirajine 主要问题在运营商这边
xshwy
2019-06-15 02:22:16 +08:00
ios 也可以了……抖音可以用本机手机号登陆
honeycomb
2019-06-15 13:06:06 +08:00
@morethansean 截图上已经说了
honeycomb
2019-06-15 13:07:32 +08:00
@morethansean 这个数据是直接从运营商获取的(只要是通过 cellular 的线路),期间不需要预先获得手机方面的识别码或者与电话有关的组件。
lnim
2019-06-17 17:16:58 +08:00
UchihaJay
2019-12-11 14:26:52 +08:00
安卓的话是从 SIM 卡那获取的 ,移动可以读取 . 至于怎么获取的我就不清楚了.

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

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

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

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

© 2021 V2EX