惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
博客园 - 司徒正美
V
Visual Studio Blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
D
Docker
Vercel News
Vercel News
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
爱范儿
爱范儿
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏

奇客Solidot–传递最新科技情报

NASA 关闭旅行者 1 号的 LECP 仪器以节省电力维持运行 奇客Solidot | 人形机器人打破人类半马世界纪录 奇客Solidot | 卫星无人机图像显示美国四成数据中心可能延期 奇客Solidot | 内存芯片短缺可能持续到 2030 年 奇客Solidot | 果糖不只是糖,它更像是激素 奇客Solidot | Grinex 交易所声称遭敌对国家黑客入侵 奇客Solidot | 大白鲨面临过热风险 奇客Solidot | 暗能量巡天绘制出迄今最大的高分辨率 3D 宇宙地图 微软正式将 FAT32 分区大小从 32GB 增加到 2TB 奇客Solidot | 拼多多美团等被罚 36 亿 奇客Solidot | 英伟达 CEO 反对进一步限制向中国出口芯片 奇客Solidot | 美国科技巨头成功在欧盟法律中将数据中心环境影响列为保密信息 奇客Solidot | 乌克兰军方开始大规模使用地面武装机器人 Firefox 加入了对 Web Serial API 的支持 奇客Solidot | 大自然仍然在铸造人类基因 奇客Solidot | 威尼斯如何应对海平面上升 SpaceX 将发射 ESA 的 Rosalind Franklin 火星漫游车 奇客Solidot | Discourse 强调会继续开源 奇客Solidot | 美国主流媒体封禁互联网档案馆的存档机器人 奇客Solidot | 新研究再次证实 AI 有害大脑 Mozilla 宣布开源可自托管 AI 客户端 Thunderbolt 奇客Solidot | Linux Mint 宣布采用更长的开发周期 奇客Solidot | 人类的噪音在伤害动物,我们会学会安静吗? 奇客Solidot | 帝企鹅因气候变化导致数量减少被列为濒危 奇客Solidot | 抹香鲸的发声沟通方式与人类相似 奇客Solidot | 中国手游如何征服世界 奇客Solidot | IPv6 普及度突破 50% 奇客Solidot | 挪威男子在移植其兄弟的干细胞后治愈 HIV 波士顿动力的机器狗集成了 Google 的 Gemini 模型 奇客Solidot | Cal.com 因 AI 从开源转为闭源
为什么 Microsoft Teams 应用会导致 Android 手机无法拨打 911
2021-12-11 · via 奇客Solidot–传递最新科技情报

一位 Google Pixel 3 用户在祖母疑似中风时尝试拨打紧急救助电话 911 结果在铃声响了一下之后就卡死了。幸好家里还有固话,因此最后没有发生更糟糕的情况。问题被发现是安装之后没有登录的微软协作工具 Teams 应用导致的。对 Android 源代码的分析

揭示了背后真正的原因

。在 Android 源代码中,名叫 adjustAttemptsforEmergency 的方法决定了哪一个 PhoneAccount 实例处理紧急呼叫。Microsoft Teams 应用使用 Skype 后端进行语音呼叫,它注册了带有 CAPABILITY_SELF_MANAGED 标记的 PhoneAccount,但它不能处理紧急呼叫,因此没有注册 CAPABILITY_PLACE_EMERGENCY_CALLS 标记。问题是 adjustAttemptsforEmergency 包含了所有的 PhoneAccount 实例列表,即使实例没有 CAPABILITY_PLACE_EMERGENCY_CALLS 标记。Teams 应用本来不应该包含在内的。但这并非是问题根源,否则每一部安装了 Teams 应用的 Android 手机都会无法拨打 911。问题的根源是在特定条件下,sortSimPhoneAccountsforEmergency 方法中的代码会导致整数溢出/下溢错误。该方法被用于对 PhoneAccount 列表进行分类,比较哪个 PhoneAccount 有紧急呼叫 CAPABILITY_PLACE_EMERGENCY_CALLS 标记,哪个是用户首选账号。如果比较的两个 PhoneAccount 实例是相同的,它会对比哈希值,因为相同的实例也会有不同的哈希值。问题是 account1.hashCode() — account2.hashCode() 的值如果小于 Integer.MIN_VALUE 或大于 Integer.MAX_VALUE 就会导致溢出。该方法通常不需要用到,因此出现整数溢出的几率是非常低的。真正的问题在于 Microsoft Teams 应用在安装之后如果没有登录,它在每一次手机冷启动之后会创造一个 PhoneAccount 实例。版本号 v1416/1.0.0.2021163901 和 1416/1.0.0.2021183702 都存在这一行为。