前言:

近来某物APP私删用户视频的事件闹得沸沸扬扬的,大体就是有个网友通过系统服务的提示,发现某物APP删除用户相册中的数据,从而认为偷删用户数据从而进行了曝光。

本文对事件本身和立场不做过多的阐述,我们只是从技术的角度来讨论下,对于APP来说,这种事到底是否真的可实现。

下面是用户的曝光:

以及得物的官方反馈:

一.安卓系统磁盘空间介绍

首先我们介绍一下安卓系统中,磁盘空间的分布。

安卓底层的目录结构如下,

这么多目录,我们就不一一介绍了,重点介绍三个:

system目录:系统侧的空间,系统级APP,系统级皮肤包,FW层代码等等都在这个目录下。

sdcard/storage目录:sdcard属于一个快捷地址,它指向的真实地址是storage/emulated/0。如果有外置SD卡的话,应该就会有storage/emulated/1的目录。0这个目录,对应的就是我们经常用的,文件管理中可以看到的目录。

data目录:对APP的私有目录,我们平常安装的非系统级的APP,以及所有应用的私有数据,都保存在这个目录下。

data/app目录下,对应很多包名,其实这些就是我们手机上安装的非系统应用。我们看到base.apk文件,这个其实就是安装完成的APK。APK的安装的本质就是就是把APK这个压缩文件解压到一个指定目录而已。

data/data目录下我们可以看到,是区分包名的,每个包名只允许其对应的应用才可以访问,除了自身之外,就算是系统级的APP都不能访问,所以,我们可以把这块空间看做用户的私有空间,是独有的。

二.APP占用空间介绍

对于APP来说,一般会有三块空间,应用的数据一定会存储在这三块空间中。

1.私有空间,对应路径data/data/包名

上面有介绍,这块空间是每个APP私有的,其它APP是完全无法访问的。只有由APP自身对外提供。这块空间类似于APP的家,别人是不允许进来的。

举个例子,微信的聊天记录,就是存储在这块空间中。

2.独有空间但外部访问,对应路径sdcard/Android/data/包名

这块空间属于APP独有的,应用卸载后,这块空间也会被随之删除。但是这块空间并不私有,其它APP是可以访问并且修改的。这块空间类似于APP家门口的菜园子,理论上这块空间属于我,但是别人可以不经过允许就能进。

也举个例子,微信聊天记录中的图片,文件什么的,都存储在这块空间中。所以我们可以在相册中看到微信聊天中发出的图片。

3.公共空间,对应路径:sdcard/下非ANDROID开头的目录

这块空间属于所有APP共有的,所有的应用在申请权限后,可以对这块区域进行读写操作。我们使用相机拍的照片,视频,截屏,手机录音等等,都是在这块空间中。

当然,每个手机的具体目录位置有可能不一样,拿小米手机举例,手机截屏的目录就是:

sdcard/DCIM/Screenshots

三.某物事件技术讨论

好了,介绍完安卓的磁盘系统分布以及APP可使用空间后,我们回头来从技术的聊一下某物事件。

问题一,APP是否有权限删除用户视频?

这个自然是可以的。

我们上面有讲到,用户的视频,照片等文件,都保存在公共空间下,所以理论上,只要申请了对应权限,任何APP都可以对这块空间进行删改操作。具体要看系统

6.0之前不需要申请任何权限即可修改,

6.0到9.0需要申请WRITE_EXTERNAL_STORAGE权限

10.0需要在manifest中声明requestLegacyExternalStorage

11.0开始需要申请外置SD卡管理权限MANAGE_EXTERNAL_STORAGE

所以,无论你是安卓的哪个版本,只要申请了权限,就可以对外置SD进行删改操作。

问题二,能否定向的删除用户视频?

这个理论上也是可以做得到的,当然,我们这里只是谈能否实现,我相信某物时不会这么去做的,因为开发成本其实很高,但是收益却很低,毕竟现在很多手机都有云端存储图片视频的功能,只是删除了本地的图片视频没有任何意义。

谷歌有一个侧端机器学习框架Media Pipe,导入训练好的模型之后,可以动态的去分析图片,得出想要的结果。具体可以参看我的另外一篇文章::2022年谷歌开发者大会讲解

所以,在手机端动态的进行分析,删除目标视频或者图片,理论上是可以实现的。

问题三,华为是如何识别到APP删除用户文件的?

安卓系统中,分为用户态内存和内核态。如果用户只是对自身的内存进行操作,则在用户态处理。如果想进行跨进程通讯,比如想其它进程发消息/向后台服务发请求/操作本地文件等等,都必须经过kernel内核转发才行。所以如果想全盘的监控对本地文件的操作,或者网络请求状态等等,只要对kernel内核进行注入监听即可。

EBPF就是这样一门内核注入工具,编译完成后,他是运行在内核中的,可以完成对内核中操作的监听。所以,个人猜测华为有可能就是利用了类似EBPF这样的工具,来监控APP对文件的操作的。当然,这种工具稳吗?个人观点是没有那么准的,毕竟收集的信息其实有限,误报是完全有可能的。

问题四.IOS会有这种问题吗?

我认为是不会有的,因为IOS本身就没有公共空间这个概念,每个APP都只有独立的空间,所以自然不会出现APP1删除APP2文件的情况。当然这么多就一定好吗?感觉这个看个人理解了,在我看来,属于各有优劣吧。

声明:

本文只是单纯的从技术角度去讨论某物事件中,涉及到的技术点的可行性,并不代表作者本人的任何观点和立场。

文本请勿用于任何非法用途和立场。

欢迎技术讨论,拒绝网络暴力。

从技术角度看待某物APP私删用户视频事件相关推荐

  1. 网络热传App鉴定 |「得物」疑私删用户视频?从技术角度还原事件始末

    声明:本文更注重于原理知识的普及,因此文中不会有大量实际代码的展示,如果想从代码层面上了解「应用存储分区」的内容,欢迎阅读我两年前写过的技术文章<Android 10 应用分区存储适配实践> ...

  2. COACH与得物App达成官方合作 未来计划提供专供款商品

    5月9日消息,奢侈品牌COACH宣布与得物App达成官方合作.COACH官方入驻得物App后,除了提供包括手袋.皮具.配饰在内的专柜同步款外,未来还计划为得物App上的用户提供专供款商品. 据介绍,此 ...

  3. 得物 App H5秒开优化实战

    文/XU MING 关注得物技术,做最潮技术人! 背景 H5秒开优化是一个老生常谈的问题,于是得物技术联合了客户端和H5共同发力.本文将逐步介绍如何通过客户端 + H5 的优化手段(1+1>2) ...

  4. 得物App获得2020“年度新经济企业”奖项

    日前,在中国新闻社<中国新闻周刊>主办的2020"年度影响力人物"荣誉盛典上,潮流网购社区得物App凭借在年轻消费领域的深耕和探索,获得2020"年度新经济企 ...

  5. 得物App联合Zippo推出限量款打火机 首批开售十分钟即售罄

    5月18日,得物App今天宣布联手世界知名品牌Zippo,共同推出"登峰造极.极光之宝"联名限量款打火机,并在得物App进行独家发售. 根据官方公布的数据显示,开售十分钟,首批限量 ...

  6. K12在线教育App如何实现用户增长?

    对于K12在线教育而言,获客一直都是一个难题,随着互联网人口红利基本消耗殆尽,部分K12教育机构陷入线上流量贵.获客成本高.用户数量增长缓慢的困境.那么我们该如何做,才能更好的帮助K12在线教育企业实 ...

  7. 得物App万米高空WiFi拦截记

    0.前情摘要 在一次飞行途中,我司客户遭遇到了得物App在飞机上的WiFi网络访问异常的问题.这让我们意识到在特定场景下,用户可能面临无法使用得物App的困扰.经过SRE团队与无线团队.网络团队联合全 ...

  8. 互联网晚报 | 11月29日 星期一 | 小米汽车正式落户北京经开区;得物App发布“潮流主场计划”;有赞新零售独立后成绩单披露...

    今日看点 ✦ 网易云音乐香港IPO定价为每股205港元,拟筹资4.22亿美元 ✦ 小米汽车正式落户北京经开区,预计2024年首车将下线并量产 ✦ 拼多多三季度利润全部投入"百亿农研专项&qu ...

  9. 商家如何构建公域到私域用户暴涨模型

    2022年,公域流量变现越来越难. 更多商家开始构建属于自己的公域-私域引流变现模型,将公域流量平台作为内容引流端,将创客匠人知识店铺等作为沉淀用户.课程交付.教学服务的私域平台,然后基于好口碑做用户 ...

最新文章

  1. Linux之压缩和解压缩命令
  2. leetcode2. 两数相加--每天刷一道leetcode系列!
  3. 个人博客代码_这四个博客模板美观大气,做个漂亮的个人博客必须得收藏
  4. java 正则匹配 sql星号,18. 正则表达式:开头、结尾、任意一个字符、星号和加号匹配...
  5. python tkinter button颜色变不了_更改函数中Tkinter按钮的颜色
  6. 0001-Hello world(第一弹)
  7. 【传智播客】Javaweb程序设计任务教程 黑马程序员 第五章 课后答案
  8. 工厂模式-依赖倒置原则
  9. php设计模式之单例模式 1
  10. Windows 10标题栏显示颜色
  11. axios拦截器_请求拦截器_响应拦截器---axios工作笔记010
  12. Unity 编辑器启动时运行自定义编辑器脚本
  13. Python 爬虫之代理服务器
  14. vb 远程连接 SQLserver数据库的连接语句
  15. 微信小程序——video视频播放
  16. 计算机未安装flash,win10系统提示未安装Flash的解决方法
  17. 一步一步教你写股票走势图——分时图四(高亮联动)
  18. Vultr与阿里云结合自动换IP的解决方案
  19. 去湘菜馆,该不该来壶酸梅汁?
  20. 初始化失败_Destroying singletons

热门文章

  1. Matlab 基本知识(附代码注释详解)
  2. android studio 去掉use androidx.* artifacts这个选项
  3. Spring 的扩展机制测试
  4. 使用MSYS2和UPX显著缩小发布文件体积
  5. leetcode---953. 验证外星语词典
  6. 127.0.0.1地址
  7. 【Python CLI】第一章 CLI 应用程序介绍
  8. 网站性能优化实战—从12.67s到1.06s的故事
  9. 人脸跟踪:CT压缩跟踪
  10. 培训机构微信裂变引流方案,培训机构如何利用微信群裂变引流招生?