在数字时代,智能手机已经成为了我们生活中不可或缺的一部分。小小的屏幕不仅记录着我们生活的点滴与过去的回忆,也是一些重要信息与个人隐私的载体。不夸张地说,在某些公司面前,你的身份证还不如你的手机更能证明自己——前段时间因手机丢失而被盗刷银行卡的新闻就是最好的例子。
所以我们也能看到大家对个人隐私、个人数据的关注度也逐渐提高,小米、vivo等手机公司更是先后推出了严格的权限管理机制,将一切试图盗取个人信息的小动作暴露在大家面前。
可是前段时间一则关于「App私下删除用户照片」的新闻却将这个功能抬至风口浪尖,也将不少用户的情绪点燃——一个第三方App,凭什么删除用户的照片?
软件真的有办法删除用户文件吗?
第三方应用有能力删除用户的数据吗?
先说结论,有。但拼多多的这份回应也没有问题,原则上拼多多没有必要去刻意删除用户的照片,这更多的应该只是误会。
但在大家开始批判之前,我想先介绍一下现代手机的数据管理机制:在以严格权限管理闻名的iOS中,软件无论是读取、写入用户数据,都需要经过用户的专门授权,这也是iOS系统受大家喜爱的原因。但因为iOS采用了严格的沙盒机制,每个App只能对自己沙盒内的数据进行「增删改」;对于自己沙盒外的数据,App无权过问。
举个最简单的例子,我们把iPhone里一张图片导入到第三方软件里处理(注意这里是导入,而不是软件对原始图片进行直接编辑)。处理并导出后,我们能在系统相册里看到原图与导出的照片,但在第三方软件里,我们只能看到导入时创建的副本,看不到原始照片。
即使我们在第三方软件中手动删除编辑过的照片,在系统自带的图库还也能找到原图与编辑后导出的图片。这失而复得的照片证实了一件事——在iOS中,软件只能对自己沙盒内创建(导入)的副本进行删改,只要图片离开沙盒(导出),第三方软件就无权再次访问。
Android手机稍微复杂一些,不同于iPhone严格的沙盒限制,只要用户手动授权软件访问完整存储信息,Android软件确实有权限对原始数据进行删改,大家想一下应用商店里那些「文件管理器」就明白了。
尽管如此,为了保证用户数据的安全,绝大多数软件依旧会延续iOS系统中的沙盒逻辑,仅对自己沙盒中的数据进行删除。由于不会影响用户本身的数据安全,这种沙盒机制也是Google等Android开发者更推荐的做法。
但国内Android生态从来就轮不到Google说了算,为了保证自己的软件能在各种不同的「魔改定制系统」中正常运行,部分软件开发商选择「手动造轮子」,不遵循谷歌的指引,自己想办法搭建外部通道。这次「删除照片」的风波,其实就是因软件开发不规范所引起的误会。
为什么软件要「自我清理」
那开发者为什么要大费周折,用更多的工作量来实现谷歌已经开发的功能呢?难道谷歌做的不够好吗?
有一说一,谷歌这个沙盒删除的机制确实有自己不方便的地方。
刚才我们说过,采用沙盒内访问的App无法对原始文件进行修改,只能访问「副本」。这种做法虽然安全但不高效,同时也容易造成文件重复、冗余的问题。举个最简单的例子,第三方软件中你已经把照片删除了,但原始文件在系统相册中依然存在,这个「真假删除」的逻辑本身就是违反用户直觉的。
抛开真假删除的问题不谈,「副本」机制也容易带来重复文件的问题:我用系统相机拍摄了照片A、导入修图软件a后修图软件创建了副本图片A-a,编辑后我把A-a输出到系统相册,再倒入到拼图软件B。拼图软件导入后生成了副本图片A-a-b,如果我想把图片发到社交平台c,平台在导入时又会创建副本A-a-b-c。
这时候我们看看,手机里已经有了A、A-a、A-a-b、A-a-b-c四个文件。而且因为这些文件都已经导出、离开了应用原本的沙盒,所以「按谷歌行事」的软件还没办法自动删除这些多余的「半成品」,这简直就是早期Android手机「相册里出现软件素材」的场景再现。
不跟开发者指引,直接使用完整权限删除编辑时留下的垃圾文件?是的,这可以方便用户,但代价是会被骂上热搜、在社交网站被拉着「游街示众」。你是开发者的话,你会怎么选?
总结
在我看来,牺牲用户体验,赶紧跟谷歌指引显然是更安全的做法。毕竟「多做多错、少做少错」,在手机里生成多余的文件最多也就是拖慢用户的手机而已。
或者这么说吧,「软件删除用户数据」的争论,本质上还是用户便利与数据安全之间的矛盾。以iPhone为例,因第三方软件无法直接对原始相册进行修改、删除,所以我常用的Google Photos无法完全代替系统自带相册;每次在微信里对图片剪切、「打码」后,相册里也会多一张需要手动删除的照片。
这么做虽然安全,但又是否是用户真正想要的呢?回想一下微信电脑端接收文件后必须「另存为」一次才能正常编辑的繁琐步骤,相信大家心里都有答案。