IOS 即使关闭了微信的定位权限,仍然可以获取到位置信息?

2020-12-10 11:47:48 +08:00
 tin3w5

手机坏了,到 Apple Store 的 Genius Bar 维修,顺便问 Genius 为什么手机每次启动微信之后发热特别严重,Genius 给我看了 App Store 上微信描述中的一句不起眼但细读后毛骨悚然但话: "This app may use your location even when it isn't open, which can decrease device battery life."

这句话可以在 App Store 中搜索微信( WeChat ),打开页面后在 Information 选项中点开 Location 字段后看到。

Genius 非常肯定地说,除非放弃所有的定位功能,从 Privacy 中彻底关掉定位功能,不然微信依然可以获取到你的详细位置。

本人没有做过 iOS 开发,不是很清楚是否真的存在这种骚操作。如果存在,那么为什么微信还要申请定位权限来获取用户位置,给用户提供相应的服务? iOS 的 Location 权限存在的意义又何在?如果不存在,那这段话中的"This app may use your location even when it isn't open“又是怎么实现的?按照我的理解,”When it isn't open“,应该是开机后从来没有打开过这个 APP 、开机后打开过这个 APP 后从多任务里划掉这个 APP 或划掉这个 APP 后重新启动手机,那也就是说面对微信,iOS 允许其完全运行在后台?

如果真的可以在不启动的情况下也获取到位置信息,是不是也可以获取到麦克风、摄像头、通讯录、照片等其他信息呢?

11739 次点击
所在节点    iOS
98 条回复
si
2020-12-10 13:56:40 +08:00
emm,我搜索了一下这句话,发现了一个可能令楼主更毛骨悚然的信息,只要用了定位权限的 APP 都在 Location 里有这句话。
我看到 stackoverflow 上有一个开发者说苹果让他在 APP 的 location 里加上这句话,说明可能苹果联合其他 APP 开发者窃取楼主的位置信息,请快扔掉手中的 iPhone,防止泄露隐私。
tiktokxxxx2020
2020-12-10 14:01:36 +08:00
嗯,我觉得楼主可以重修一下英文之类的...
orangy
2020-12-10 14:04:07 +08:00
@ryh #13 是不是设置为“使用 app 期间”,并且关闭后台刷新,微信就没办法在后台获取定位了?
philipjf
2020-12-10 14:13:23 +08:00
28 楼说得比较全了,基本上国内大厂 APP 这一套都是标配。
当然前台只会根据常规权限显示
dcty
2020-12-10 14:16:42 +08:00
定位权限里面有一个“始终允许“,
0TSH60F7J2rVkg8t
2020-12-10 14:40:29 +08:00
@natashahollyz 这句英文“This app may use your location even when it isn't open”从句部分的 when it isn't open 里的 it 是只主语 The app 。也就是说,正确的翻译应该是:即使你没有打开这个 App,它依然可能使用你的位置信息。潜台词是,可以在后台持续进行定位(如果打开了定位权限的话)。

但是话分两头,有一段时间我发现过,微信确实可以在关闭定位权限的情况下得知你的位置。那段时间,我使用微信的时候,会发现状态栏定位图标亮了,从后台退掉微信后,定位图标消失。重复多次,在不同时间段,都能重现。而且我是关闭了微信的定位的。在系统设置里,查看定位最近使用,会发现,使用者是“天气”这个 app,于是我禁止天气 app 访问位置信息后,再次打开微信,不会出现定位图标了。这个事情持续了很长一段时间,大于几个月,期间应该有升级过微信和 iOS 版本,后来我再重新打开天气的定位权限后,这个现象不能复现了。

再 PS 一下,微信可以通过局域网、蓝牙,与你身边使用微信的人通讯,也可以通过身边的打开了定位权限的微信用户处搜集到的周边 wifi ssid 的信息,结合起来给你定位。

结论确实是,如果你关闭微信(或者其它用这些奇技淫巧来定位的 App 的相关权限),它们还是有办法得到你的位置信息的。

至于楼主说的耗电问题,发热严重,有很多可能,但应该不是微信在后台持续使用定位而造成的。
tin3w5
2020-12-10 14:45:09 +08:00
@484A4B 其实我也想到了 SDK,由于没有做过移动端开发,不是很清楚,是否存在这样的一种可能,其他的 app 调用了微信的 SDK 的同时,也会把用户的定位等数据上报给微信?
calmWei
2020-12-10 14:49:40 +08:00
就是你如果设置了始终允许,微信在后台的时候也可以用你的定位,如果设置了使用期间,只有在前台的时候才能获取定位信息,如果设置了不允许,那微信是拿不到你的位置信息的。

翻译过来,就是微信可以在不打开的情况下使用您的位置信息,而不是关闭了定位权限,还能使用您的位置信息
clrss
2020-12-10 14:55:55 +08:00
Genius 要是水平这么高早去当工程师了.
tin3w5
2020-12-10 14:59:19 +08:00
@ahhui 谢谢,本地网络与蓝牙的权限肯定是拿到手机后第一时间关掉的,这个毋庸置疑,毕竟对我而言微信的存在价值仅限于通信与极少数特别极端条件下的线下支付。

你说的微信调用天气的情况我之前也遇到过,以至于我至今都没有给天气获取位置的权限。前文忘了说,这也是加大我对 Genius 的话的信服度的一个原因。

至于 wifi ssid,这个是我很不理解的事情,iOS 不应该傻到连 ESSID 这种信息都要暴露给一个 APP 吧?本人没做过 APP 开发,不是很了解。

不过说句题外话,我个人感觉,iOS 端微信耗电的这个事情真的很明显。之前的公司用 slack 进行内部通讯,skype 进行重大变更的信息同步、Zoom 视频会议,没发现哪个 APP 像微信耗电这样严重,手机电池寿命 98%,早上 8 点出门,晚上 7 点前到家,用着微信电量剩余 25%,彻底划掉,仅在公司虚拟机里跑能剩 50%左右,简直是丧心病狂。
tin3w5
2020-12-10 15:03:15 +08:00
@clrss 不是很了解,大学的学长学姐 11 年左右在 Genius Bar 工作,感觉水平还不错,对于 iOS 系统底层很了解,有一位后来还去做了逆向方面的工作。不过大学毕业之后就没联系了,所以误以为他们的水平都不错。
WebKit
2020-12-10 15:03:17 +08:00
理论上也可以通过 qq 或者其他腾讯系的 app 获取你的定位。
gesse
2020-12-10 15:10:47 +08:00
其实天才吧的人没错, 他们培训内容就是把“续航差”的锅甩给一个非常通用的软件
zwzmzd
2020-12-10 15:15:57 +08:00
it isnt open 理解有歧义,这里应该指微信在后台可以获取位置,不是指你关了权限它还能获取
KouShuiYu
2020-12-10 15:33:38 +08:00
IP,wifi,卫星都能定位
denvi
2020-12-10 15:38:56 +08:00
这件事得分开看
首先天才吧那人说的可能对,也可能错。因为发热、续航差不可能简单检测就能知道原因,没有苹果高权限的工程人员做详细的分析是不可能知道的。
其次是,微信确实是续航杀手。一个聊天社交软件在手机里吃掉那么大的资源是极其匪夷所思的。
最后,微信对你手机的定位信息极其极其极其痴迷,你能想到的常规手段一个不漏,你想不到的近乎黑客的手段,同样有不少。
iyu90
2020-12-10 15:43:15 +08:00
Genius 只是解决了部分饭桶的就业问题,他们的话听个响就行了
Panic
2020-12-10 15:59:33 +08:00
直接用中文语言看一下就可以了, lz 理解错了
KouYiGuo
2020-12-10 16:13:36 +08:00
iOS App 有项后台模式配置叫"update locations"

<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>

顾名思义,App 处于后台也可存活,用于获取位置更新。典型可参考滴滴。
hideonwhere
2020-12-10 16:16:26 +08:00
其他应用共享数据了?

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

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

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

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

© 2021 V2EX