Android 11强制用户使用内置相机应用,谷歌让安卓更封闭了吗?

2020 年 8 月 20 日

Android 11强制用户使用内置相机应用,谷歌让安卓更封闭了吗?

在诞生之初,Android 系统一直努力强调自由与灵活的设计思路,倡导开发者可以通过代码实现任何功能。与 iOS 相比,Android 为人称道的正是这种开放的开源方式。但随着对安全性与隐私性的高度关注,情况早已有所变化。过去十年以来,Android 的每一次重大更新都在以保护用户的名义关闭或限制某些功能。


在即将到来的 Android 11 版本中,用户将无法选择第三方相机应用,为其他应用拍摄照片或视频。换言之,用户将只能使用内置相机应用。



Android 11 预计将于今年第三季度发布,而在最新的 issue track 中,开发者们发现最新版本再次更改了相机 API 的一些设定,用户将只能使用 Android 内置相机应用,这将对第三方相机如美颜、轻颜等 App 造成不小的影响。


此次更改的核心,在于 Android 定义的 Intent 系统。举个例子,当你在各大 App 如知乎、极客时间等选择更新头像时,你可以选择拍摄图片上传或者从手机图库上传。而由于这些 App 本身并不提供拍摄功能,因此用户可以选择调用原生相机应用或第三方相机应用拍摄上传图像。这背后涉及到的就是 Android 的 Intent 系统。


在 Intent 系统中,开发者只需要根据相应条件创建一项请求,Android 就会提示用户从已安装的应用列表中做出选择,如下图:



Android 10 上的相机选取器


但是,即将推送的 Android 11 版本对于这一机制做出了大刀阔斧的调整。有三项 Intents 的运作方式迎来变更,具体包括:VIDEO_CAPTUREIMAGE_CAPTURE 以及 IMAGE_CAPTURE_SECURE。Android 11 将自动提供预安装的相机应用以执行这类操作,用户无需(法)主动搜索其他应用。


从 Android 11 版本开始,只有预安装的系统相机应用才能响应以下 Intent 操作:


  • android.media.action.VIDEO_CAPTURE

  • android.media.action.IMAGE_CAPTURE

  • android.media.action.IMAGE_CAPTURE_SECURE


如果有多款预安装系统相机应用可供选择,则系统会显示对话框,提示用户从中选择一种。如果你希望在应用中使用特定的第三方相机应用进行图像或视频捕捉,也需要通过在 Intent 当中明确指定目标软件包的名称或组件。


谷歌在 Android 11 的新行为列表中提到了这项更改,并在 Issue Tracker 中进一步予以确认。虽然人们普遍认为此举是为了提升隐私性与安全性,但谷歌并没有解释这些 Intents 为什么有可能引发风险。也许某些恶意相机应用会诱导用户将其设置为默认选项,并借此捕捉本应保密的敏感内容。


“……我们认为,对用户的隐私与安全的保护才是正确的权衡。” — 谷歌 Issue Tracker.


Android 11 不仅关闭了根据请求自动启动第三方预安装相机应用的选项,还阻止应用程序开发人员提供类似的界面以模拟这项传统功能。外网有人通过使用一些简单的代码进行测试,尝试查询手机上的相机应用,而后分别在安装有同一相机应用的 Android 10 与 Android 11 设备上加以运行。Android 10 正确列出了所有已安装的相机应用,但 Android 11 却不会返回任何报告——甚至不会返回谷歌在设备上预安装的 Camera 应用。



上图:Android 10 上的调试器视图。下图:Android 11 上的调试器视图。



有人说,谷歌确实给开发者提供了一种解决方法,只是可用度不高。说明文档建议开发者明确提供软件包名称,以检查已安装的相机应用。这意味着开发者必须预先指定首选应用,并将用户直接定向至这些应用处。当然,也有其他方法能够在无需指定所有软件包名称的前提下获取选项,例如获取全部应用列表,而后手动搜索 Intent 过滤器,但这似乎比指定名称还要复杂。


至少在目前的 Android 11 beta 版中,这一设定已经切实起效,并影响到一切以 API 30 或更低版本为目标的应用程序。目前还不清楚 Android CTS(兼容性测试套件)是否也有同样的变动,或者说允许 OEM 厂商将其更改为原本的规则。但就现在的情况看,谷歌很可能会将此设定为 Android 的未来标准。


这项调整的影响不能说特别大,毕竟对于大部分一直在默认使用内置相机应用的用户来说,其实不会受到任何影响。另外,大多数应用仍然允许用户先打开自己喜爱的相机应用拍下照片,然后再通过图库进行上传。但是,用户的操作过程确实更繁琐了,对于那些需要经常使用特定滤镜拍摄个人资料图片、或者习惯用 G Cam 端口替代默认相机的用户不太友好。此外,某些应用还不允许使用其他工作流,意味着我们在其中将无法使用任何相机应用。


在此项变更的 issue track 区域,也有许多 Android 开发者提出了明确的质疑:


请详细解释下使用第三方相机应用怎么就恶意了?

我完全不同意……至少也应该给一个新的开发者选项,让用户可以有选择的权利,目前为止我没看到这个变更有什么好的地方。

Android 的创建原则之一就是开放的性质和为每个任务选择应用程序的能力。消除了这些选择,你就像苹果一样,封闭的生态系统,创新有限。

这项变更是谁负责的?

……


从以上的开发者吐槽也可以看出,开放、创新是 Android 系统的灵魂,这也是其区别于 iOS 系统的一大差异。但从近几年手机 OS 的发展规律来看,Android 变得越来越 iOS,iOS 变得越来越像 Android。


而最近几次 Android 大版本的更新,总是伴随着谷歌强制这,谷歌强制那的新闻,从收紧文件访问权、收紧 API 调用、统一手势操作、强制无缝更新等争议颇多的新 feature 就可以看出谷歌试图统一 Android 的生态和标准。但 Android 生态的多样性,恰恰也是 Android 系统可玩性的体验,如果大家都大差不差,Android 手机也就变成了只有长相不同的苹果手机。


谷歌的官方解释是为了用户隐私与安全,但目前来看,这个理由似乎并不受 Android 开发者们的认可。有趣的是,当苹果表示不会为 Safari 浏览器的 WebKit 引擎中实现 16 个 Web API,理由是它们构成了隐私威胁时,谷歌的工程师认为苹果是在维护自己的蛋糕。


你怎么看?


2020 年 8 月 20 日 16:03979

评论 3 条评论

发布
用户头像
对银行金融APP会更加好。那更应该让开发者有自己的APP中保留选项, 是否允许用户使用第三方的APP进行拍照。由开发者自行决定,用户选择。 不过习惯用iPhone的,又觉得没什么问题,只要原生相机做得好。 基本都用原生相机, 很少第三方相机。
2020 年 09 月 28 日 13:58
回复
用户头像
我的看法不重要!
2020 年 08 月 21 日 11:32
回复
😂
2020 年 09 月 04 日 10:11
回复
没有更多评论了
发现更多内容

SpreadJS 纯前端表格控件应用案例:Teammark知识管理库

Geek_Willie

SpreadJS

收藏!一篇教会你写90%的shell脚本!

洋仔聊编程

Shell shell脚本编写 收藏教程

Android的特殊攻击面(三)——隐蔽的call函数

OPPO安全

android 安全攻防 安全 函数

区块链USDT支付系统,USDT承兑支付软件开发

13530558032

Git技术干货!工作中"Git"的使用实践和常用命令合集!

洋仔聊编程

git git常用命令 git常用实践 工作中git的使用

释放数据价值:DAYU数据运营新能力解读

华为云开发者社区

大数据 数字化转型 华为云 代码原理 数据运营

Android 中的特殊攻击面(一)——邪恶的对话框

OPPO安全

android 安全攻防 安全

阿里巴巴Java开发手册-日志规约

魏杰

第十二周学习总结

赵龙

大数据应用

GalaxyCreater

大数据

交易所合约跟单系统源码开发,合约跟单平台搭建

13530558032

首发!阿里面试官总结从零到架构面试宝典,是时候让面试官懵逼了

周老师

Java 编程 程序员 架构 面试

非传统的“易观”,和他的技术驱动之路

易观大数据

Android中的特殊攻击面(二)——危险的deeplink

OPPO安全

android 安全攻防 安全

【架构师训练营】第 12 周作业

花生无翼

不按套路出牌的阿里面试官:“刁难”面试者常用套路,你中招了吗

周老师

Java 编程 程序员 架构 面试

一文说透"静态代理"与"动态代理"

洋仔聊编程

源码分析 动态代理 静态代理

加密数字货币钱包APP系统开发,数字货币钱包系统定制

13530558032

大数据

GalaxyCreater

大数据

云小课 | 一份超实用的勒索病毒自救预防指南

华为云开发者社区

勒索病毒 弱密码 云小课 企业主机安全 病毒云查杀

为什么阿里巴巴的程序员成长速度这么快,看完他们的内部资料我明白了

Java迁哥

打开 政务上链 应用场景

CECBC区块链专委会

区块链 数字身份 政务

后疫情时代 数字经济如何大显身手

CECBC区块链专委会

疫情 数字经济 数字技术

数字货币交易系统应用开发,区块链交易所app

13530558032

超声大数据应用

周冬辉

大数据

大数据作用

隐秘的MySQL类型转换

flyer0126

MySQL

图解图库JanusGraph系列-一文知晓“图数据“底层存储结构(JanusGraph data model)

洋仔聊编程

janusgraph 图数据库 存储结构 图解源码分析

区块链技术创新应用势在必行 食品药品开启全链条溯源时代

CECBC区块链专委会

区块链 溯源 药品

第十二周作业

赵龙

前端源码宝库

InfoQ_34a83d636158

Android 11强制用户使用内置相机应用,谷歌让安卓更封闭了吗?-InfoQ