谷歌自己偷偷用了什么 Api ? 在申请 sdcard 的权限上竟然可以不使用 saf.

19 天前
 jeesk
周末不知道啥情况我偷偷的把我珍藏多年的 android 老手机拿出来玩玩了, 然后手机里面一直是安装的谷歌的文件极客和图片, 我使用 mt 文件管理器, 管理 sdcard 目录的文件, 这个时候 mt 非要叫我去 saf 授权, 授权后才能删除文件.

后面我使用谷歌文件极客和谷歌的图库, 发现他们根本不需要 saf 授权, 大惊, 后续陆续使用了几个第三方开发者开发者的文件管理器和图库, 发现他们都需要跳转到 saf 里面授权.

但是谷歌开发的软件竟然不需要, 有大佬知道这时什么情况? 下面是截图.

3324 次点击
所在节点    Android
39 条回复
yyzh
19 天前
...破事水...预装程序跟你自己装的程序当然权限不一样
sheldor
19 天前
@yyzh 不仅仅是预装程序这么简单,在阉割了 play 服务的手机上重新安装 play 服务和 play 商店,通过 play 商店下载软件也不需要任何权限就能自动安装
ranaanna
19 天前
猜测应该是在安装的使用已经提示必须要了 SD 卡写入权限,或者第一次运行 google files 时给了 SD 卡写入权限、并且选了"Don't ask again"了吧。没有什么 api 可以偷偷用的
jeesk
19 天前
@yyzh 不是预装程序. 绝对不是.
moefishtang
19 天前
我使用不同的 Android11 设备从 Play Store 下载 Files by Google 进行测试,是弹出了申请权限的提示的,要求跳转到设置页面授予“授予所有文件的访问权限”
Android11 ColorOS11

jeesk
19 天前
@moefishtang 高版本是这样的, 文件管理权限就可以了. 但是低版本的安卓, sdcard 需要单独权限.
NewYear
19 天前
@moefishtang

这个软件的版本号简直逆天……
moefishtang
19 天前
@jeesk #6 我找了台 Android8.0 的 EMUI 设备,也是出现了授权提示的。


看来在 8.0 以下应该是用了别的权限。
jeesk
19 天前
@moefishtang 有 sdcard 外置的吗? 试一试删除或者添加 sdcard 的文件呢?
yyzh
19 天前
@sheldor 隐藏≠阉割.google 服务一直都预装在机子里.只是隐藏入口而已
除了自己装 app 来调出入口也能进设置调出
小米系:更多设置-账号与同步-谷歌基础服务
vivo 系: 账号与同步-谷歌基础服务管理
oppo 系: 其他设置-google 设置
位置跟描述可能不一样,不过也大差不差
然后去手机自带的官方商店更新 google play 就是
moefishtang
19 天前
@jeesk #9 没有,而且这个弹窗首次进入的时候就弹出了,如果不授权根本没法进入应用
倒是有台 Android11 设备支持 SD 卡,不过我认为没有额外测试的必要
jeesk
19 天前
@moefishtang android 11 我不清楚, 要不你也试一试. 我的是删除 sdcard 文件里面弹出来的.
moefishtang
19 天前
@jeesk #12 我使用 MT 管理器在没有授予权限的情况下进行读写操作,是不行的
另外 MT 管理器分两个版本,使用标准版本,即使未授予权限,依然可以看到存储设备中包含的文件夹(里面的文件看不到),target28 版本未授予权限的话什么也看不到
至于 SDCard ,OneUI 在 Android11 下挂载 SDCard 的方式非常奇怪,是挂载在/storage/5CB9-B555 目录下的,不过在开启使用 DocumentAPI 读写外置存储后,会跳转“文件”app 进行授权,在这之后可以在“授予所有文件的访问权限”未授权的情况下自由读写外置 SD 卡文件。
所以即使读写外置 SDCard ,依然是需要授权的,虽然走的不是 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE (在权限管理器里可以控制的是这个,即“存储”)。至少在 Android11 是这样
moefishtang
19 天前
@jeesk #12 Google 文件极客没法测试,因为如果我不授予权限,进都进不去
jeesk
19 天前
@moefishtang 这个就是差异了, 你看我的截图, 极客文件就没有跳到 saf 申请文件.
jeesk
19 天前
@moefishtang 文件管理权限和允许访问/sdcard/的权限不是一个.
moefishtang
19 天前
@jeesk #15
在 Android Studio 下开了个 5.0 的虚拟机,确实没有任何额外授权,在那个首次弹窗提示后直接能自由对文件进行读写操作了。
不过我也下载了 MT 管理器,同样不需要额外申请就可以读写/storage/sdcard 下的文件。我认为在这些低版本的系统上权限管理不严。文件极客通过正常的 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 权限就可以对文件进行操作,没必要走其他途径
另外,我去 APKMirror 查了下,文件极客分两个版本,Android8.0 以上的机型和 Android5.0 以上的机型分发的是两种不同的安装包
moefishtang
19 天前
@moefishtang #17 这是 Android5.0 下文件极客申请的权限
jeesk
19 天前
@moefishtang 不是这样的.

我说的是谷歌可以不通过 saf 就去管理 sdcard 的文件, 截图是我的弹窗. 但是其他应用都是通过跳转到 saf 申请权限才能反问 sdcard 的目录. 我想知道谷歌为何能这样. 如果 mt 和极客文件都是一样的流程反而我没有什么疑问了.
moefishtang
19 天前
@jeesk #19 不是 SAF ,我是指那个欢迎页面,没有你图中那个弹窗提示
另外动态权限申请是 6.0 才有的,5.0 还是安装时授权。而且从申请的权限看,文件极客申请了 sdcard 读写权限的,想不通为何要用另外的方式读写
我的建议是你在你的设备上卸载并重新安装文件极客,观察反应。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1099748

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX