哔哩哔哩 Android 会在每次启动时往 Documents 目录下写入文件

2021-05-20 07:07:09 +08:00
 dingwen07

旧版哔哩哔哩 App 会在有存储权限的情况下在模拟 SD 卡下包名文件夹内写入environment.pubenvironment.priv两个文件,均为二进制文件,无法用文本流打开。这种行为可以用拒绝存储权限来阻止。

然而自从哔哩哔哩的 Target SDK 版本升级到 30 后,哔哩哔哩 App 会在模拟 SD 卡下Documents目录内写入environment.pub,并在Documents目录下创建一个数字命名的目录并在其中写入environment.pubenvironment.priv两个文件。这些行为无法被阻止。

找了一堆安卓开发者文档也没有找到Documents目录的具体说明,也不知道应用是否有权访问其他用户在Documents下创建的文件,有没有懂安卓开发的 V 友说一下。

2870 次点击
所在节点    分享发现
12 条回复
vmebeh
2021-05-20 08:53:57 +08:00
删了文件建个同名文件夹看行不行
ho121
2021-05-20 08:55:17 +08:00
谷歌政策在这里 https://developer.android.com/about/versions/11/privacy/storage 当然只限制上架 Google Play 的应用。如果是国内,还是比较随意的。
brMu
2021-05-20 09:17:20 +08:00
把存储权限关了就可以了
yunfeng17
2021-05-20 11:15:26 +08:00
了解
janus77
2021-05-20 11:21:28 +08:00
这个目录就是共享用的,估计是做统计和追踪用,把储存权限禁用就行
dingwen07
2021-05-20 11:27:43 +08:00
@janus77 #5 存储权限禁用了也能写
yujiang
2021-05-20 13:11:29 +08:00
看起来像极光 pushSDK 的流氓行为
iminto
2021-05-20 13:34:10 +08:00
okakuyang
2021-05-20 13:35:27 +08:00
Documents 目录就是放文档类型文件的,就像 Download 一样,高版本安卓不需要申请权限也能写入文件。
“请勿为搭载 Android 10 或更高版本的设备不必要地请求存储相关权限。您的应用可以提供明确定义的媒体集合,包括 MediaStore.Downloads 集合,而无需请求任何存储相关权限。例如,如果您正在开发一款相机应用,您无需请求存储相关权限,因为您的应用拥有您将写入媒体库的图片。”
delpo
2021-05-20 17:54:47 +08:00
AOSP Android 11 + play 版 bilibili 复现成功,没有给 app 存储权限,不过我的情况是它会在 Documents 目录下创建四个以数字为名字的文件夹,文件夹里没有文件,数字似乎是随机的,看着像是追踪 id

因为 bilibili 的 target api 是 30,已经强制开启分区存储了,其他 app 没有读取外部存储权限的话应该是没有办法直接读取这几个文件夹的,但是根据官方文档,可以通过 fileprovider 临时授权其他 app 使用

目前还没有发现其他 app 有类似的行为,如果有新发现的可以贴一下
dingwen07
2021-05-20 18:47:53 +08:00
@delpo #10 对,是还会有几个文件夹,但是只有一个里面有内容。理论上确实不会被其他应用访问,而且卸载重装哔哩哔哩后应该也不会再有权限访问。Documents UI 是很明显的,问题应该不大。所以完全不知道哔哩哔哩在干啥
whenov
2021-09-28 16:06:05 +08:00
看来即便所有 app 都迁移到 Target API 30,也还是需要装 Storage Isolation

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

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

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

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

© 2021 V2EX