一觉醒来,这么多赞,感谢大家的支持,经过整理,我尽量将大家的反对或疑问做详细说明,顺便精简答案,其他疑问,可查看我的评论:
利益相关:Android/IOS 相关从业人员,Google粉,中毒国产APP使用者
一. BAT软件在手机文件管理里到处拉屎,后台偷偷扫描上传用户文件问题,主因是国内监管缺失,但源头是Android设计缺陷
详解:1. 在Android权限管理中,相册读写权限和手机文件管理属于同一个权限,都属于WRITE_EXTERNAL_STORAGE, 这样就导致,用户的所有的文档和相册隐私属于同一级别,再加上Android不强制约束,导致BAT不给权限就直接退出不让用,从而导致 Android上的用户文档数据实际是在裸奔。2. Android有 content provider 机制,利用这个机制,是可以做到相册和文档读写权限分离,但Google太懒,只做了一半,没有系统强制执行,理论上,如果做好的话,在APP扫描用户文件时,状态栏应该给予提示。
结论:事实证明,但凡系统留了个口子,这个口子就会被国产APP撕成黑洞。(引用自 @李大头 的评论)
导致结果:
用户文件完全管理权限满世界跑,目录混乱, 毫无隐私可言:
Android几乎所有的程序都有手机文件完全读写权限,在文件管理里,一个APP可以建立了n个目录, 而且不给文件管理权限,应用直接退出,(例如:微信,支付宝),从Android 4.4 开始,允许应用在不申请任何权限的情况下就可以处理扫码,拍照,缓存等内容,但是没有强制约束,所以国内生态混乱,总是以“应用缓存”等虚假理由强制获取该权限。 所以,试想下如果有好友给你微信发一个公司文档,你本地打开一下,几乎所有APP都可以知道了这个文件是什么了,且可以静默上传。
备注:IOS 11 也有文件APP了,这个文件APP支持其他应用读写文件,支持当作无线U盘(AirDrop), 只不过文件读写都需要用户界面层确认,不支持其他应用后台扫描,不支持其他应用在非 “用户通过文件APP界面的操作”的情况下,读写文件,所以很干净。
更新:Android 10 / 11 之后,在隐私方面做了很大的努力,但是依然没有解决这个问题。1. APP依然可以强制要求存储权限,导致用户目录及其混乱。2. 文件权限依然没有区分 “相册”,“录音”,“下载” 等文件权限。导致大部分应用,依然会强制索要存储权限,读写硬盘。
MacOS 10.15 之后,已经解决了这个贯穿个人计算机设计的隐私问题。在APP读写桌面,文档,音乐等目录时,给予用户明确提示。 这个很值得Android 思考,Android 从设计和开发进展上,至少到Android 11 为止,从来都没有重视过隐私问题, 二:Android 后台问题,国内各种保活机制,你很难在非ROOT下,完全杀死一个应用
在Android设计中,应用后台后,其实是可以保活的,且不会给用户任何提示,这样就导致很多APP,为了保证国内推送,顺便以“云端分析用户数据,以提高用户体验”为由,后台扫描,监控用户文件和活动,导致Android用户其实是没有任何隐私保护的。
反观IOS设计,应用后台后,实际是“挂起”状态,也就是应用暂停在内存,用户再次打开时会恢复,而Android的这个工作交给APP自己管理,所以这个也是设计缺陷。
优秀设计:在现在的IOS中,应用是可以后台计算的,如果一个应用想要执行后台计算,数据备份,上传下载等需要后台的行为,在应用后台后,系统状态栏会给一个“蓝色”状态栏的提示,提示程序在后台运行,这样的设计,在保证APP的生产力的同时,也照顾隐私和能耗。(注:后台计算似乎是ios10之后新增的功能,需要应用自行适配)
三:图标风格没有强制约束,开发者权限太高
按照Android设计标准,图标必须留 padding,但不做强制约束,(WTF), 图标是否规范,完全凭借作者心情,而且这个规范在不同ROM中还不一致,例如:微信图标如果遵守Android设计规范,主动留padding,就会出现在国内 MIUI等这样的ROM上大量留白,很难看。
3.1 虽然从 Android 8.0 开始支持自适应图标, 但是问题是:你不强制推行,系统也不会对没有实现的程序自动裁剪,谁用啊。你用Android原生装下国内应用看看, 分分钟让你强迫至死。
3.2 虽然国内类似miui等对图标做了方形托盘,但是类似微信小程序快捷方式,大量对国外应用小图标等,依然不会适应,这个还是难看好吧。这个没有规范,没有审核等世界分分钟让你崩溃。
总结:主因在Google的不强制执行政策
评论主要反对意见解答:
有人提到了Android 这些问题,是因为Android的开放和开源,但是我说的这些问题,真的与开源没什么关系,你不能因为开源,就可以让用户数据裸奔吧。 LINUX 服务器开源吧,但是你每次安装一个程序(yum方式等),LINUX服务器会自动对程序做用户数据隔离,这些程序是无法扫描服务器上的其他资源的。现在docker流行,这方面就更加完善了。而Android 现在都9.0了,这些问题依然没有排期解决。
总结:反观隔壁IOS的吐槽,顶多也就是功能和体验问题,而Android这边,根本问题在于系统设计缺陷(也可能是故意放纵的黑色利益链)。
更新:2019.10
Android 10系统已经意识到了这个问题,但是由于各方压力,最终没有强制执行,目前留给用一个解决办法:
- 系统升级到Android 10
- 手机连接到电脑,电脑端下载adb工具,手机端并开启调试模式
- 电脑端执行: adb shell sm set-isolated-storage on 命令
- 卸载垃圾权限应用,并重新安装。(这个时候你的目录就清静了)
- 备注:这个方法解决了历史兼容性问题,但是依然无法规避强制权限问题。
这个命令执行后,按照系统标准读取相册的应用会正常使用。如果应用使用不符合隐私标准的接口读写文件,这些文件将被隔离在应用存储空间中。(类似于iPadOS)官方承诺Android 11 会强制开启该特性。
更新:2月13日
总结下IOS之所以没有问题的两个原因,这两个原因可能会引起Android忠粉的不适,但都是系统设计根本问题,请认真思考:
- IOS最大的贡献就是告别了我们使用了几十年的传统文件系统, 如果你认真考虑,计算机设计中,最失败的也就是这个文件系统。 传统文件系统将应用数据和用户文件混为一谈,不可避免会造成隐私隐患,这个mac os,win 都不可避免。而IOS的“文件操作方式”,才应该是真正的用户需要的文件系统。这个在国外很多论坛的大佬都有讨论。现代操作系统,尽可能使用用“URI”和"内容提供者"这样的机制来操作用户数据或其他应用数据。而这种机制的实质是对传统文件系统的二次封装,实现鉴权和过滤,避免使用“File”文件句柄直接对他人数据进行操作。这个机制在Android中也是存在的,但问题在于google只将这个功能做了一半,并没有做强制uri隔离,资源读写通知等,google 的放纵政策和不作为才导致如今这么大的漏洞。( Think Different )
- IOS的 “应用挂起” 策略,设计得几乎完美,如果一个应用普通后台,那么它就会被暂停到内存,重新点击后自动恢复。如果应用需要后台计算,那么调用系统后台接口,IOS状态栏给予后台提示,点击状态栏可返回后台的应用,在后台中,系统会防止因资源不足被其他进程挤兑杀死。如果认真考虑,Android的后台才是假后台,android后台是不可靠的,因为随时因资源策略和内存等问题被系统销毁。
备注更新:
将SD卡权限更新为“手机文件管理权限”,这个权限在Android的4.0之前叫做“SD卡读写权限”,4.0之后官方的称呼是“手机外部存储权限”
--------------------- 2018年 2月11 补充----------------
例如:现在的BAT和大部分Android的应用,都可以在后台扫描用户SD卡文件,并上传用户隐私文档,照片到自己的服务器,用于“用户画像分析”或其他途径, 这个Android根本无法避免这样的嫌疑。它设计之初的权限问题就病入膏肓,除非从“系统级” 解决权限滥用的问题,否则任何监管机制都只是治标不治本。
补充系统级解决方案:
1.Android应用在后台扫描SD卡时,通知栏给予提示。2. 禁止BAT这种“不给权限就退出”流氓行为。3. Android应用数据隔离,强制应用只能存储自己文件到 "/sdcard/Android/data/{pakagename}" 目录, 其他文件存储必须经过系统级别的文件管理器界面,供用户确认。
---- 2019年3月2日 补充 -----------
在最新的 Android Q Beta 中,Google终于强势解决的外部存储和图标问题。但愿国内引入或正式发布Android Q时不要将其其阉割,大致内容如下:
- 目标 SDK 至少为 Q (29) 的应用或者运行 Android Q 时全新安装的应用会强制使用沙盒模式。(也就是说,如果你使用AndroidQ 设备,重新安装支付宝,它将无法访问你的外部存储隐私文件)
- 应用写入公共文件必须使用MediaStore. 系统API, 类似 ContentProvider, 无法直接使用File句柄。
- 所有上架Google Play 的应用,图标必须不能包含透明背景。(支持自适应图标)
(备注:该功能,迫于各种未知压力,已经在Beta3中被强势阉割,程序可采用兼容模式绕过限制)
参考:
https://developer.android.com/preview/privacy/scoped-storage尚未解决的隐私问题:
应用耍流氓强制获取行为
- 强制索要手机号码权限,不给则退出的行为
- 强制索要MediaStore.Files(相当于共享存储), 不给则退出的行为
---- 2019年5月21日 更新 -----------
经过几天对 Android Q Beta 3 的使用,发现系统内部依然会出现大量的Baidu, xiaomi 等垃圾文件夹。 证明:Google并没有在AnroidQ中解决文件完全管理权限滥用问题。 在Google号称隐私最被看中的系统下,运行国产软件依然如此, 就更别提其他了。后台偷偷扫描SD卡的行为按照官方说是得到了一定的改善。 但是程序运行中,扫描并上传用户隐私数据。这一点Google 似乎并没有做什么动作。
2019 年4月26 日消息: Google 在Android Q 继续放任隐私滥用模式。
https://www.ithome.com/0/421/170.htm |