今天有这么一件事上了热搜,让不少人看完心里都有点害怕,那就是 “美团删照片” 事件。

简单来说,就是这两天陆续有多个品牌的手机用户表示,自己遭遇了美团 App 在后台自动删除本地照片、视频和音频文件的情况。。。


有些运气好的用户,系统起码还能检测到删照片行为并且拦截提醒你,而要是你手机上没有拦截提醒,那照片可就真的说没就没了。。。


无论是微博还是小红书,都有很多人发帖子现身说法,表示自己照片确实被美团删了。。。


所以这事儿一出来,别说一脸蒙逼的网友们了,就连托尼也楞了一下,这又是什么奇怪的 App 行为?

不过作为身经百战的数码宝贝,以前各种 App 的离谱操作咱也不是没见过,而且通常情况下,一定是因为有什么地方出现了偏差,才会造成乍一看很离谱的操作。

于是托尼赶紧去研究了一波,想帮大家搞清楚这究竟是咋回事儿,结果嘛。。。其实事实可能比大家想得要简单。

先来一个祖传省流,如果你的安卓手机系统版本比较老,比如五年前的Android 11甚至更早、或者还在用低于鸿蒙 4.2 的华为手机,那么确实会更容易触发这个漏洞,导致美团库库删你照片。


但是只要你在用比较新的 iPhone、Android 12 之后的安卓手机、或者鸿蒙 5.0 版本之后的新华为手机,是不会被第三方 App 自身的 bug 触发删恶性删照片事件的。

之所以说是旧系统,是因为美团删照片的这种行为,属于 “静默删除” 。

从网上的各种报道可以看出来,美团删照片几乎是在用户不知情的情况下完成的,有不少人甚至还是手机弹出拦截通知之后才发现的。


差友们可能会觉得静默删除这事儿有点离谱,但事实上,在 Android 10 (API 29) 系统版本之前,只要你第一次使用一个 App 时,允许它获得写入外部存储的权限,那么这个 App 就可以在后台静默删除相册和文件,也不会有任何提示。

这是因为在 Android 10 和更早版本,安卓还在使用 Shared Storage 存储模式,说白了就是个大通铺,不同 App 可以轻易读取甚至删除其他 App 的文件,当然也包括存储在 /DCIM 和 /Pictures 目录下的系统公共图片目录。

而咱们在用美团的时候,就有可能开通了读取文件的权限,比如想给骑手卖家发照片沟通,或者想要保存照片等等,一不留神就给了个权限。

而这个时候我们再去看美团官方的说法 —— “第三方插件冲突导致缓存清理异常” ,一切就说得通了。


通常情况下,程序员会在这里写一段递归删除代码,比如假设目标是删掉 /sdcard/meituan/cache 下的所有文件,但是路径传递出了 bug,那么这段代码就会顺着错误的路径把能看到的所有文件全给你删了。。。

所以这就解释了美团为什么没有按照正常的逻辑去清理缓存,而是猛打一把方向,冲进了你的 DCIM 目录删起了照片。

这也是为什么,从网上一些截图和机型能看出来,通常都是一些 “上了年纪” 的安卓手机,以及非原生鸿蒙的华为手机中招。


那么这时话又说回来了,为啥新版本的安卓就不容易出事儿呢?

这是因为从 Android 11 版本开始,谷歌学习了隔壁苹果 iOS 的逻辑,强制推行了新的 Scoped Storage存储设计大伙可以理解成分区存储或者沙盒存储。


说白了,就是各个 App 从以前的大通铺变成了单人公寓。

此时,每个 App 都有自己专门的文件夹,读写文件不再需要权限,但是其他 App 也进不来。

这时候 App 们依旧可以通过申请文件访问权限,访问存放在公共区域的相册文件,但是和以前的区别是:

新的权限设计,只能读,不能写。

如果此时 App 想要动不属于它的文件,比如删除存放在公区图片,那么它的删除文件指令会被系统强制重定向到一个叫做 MediaStore 的接口。

而这时,系统会强制弹窗,告诉你这个 App 要删照片了。

这里托尼用刚安装好的第三方相册软件举例子 (手机系统是 Android 16) ,我们在手机自带的相册 App 里可以很轻松的删除照片。

但如果你想通过自己安装的第三方相册里把系统相册的照片删了,那么这时会有一个巨大的弹窗弹出来,让你手动允许或者拒绝。


只有用户在这个系统强制弹出的二次确认里面点了 “允许”,系统的 MediaStore 框架才会真正开始执行删除照片的操作。

当然,在权限这一块儿,还得是 iOS 和原生鸿蒙更加重量级。

比如在 iOS 系统里,无论 App 是想要获得 “允许访问所有照片” 还是仅仅 “选中的照片” 的操作权限,iOS 都基本会有一个强制弹窗提示。


而原生鸿蒙也是不管你这那的,等你选好了之后我再单独给这些照片权限,App 只能访问你选中的这些照片。


到这里,你可能觉得把安卓手机升级到最新版本就万事大吉了,通常来讲确实是这样没错。。。

但是托尼这里还是要给大伙泼盆冷水,因为对于安卓系统来说,哪怕更新到 Android 11 甚至更新的系统,理论上也并不意味你的相册就绝对安全了。

因为 Android 11 虽然让 App 们独门独户了,但也引入了一个特殊的权限 —— 媒体管理应用(Media Management Apps)。


它和大家经常看到的 “照片与视频” 权限不一样,是一个更高级的特殊权限。假如有小伙伴现在还在安装第三方文件管理器的话,可能看到过类似的权限申请提示。

如果有用户图方便,仍然给一些 App 授予了这个权限,那么 App 在调用 MediaStore 接口清理文件的时候,系统仍然不会弹窗确认。

而如果恰好这个 App 是个草台班子的话,那么就会有可能再次复现美团删照片的情况。。。

不过这种事情发生的概率还是很低的,并且我们刚确认了一下,美团并不会申请 “媒体管理应用” 的权限。差友们倒也不用过于恐慌,管好自己的手,别乱给权限就行。

总之,过于老旧的手机和系统版本,加上美团自己闹出来的开发 bug,共同造成了 App 未经同意就删照片的诡异现象。

要是你的手机系统版本比较老,那还是尽可能更新到最新的系统,另外定期检查一下有没有图方便给 App 们滥发权限。。。

相信我,如果你是一个 i 人,这辈子都不需要让一个外卖软件获得访问相册的权限。

当然,e 人也不需要,咱们有事儿可以直接打电话。。。

撰文:百威

编辑:米罗

美编:焕妍

微博、小红书

微博 - @南方日报

华为官网

Medium - Understanding Scoped Storage in Android

CNET - The best Android 10 features you should be using today