12下一页
返回列表 发新帖

关于 v2.26.7 版本出现“清空相册”问题的复盘

[复制链接]

319

主题

4373

回帖

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

金币
120197
好评
1132
信誉
201

MT论坛元老MT论坛优秀教师2018MT论坛优秀成员

QQ
发表于 2026-7-7 15:07:46 | 显示全部楼层 | 阅读模式  来自 福建
先说结论:

  • 该问题目前只在 OPPO / vivo 的较老系统版本上收到反馈,从反馈来看主要集中在 Android 7.1。
  • 严格来说,这不是 MT 主动删除相册文件,而是部分国内厂商对 Android 媒体库逻辑进行定制后出现漏洞,行为与 AOSP 不一致导致的异常。
  • 该问题已在 v2.26.7 Patch 1 版本中修复,并已通过 MT 内置更新推送。


MT 是怎么触发这个问题的?

这个问题和系统图库的更新机制有关。

在手机上新增、删除、移动图片文件后,系统图库通常不会立刻感知到这些变化,需要应用通过 MediaScannerConnection 主动通知系统更新媒体库。这样当你打开相册时,才能看到最新的文件变化。

原本无论是新增还是删除文件,直接通过 MediaScannerConnection 把路径发送给系统即可。系统会自动判断这个文件是否存在:文件存在就更新记录,文件不存在就移除图库记录。

但从 Android 10 开始,这种方式变得不太可靠。实际使用中容易出现文件已经删除,但相册里仍然残留显示的问题。

因此在上一个版本中,我换了一种方式:使用 MediaStore 来操作图库记录。相比 MediaScannerConnection,MediaStore 提供了更精确的接口,可以明确控制是新增图片记录,还是删除图片记录。

不过这里有一个潜在风险:MediaStore 的删除操作默认不只是删除图库记录,也会尝试删除记录对应的真实图片文件。

也就是说,理论上会存在这样一种风险:

在 MT 删除文件和 MediaStore 删除图库记录之间的极短时间内,如果同一路径的文件又被重新创建,那么这个新文件可能会被 MediaStore 误删。

针对这个风险,我做了两层防护:

  • 使用 MediaStore 的隐藏参数 deletedata=false,强制要求 MediaStore 只删除图库记录,不删除真实文件。这个参数在 AOSP Android 5.0 到 17 中都有对应支持。
  • 考虑到手机厂商可能会修改系统实现,即使 deletedata=false 不生效,MT 在真正调用 MediaStore 删除记录之前,也会再次确认本地图片文件已经不存在。

但这次问题就在于:我预估到了厂商系统可能会对 deletedata=false 支持不完整,却没想到部分旧系统的行为偏离得这么严重。

MT 调用删除图库记录的代码大致是这样的:

  1. contentResolver.delete(rootUri, spec.selection, spec.args)
复制代码

其中 rootUri 是 MediaStore 的 Uri,后面两个参数用于明确告诉系统:我要删除的是哪一个文件对应的图库记录。

但在出现问题的系统上,它不仅忽略了 deletedata=false 这个隐藏参数,甚至连“我要删除哪个文件记录”的筛选条件也疑似被忽略了,最终变成了近似无条件删除图库记录,从而导致大量相册图片被清理。

从用户反馈的弹窗来看,厂商当初修改这块逻辑的目的应该是为了检测是否有恶意 App 通过 MediaStore 大量删除图片。如果检测到,就弹出风险提示:



这个初衷应该是为了保护用户数据,防止恶意删除。但 AOSP 原版 MediaStore 并不存在这个问题,部分厂商修改后的实现反而引入了漏洞,最终成了触发问题的原因。

目前处理方式

v2.26.7 Patch 1 已经回避了这条高风险路径,不再通过 MediaStore 删除图库记录,而是改回通过 MediaScannerConnection 通知系统媒体扫描器同步图库变化。

这样做的主要目的是避免部分厂商系统对 MediaStore 删除接口进行魔改后带来的不可控风险,优先保证不会再触发误删真实图片的问题。

不过这个方案也有取舍:在较新的 Android 系统上,删除文件后的图库更新可能会重新变得不够及时,可能会出现图片文件已经删除,但相册里仍在一段时间内残留显示的情况。这个问题后续我会继续寻找更稳妥的兼容方案。
回复

使用道具 举报

14

主题

8108

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
10724
好评
22
信誉
101

2018国庆快乐2018国庆节MT论坛帅哥考神MT论坛新人MT论坛最佳新人MT论坛活跃会员

发表于 2026-7-7 15:19:07 来自手机  | 显示全部楼层  来自 江苏
前排支持
回复

使用道具 举报

60

主题

917

回帖

2528

积分

大学生

吹牛逼

Rank: 5Rank: 5

金币
531
好评
14
信誉
102

MT论坛帅哥MT论坛新人考神MT论坛最佳新人

QQ
发表于 2026-7-7 15:19:32 来自手机  | 显示全部楼层  来自 河北
二楼支持
回复

使用道具 举报

32

主题

693

回帖

2902

积分

大学生

Rank: 5Rank: 5

金币
1224
好评
3
信誉
101
发表于 2026-7-7 15:21:46 来自手机  | 显示全部楼层  来自 河南
增长知识了
回复

使用道具 举报

1

主题

723

回帖

2515

积分

大学生

Rank: 5Rank: 5

金币
1563
好评
0
信誉
100
发表于 2026-7-7 15:34:08 来自手机  | 显示全部楼层  来自 辽宁
支持
回复

使用道具 举报

2

主题

457

回帖

2745

积分

大学生

Rank: 5Rank: 5

金币
962
好评
0
信誉
100
发表于 2026-7-7 15:38:59 来自手机  | 显示全部楼层  来自 广东
删除不够及时这个问题终于有人说了,我的安卓14经常这样,明明删除了图片,相册还是有空白的相片存在,过一段时间又不见了,特别是烦,所以我统一用安卓清理君来删除文件和相册,就不会有这种问题!@Bin
回复

使用道具 举报

66

主题

6471

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1743
好评
2
信誉
109

考神

发表于 2026-7-7 15:45:56 来自手机  | 显示全部楼层  来自 江西
现在出新版本都不太想更新了,都不知道那些版本是真的bug少的稳定版
回复

使用道具 举报

31

主题

1311

回帖

7191

积分

硕士生

Rank: 6Rank: 6

金币
3027
好评
14
信誉
101
发表于 2026-7-7 15:59:19 来自手机  | 显示全部楼层  来自 重庆
一杯奶昔 发表于 2026-7-7 15:38
删除不够及时这个问题终于有人说了,我的安卓14经常这样,明明删除了图片,相册还是有空白的相片存在,过一 ...

清楚MT缓存就可以了。但是我2千多照片,手机电量掉的有亿点快
回复

使用道具 举报

319

主题

4373

回帖

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

金币
120197
好评
1132
信誉
201

MT论坛元老MT论坛优秀教师2018MT论坛优秀成员

QQ
发表于 2026-7-7 16:04:13 | 显示全部楼层  来自 福建
岩前 发表于 2026-7-7 15:45
现在出新版本都不太想更新了,都不知道那些版本是真的bug少的稳定版

发布半个月以上的基本没什么大问题,有问题会像现在这样直接再发布一个
回复

使用道具 举报

319

主题

4373

回帖

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

金币
120197
好评
1132
信誉
201

MT论坛元老MT论坛优秀教师2018MT论坛优秀成员

QQ
发表于 2026-7-7 16:10:31 | 显示全部楼层  来自 福建
一杯奶昔 发表于 2026-7-7 15:38
删除不够及时这个问题终于有人说了,我的安卓14经常这样,明明删除了图片,相册还是有空白的相片存在,过一 ...

等我再研究个更好的方案
回复

使用道具 举报

37

主题

5672

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
1188
好评
1
信誉
119

MT论坛新人考神MT论坛帅哥

发表于 2026-7-7 16:20:35 | 显示全部楼层  来自 甘肃
我是有更新必须更新
回复

使用道具 举报

39

主题

1055

回帖

3686

积分

大学生

Rank: 5Rank: 5

金币
19
好评
3
信誉
107

MT论坛新人考神MT论坛帅哥MT论坛最佳新人

发表于 2026-7-7 18:19:53 来自手机  | 显示全部楼层  来自 香港
看看
回复

使用道具 举报

0

主题

231

回帖

733

积分

初中生

Rank: 3Rank: 3

金币
161
好评
0
信誉
100
发表于 2026-7-7 18:56:24 来自手机  | 显示全部楼层  来自 广东
bin大辛苦了
回复

使用道具 举报

34

主题

4623

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
7113
好评
8
信誉
100

考神

发表于 2026-7-7 20:18:40 来自手机  | 显示全部楼层  来自 上海
这让我想起了在用一个旧版的水印相机,把拍的照片删了,水印相机里会留下个空白位,但实际上对印的相册里这个照片确实也是删除了的...
回复

使用道具 举报

47

主题

2320

回帖

7578

积分

硕士生

Rank: 6Rank: 6

金币
6208
好评
1
信誉
105

MT论坛最佳新人MT论坛新人考神

发表于 2026-7-7 21:33:50 来自手机  | 显示全部楼层  来自 山西
厉害啊大佬
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表