Android 14 为 target SDK 33 以上的 App 提供了“只能选择部分照片”权限,但是最新版本的淘宝通过一些设计可以绕过了它。
正常的 App 在用户选择照片的时候会请求照片权限,这个时候 Android 14 会允许用户只选择部分照片。
但是淘宝 App 使用了“照片选择器”(这个本来是谷歌设计,为了让 App 无需请求权限就可以让用户提供照片的最推荐的方法),这样用户只能在淘宝安装后第一次选择照片的时候才可以选择照片,之后只要用户没有同意访问全部照片,淘宝 App 都会让用户去设置里打开全部照片,而不是请求照片权限。
换句话说,新的“仅选择部分照片”权限,只要 app 想,是基本无效的。这个其实主要是谷歌设计的时候没有像 iOS 那样提供了一个界面让用户随时更改软件可以访问的照片,而是通过“App 请求照片权限”这个时机来实现的,然后就让无良软件给绕过了。
一开始的描述确实很不清楚,重新说一遍
1
hefish 2023-09-24 20:44:20 +08:00 2
嗯,可是我想白嫖他的芭芭农场啊。。。我图库。。。看就看吧。 我都穿衣服的。
|
2
auvt 2023-09-24 20:44:54 +08:00 via iPhone
安卓只能把它关在 shelter 软件里?冰箱冻了都不行吧,总有从小黑屋里放出来的时候
|
3
momocraft 2023-09-24 20:45:58 +08:00 5
小紅书 ios 也是类似做法
|
4
mokiki 2023-09-24 20:53:31 +08:00 1
不懂 andord ,但是照片选择器的选择界面应该是系统提供的,APP 只能获取最终的照片数据才对吧?
|
5
vcn8yjOogEL 2023-09-24 20:53:46 +08:00 1
想都不用想,当时就知道肯定是这个结果,文件选择器都做出来多久了,App 还是在要储存权限
|
6
Rrobinvip 2023-09-24 20:55:56 +08:00 via iPhone 1
“之后只要用户没有同意访问全部照片,淘宝 App 都会让用户去设置里打开全部照片,而不是请求照片权限。”
那之后淘宝是怎么绕过权限,访问图片的呢? |
7
dingwen07 OP |
8
dingwen07 OP 谷歌其实在权限页面提供一个“仅允许部分照片”并且允许用户在那里就选择照片就可以防止 app 这样操作,但是谷歌就是不干
|
9
learnshare 2023-09-24 21:12:29 +08:00
Android 提供系统级的文件选择界面,但每个 App 都自己写一遍(顺便读取全部文件)
|
10
aeli 2023-09-24 21:16:00 +08:00 2
很多人不太清楚为什么淘宝一定要全部图库,这么说吧,有全部图库,基本上就可以跨 app ,来确定唯一用户来进行用户跟踪。
所以即使麻烦,我也是在跳到系统权限那里,修改一下选中的图片来给新图片的权限,而不是满足淘宝无耻的要求。 |
11
KnightYoung 2023-09-24 21:20:49 +08:00 1
Android 的权限问题年年修,年年烂。
|
12
chanChristin 2023-09-24 21:25:02 +08:00 via iPhone
@momocraft iOS 不一样,可以在设置中给 App 选择可以访问的照片,可以按需添加。
|
13
paradoxs 2023-09-24 21:29:10 +08:00 1
@aeli 很多人不太清楚为什么淘宝一定要全部图库,这么说吧,有全部图库,基本上就可以跨 app ,来确定唯一用户来进行用户跟踪。
所以即使麻烦,我也是在跳到系统权限那里,修改一下选中的图片来给新图片的权限,而不是满足淘宝无耻的要求。 ----------------- 用得着那么麻烦吗? 淘宝本来就有市场上 99.99%用户的实名信息,因为大家都有用支付宝啊,也绑了银行卡。 |
14
XiLingHost 2023-09-24 21:30:37 +08:00 3
有个应用叫存储空间隔离的可以处理这种问题
https://sr.rikka.app/zh-hans/ |
15
paradoxs 2023-09-24 21:38:31 +08:00
@chanChristin iOS 不一样,可以在设置中给 App 选择可以访问的照片,可以按需添加。
----------------- iOS 要跟踪你,更加方便,而且是是 iOS 系统自己提供的跟踪工具,即 keychain 。(你平时用一些 APP ,卸载后重装会发现直接就是已登录状态的对吧,就是通过这个东西实现的。) 不全盘刷机或越狱清理不了 |
16
momocraft 2023-09-24 21:41:26 +08:00
@chanChristin 小红书不在 app 里申请单个文件的权限,故意要用户去系统设置改
|
17
chanChristin 2023-09-24 21:49:26 +08:00 1
@momocraft #16 对,就是故意恶心人。但是越是这样我越不给权限。
|
18
chanChristin 2023-09-24 21:50:22 +08:00
@paradoxs #15 我们在说图片选择器的问题,和追踪有啥关系呢?
|
20
AkinoKaedeChan 2023-09-24 22:40:57 +08:00 15
看半天也没看明白在说什么。
照片选择器和授予对照片和视频的部分访问权限( Android 14 特性)没有直接联系,照片和视频的部分访问权限是利用 Andorid 13 (API level 33) 增加的 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 权限实现的,需要用户在授予权限的时候选择部分照片(没有声明 READ_MEDIA_VISUAL_USER_SELECTED 则需要选择每次询问)。照片选择器固然是最佳实践,但目前不是 Google Play 强制标准。 在何时选择访问应该不构成影响,就算应用没有声明 READ_MEDIA_VISUAL_USER_SELECTED ,也可以在应用进入后台或被 kill 之后重新选择。 参见:<https://developer.android.com/about/versions/14/changes/partial-photo-video-access> |
21
xmumiffy 2023-09-24 22:44:37 +08:00 2
用系统的照片选择器那不是不用任何权限么,不懂你说的到底是什么情况.
反正 Android 本身的照片选择器在权限方面是领先这个新的类 iOS 模型的,作为开发者我是没打算去实现新的权限模型. 国内的乱象嘛,就用 sr 了 |
22
AkinoKaedeChan 2023-09-24 22:46:49 +08:00
我猜测可能淘宝声明了 READ_MEDIA_VISUAL_USER_SELECTED 权限,并且在用户提供 READ_MEDIA_VISUAL_USER_SELECTED 权限后要求用户授予 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 。
|
23
AkinoKaedeChan 2023-09-24 22:56:18 +08:00
对 Play 版本淘宝 10.27.40.29 (510) 代码逆向,Target API 为 33 ,未声明 READ_MEDIA_VISUAL_USER_SELECTED 权限。推断为淘宝实现逻辑未遵循最佳实践,可能淘宝将你已经授权 READ_MEDIA_IMAGES 或 READ_MEDIA_VIDEO 的状态持久化(对于未声明 READ_MEDIA_VISUAL_USER_SELECTED 的应用,应用会认为你已经授权了上述权限),认为用户手动在系统设置取消了相应的授权。
|
24
jacksonj297 2023-09-24 23:08:52 +08:00
@paradoxs #15 小红书 uber 封号封设备就是用的 keychain ,只有刷机不还原备份才能绕过
|
25
AkinoKaedeChan 2023-09-24 23:15:56 +08:00
这个问题一方面是 Android 13 的时候 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 是没有一次性权限的。另外一方面是应用没有做出最佳实践,checkSelfPermission() 本身也只会返回 PERMISSION_GRANTED 和 PERMISSION_DENIED ,在 PERMISSION_DENIED 的情况下应用应该直接请求权限。
|
26
learningman 2023-09-24 23:27:27 +08:00 via Android
谷歌实现了,但是捆绑到 gms 而不是安卓了☝️
只能说不奇怪吧 |
27
luoshengdu 2023-09-24 23:46:07 +08:00
|
28
72MpQOSsJhyLs88N 2023-09-24 23:49:11 +08:00
这要是苹果,估计得上 CATV ,还得请 V 站的专家从资本主义制度到资本家如何逐利分析个十天半月的
|
29
allAboutDbmss 2023-09-24 23:51:20 +08:00
@dingwen07 如何避免呢
|
30
kingfalse 2023-09-24 23:52:47 +08:00 via Android
国产的常规操作,冷静。
|
31
kingfalse 2023-09-24 23:54:29 +08:00 via Android
不光想看,它们还会删。就特么离谱。
|
33
dingwen07 OP |
34
dingwen07 OP @AkinoKaedeChan #20
我观察到了淘宝 App 主动唤起照片选择器的行为(不是请求照片权限时的那个) 以及我确实没法做到在第一次在淘宝 App 内选择照片之后再次更改允许它访问的照片,常规的 kill 方法不适用 |
36
AkinoKaedeChan 2023-09-25 00:38:47 +08:00 via Android
@dingwen07 #33 ,没法断定,这是似乎在 Android 14 发布前就有的逻辑。
#34 淘宝都没有请求访问照片权限,你当然无法选择允许访问照片,淘宝非要你在系统设置里面给他 Grant 。Android 当然也可以设计成对于未迁移总是允许的时候只允许访问部分照片和视频,代价就是用户必须进入系统设置才能更改允许部分的照片和视频。 不清楚淘宝是否会做出修改,如果真的要这么做而不顾用户体验,其实相机、麦克风什么的也能不让用户一次性授权。 |
37
AkinoKaedeChan 2023-09-25 00:53:32 +08:00 via Android
只能说 Android 的设计似乎只有考虑遵循了最佳实践的状况。
如果未来有应用声明了 READ_MEDIA_VISUAL_USER_SELECTED ,而没有提供重新申请权限的按钮。那么用户还需要先去系统设置里禁用权限才能重新选择… 如果应用总是请求 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO ,那就会和没迁移的应用一样每次都弹出选择框,用户会感到疑惑。 |
38
AkinoKaedeChan 2023-09-25 01:17:28 +08:00 via Android
我倒是不觉得这是什么故意针对 Android 14 新特性的设计,到现在还在使用 API 29 甚至 26 的中国互联网大厂们不需要关注还都没正式发布的 Android 14 更新了什么,至于 Google Play 那自然是随便做做,能上架能用就行。
用着老旧的 API 你根本就没法选择什么部分相册,也不能一次性授权,连音频什么的权限都得一起授权上。这种情况起码还得持续五年以上。 |
39
0x6c696e71696e67 2023-09-25 02:49:24 +08:00
都用安卓了,权限什么的不是默认没有的吗?买之前就要做好功课,如果这方面特别看重就不要买了
|
40
Hallujah 2023-09-25 07:16:33 +08:00 via Android 3
谷歌一直是厂商随意取用用户隐私的帮凶。
|
41
WebKit 2023-09-25 08:03:59 +08:00 via Android 1
作为 Android 开发人员,我感觉应该是淘宝还没有适配 Android14 造成的。别上来就有罪论,你也说了 target 33 以上才提供选择部分照片功能。淘宝现在必然不是 33 以上啊。系统默认还是走的以前的机制
|
43
bianhui 2023-09-25 08:19:30 +08:00 4
这个很正常,但是淘宝不一定去访问了你的照片。很多 app 开发者为了方便,都是最大权限获取规则。就是说无论我要不要,无论我用不用,我都申请最大的权限。这就相当于,你一个文件夹没有读权限,你反手就是 777 。让你去开发你也这样的。但是这不代表它访问你没长照片了,或者它收集你信息。具体你要用更明确的证明。
|
44
InkStone 2023-09-25 09:04:08 +08:00 1
@aeli 对图库这块的 API 不太熟,但淘宝的设备指纹应该没有用到图库。说真的,阿里比你想的更害怕合规风险,不是每个公司都是 PDD
|
45
superychen 2023-09-25 09:06:35 +08:00 1
我在 iOS 上的菜鸟裹裹最近每次打开扫码都会提示 菜鸟想访问你的照片,并提供了选择更多照片和保留当前所选内容两个选项,我每次都选择保留当前所选内容,但下次扫码还是会弹出这个框
|
46
cheese 2023-09-25 09:10:42 +08:00
国内安卓 app 大多是直接要你存储权限的,直接全盘读完了,何止是相册
|
47
MengiNo 2023-09-25 09:13:41 +08:00 via Android
所以 Android14 都还没出,就解决不了这个问题。等系统底层解决了,还有 TargetAPI 再赖几年,要彻底解决不得 2030 年 … 真的是这么多 Android 用户都能忍受这种么,还是国内的 UI 可以自己设计取消来限制 app ?
|
48
crazyzzm 2023-09-25 09:32:08 +08:00
不是很懂,给了部分照片的权限,app 引导用户去选择更多照片或者改权限,不是很正常的流程么?为什么是“让无良软件给绕过了”?绕过的意思不应该是直接不经过用户同意获取了所有照片么?
问题的根源不应该是谷歌没有提供随时更改选择的照片的界面么? app 一般也是基于系统提供的 api 开发的,系统不提供,app 能怎么样?如果不引导用户,对于挺大部分的用户来说,他们不了解手机系统,遇到这种情况根本不知道怎么解决,要么骂 app 不好用,要么去找客服反馈,这不是更麻烦了么 |
49
cairnechen 2023-09-25 09:47:40 +08:00 4
我看了半天才看懂,楼主的描述能力真的捉急
1 、淘宝默认会申请照片完全访问权限 2 、如果用户没有授予权限,淘宝不会支持选择访问部分照片的选项 3 、淘宝选择无需权限的图片选择器作为“用户不授予照片完全访问权限”的 fallback 选项 楼主的诉求是,我想给 App 照片权限,但是只想授予部分照片的访问权限,同时又不愿意使用完全没有隐私问题的照片选择器 不知道该怎么说,楼主这个需求有点奇葩,我甚至觉得淘宝的产品会认为这是隐私改进项 本站内有不少人认为所有的 App 都应该直接使用系统的图片选择器来解决隐私问题 |
50
cbythe434 2023-09-25 09:53:08 +08:00
ios 每次都弹窗,直接卸载
|
51
yhxx 2023-09-25 10:20:22 +08:00
看完了 op 下面的所有评论,还是没看懂淘宝到底是怎么绕过系统权限获取用户照片的
这个表达能力也太离谱了 |
52
ReZer0 2023-09-25 10:35:37 +08:00
也就是说……如果安装 play 版,是安全的?
|
53
kogg0007 2023-09-25 10:47:08 +08:00 via Android
安卓现在可以开多用户,可以做到资料隔绝,把国产 app 都扔进去另一个用户里面
|
54
hunono 2023-09-25 10:57:54 +08:00 1
@yhxx 以下解释可能有曲解,但能解决你的疑惑:
正常 app 是调用照片权限,让用户明显知道照片可以给部分权限,也可以给全部权限。 系统给了 app 请求部分照片和请求全部照片的 api ,app 既可以每次都提醒用户请求部分照片,也可以每次都直接蹦到系统权限页面让用户打开全部照片权限。 淘宝没有使用请求部分照片的 api ,每次都直接跳到请求全部照片页面,让用户打开全部照片的权限。 这对用户有什么影响: 1 、如果使用了请求部分照片权限的 api ,用户每次在 app 中发图,都可以快捷点击添加部分照片的权限(这个快捷添加是系统功能,淘宝只要用了 api 就能调用),这样很方便。 2 、如果没有使用请求部分照片的 api ,用户每次想在 app 中发图,又不想给 app 全部照片权限,只能退出 app ,去系统权限页面添加部分照片的权限,然后再回到 app (此时 app 还可能重启,因为权限变了),再打开相应功能发图,很恶心,很多用户可能觉得太麻烦,就直接给了全部照片的权限,这样淘宝想要的效果就达到了。 |
55
AkinoKaedeChan 2023-09-25 11:01:30 +08:00
总结一下:
Andorid 14 为 API level 33 ( Android 13 )引入了 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 的一次性权限并在此之上向前兼容为 Target API 33 的应用实现了仅授予部分照片和视频访问权限。 1. 第一次淘宝检查权限发现没有授权,于是请求权限。 2. 用户点击仅允许本次,选择部分照片,此时淘宝得到权限。 3. 用户将应用切到后台或关闭,相应权限被取消。 4. 第二次淘宝检查权限发现没有授权,不请求权限,提示用户去系统设置授予权限。 问题在于之后淘宝检查到没有权限的时候应该主动去请求权限再做后续处理。 至于照片选择器我这边还没观察到,待我再反编译看一下。 |
56
QKgf555H87Fp0cth 2023-09-25 11:06:17 +08:00
底裤🩲都被看光了。4s 6s X ,光安卓广告,就算苹果要 2 万,也得买啊。垃圾。
|
57
unco020511 2023-09-25 11:09:18 +08:00
看了半天真不知道你在说什么
Android 最新的权限设计是很优秀的,不存在什么漏不漏洞.重点是啥,重点是你使用的应用的 TargetAPI 有没有升起来,你的设备支不支持 google play service,这个事是归 oem 应用商店来管控的,而不是 os 来管控. 照片选择器是很好的方式,问题是在低版本上是依赖 google play service 来支持的. 很多时候为了给用户完全一致的自己实现的图片选择器界面(不论设备型号版本,oem 厂商),开发者会优先尝试请求 READ_EXTERNAL_STORAGE 权限,如果用户拒绝,则使用「系统文档选择器」 or 「照片选择器」来让用户选择照片,后两种方式是不需要任何权限的.这种流程虽然不是 google 的选择图片的最佳实践,但并没有什么违规,而且 google play store 也没有说一定要要优先使用「图片选择器」 相关文档: https://developer.android.com/training/data-storage/shared/photopicker https://developer.android.com/training/data-storage/shared/documents-files https://developer.android.com/training/permissions/usage-notes |
58
gadfly3173 2023-09-25 11:10:44 +08:00 via Android 1
为了 1%不到的 play 用户专门写限制机制 ×
因为不知道原来的那坨屎是干嘛的,所以加一个 if 包起来兼容新版本 ✓ |
60
srwle 2023-09-25 11:53:21 +08:00 1
它要那么多裸体女人有啥用呢...
|
61
s4d 2023-09-25 11:58:31 +08:00
所以 Android 对隐私明感的人,只适合玩一玩,当备用机。
主力还是 iOS 。 |
62
xiaozecn 2023-09-25 12:42:01 +08:00 via Android
话说 Pictures 目录下是不是他们乱丢的文件。
|
64
shijingshijing 2023-09-25 13:49:52 +08:00
@superychen 没用过菜鸟,我记得有段时间菜鸟力推扫脸取件,故意把扫脸的选项做最大,输入取件码选项做小,很恶心。
不过你说的这个行为,我在鹅厂的 Tim 上也碰到了,iOS 版的 Tim 用苹果最新的那种只选择部分照片,和别人聊天时,每次切出去再切换回来,必弹请求访问照片的对话框,是每次必弹,烦死了,跟个甩不掉的乞丐一样。 |
65
cherryas 2023-09-25 13:59:51 +08:00
谢谢,已经关闭全部照片和相机权限了。虽然拼多多权限更烂,但是起码便宜。
|
66
hauibojek 2023-09-25 14:13:32 +08:00
淘宝直接禁用图片权限就行了。
|
67
itechnology 2023-09-25 14:25:41 +08:00
看了半天,不知道你想表达啥,感觉你这描述问题能力有待提高,反正我读了好几遍,还是没明白啥意思。
|
68
superychen 2023-09-25 14:48:45 +08:00
@shijingshijing 菜鸟的和这个差不多,文案 是进行运单号扫描查件等功能,恶心的就是每次都弹这个框
|
69
yhxx 2023-09-25 15:22:05 +08:00
@hunono 感谢,这个看懂了,不过这不算“绕过”吧
按楼主表达的意思,我还以为是 PDD 那种直接利用系统漏洞之类的在用户没授权的情况下偷到了用户的照片 |
70
RayJiang9 2023-09-25 16:28:09 +08:00
@luoshengdu #27 说出来你可能不信,在 iOS 13 发布的首周,淘宝就已经支持了相册的新特性,即使用系统新的图片选择器,不需要用户授权,但是在后续的版本中把这个功能给移除了
|
71
halfdb 2023-09-25 16:59:18 +08:00 via iPhone
看了半天都不确定看懂没有。读标题时还以为淘宝利用漏洞了呢。
|
72
orionnnnn 2023-09-25 17:12:04 +08:00
没看懂+1
|
73
kingterrors 2023-09-25 17:16:33 +08:00
帮一个华为的朋友问的:
华为的鸿蒙设备上有没有这个问题(如果没理解错的话,OP 想说 taobao 越权的事情?)。 |
74
peasant 2023-09-25 17:25:40 +08:00
@paradoxs #15 如果开了 iCloud 开了 keychain 同步,全盘刷机也没用,一登录全回来了,删又找不到地方,当初找了好久删除的方法,最后发现可以从 macOS 系统里面删,macOS 上的 keychain 能看到手机上那些 APP 保存的内容。
|
75
dna1982 2023-09-25 17:34:35 +08:00
LZ 不但表达能力捉鸡 概念也是错的
App 之所以无需申请权限就可以使用系统的文件/照片选择器,就是因为这种方式只会返回用户选择的文件/照片。 |
76
dingwen07 OP |
77
NavilleZhang 2023-09-25 18:56:48 +08:00
阿里系是这样的
|
78
showchys 2023-09-26 10:05:39 +08:00
刚刚,官方正式通报! 确认了!
这种标题党蔓延到这里了,国内环境就是隐私换取便利.信息泄露早就麻了. |
79
huajingyu 2023-09-26 11:47:32 +08:00 via Android
位置获取也是这样。故意不请求授权而是跳转到设置。非逼我用完后立即取消授权。
文件(包括媒体)还好解决,不要从应用选择文件(这需要授权)而是从文件管理器或相册共享给应用。现在除了文件同步工具外,我从不授权文件权限。微信发图片我就在相册中选择图片后共享到微信。前阵子某个银行应用不给文件权限不让用,我给停用了。还有国内几款音乐软件,不给存储权限不能下载,(没有让该软件下载到私有目录的功能。)我就放弃离线听歌了。 |
80
luoshengdu 2023-09-26 12:28:00 +08:00
@RayJiang9 #70 真,司马“淘宝”,之心路人皆知啊!
|
81
fuckallmm 2023-09-26 14:02:54 +08:00 1
我能说我的安卓上的 app 只从 gplay 上下载安装,或者是从 gplay 下载安装后导出来的包安装么?
应用商店我基本都是用 adb 禁用/禁止连网状态。 包括 vx 、tb 、alipay 、银行 app (貌似只有招行)。 像什么小黄书,抖阴,快手,微搏之类的 app ,从来都绝对禁止它们在我手机里面出现,我对这类 app 持极度反感态度。 |
82
janus77 2023-09-26 16:06:35 +08:00
还是没看明白。我选择了“允许访问部分”,然后自己选中了几张丢给他允许访问,这会导致什么?他可以访问其他我没指定的吗?
如果不可以,那就没事。我一般都只会指定 1 张普通的不敏感照片丢给他,他再怎么申请都会只能拿到这一张。有需要的时候我再丢给他允许的,然后我再收回去。 |
83
dingwen07 OP |