yukiww233
V2EX  ›  Android

Android Q dp2 已经默认隔离应用存储

  •  1
     
  •   yukiww233 · Apr 4, 2019 · 21554 views
    This topic created in 2778 days ago, the information mentioned may be changed or developed.
    读写外置存储权限分成[音乐][照片和视频]两个权限
    未适配 Q 的文件管理器已经无法访问到公共存储空间
    55 replies  •  2019-04-24 19:59:16 +08:00
    gz911122
    gz911122
    Apr 4, 2019
    1
    不错啊这个改动
    honeycomb
    honeycomb
    Apr 4, 2019 via Android
    3
    普大喜奔!

    beta1 需要改一个设置,重启后才会启用隔离应用存储。
    Vegetables
    Vegetables
    Apr 4, 2019 via Android
    4
    棒
    pmispig
    pmispig
    Apr 4, 2019
    5
    就等解决不给权限不让用的问题,就可以转安卓了,iPhone 这狗屎信号去死吧
    expy
    expy
    Apr 4, 2019
    6
    补上链接,https://developer.android.google.cn/preview/privacy/scoped-storage
    共享集合好像还能拉,而且不用给权限。
    6388xE5FRKTNUT9x
    6388xE5FRKTNUT9x
    Apr 4, 2019 via Android
    7
    好事,鉴于某些 app 的流氓表现,放沙盒都不为过
    honeycomb
    honeycomb
    Apr 4, 2019 via Android
    8
    @pmispig 不给权限不让用的问题应该还是解决不了(如果不考虑 appops )。

    但是最关键的两个内容都已经有比较妥善的方案了,所以还是不错的:
    1,设备识别码(不再提供)
    2,公用存储(像 iOS 那样按应用隔离)
    VZikl1
    VZikl1
    Apr 4, 2019
    9
    更新过后 微信能正常打开
    des
    des
    Apr 4, 2019
    10
    终于有了,不然真的是要被这些 app 气死了
    love4taylor
    love4taylor
    Apr 4, 2019 via Android
    11
    QQ, Wechat, Bilibili 等一票 App 无法获取媒体文件了
    pmispig
    pmispig
    Apr 4, 2019
    12
    @honeycomb 如果官方愿意做其实不难,就看 google 的想法
    daozhihun
    daozhihun
    Apr 4, 2019 via Android
    13
    太棒了,流氓垃圾应用总算不能乱拉屎了
    hhhsuan
    hhhsuan
    Apr 4, 2019 via Android
    14
    targetsdkversion 29 的应用才会限制
    maomaomao001
    maomaomao001
    Apr 4, 2019❤️1
    15
    话说,有没有一种方案,app 要的权限都给
    那存储做个例子

    给存储权限,只不过呢,可选择给模拟环境,或者真实的
    给模拟环境的话,这个 app 始终能拿到一个伪造的类似空白的安卓机那样的文件目录 (没有个人文件了)
    这样不就可以完全避免 app 偷偷窥探用户隐私了吗?

    形象一点的说,
    假设有个 app A,不给存储权限不让用,然而给了权限之后这个 A 又会偷偷的访问 tencent 目录 (或者其他应用的目录等),获取用户信息,窃取隐私,
    所以有没有办法,既给 App 权限,又不让它拿到真实的


    通讯录权限类似
    zmz125000
    zmz125000
    Apr 4, 2019 via Android
    16
    @maomaomao001 xprivacy
    love4taylor
    love4taylor
    Apr 4, 2019 via Android❤️1
    17
    @hhhsuan
    >The restrictions on accessing files in external storage apply only to apps that target Android Q, or apps that are newly installed on a device running Android Q.

    注意看 or 后面的...
    exip
    exip
    Apr 4, 2019 via Android
    18
    @maomaomao001 你说的不就是 app ops 的功能嘛
    hhhsuan
    hhhsuan
    Apr 4, 2019
    19
    @maomaomao001 #15 Android Q 就是这样,给每个 app 搞了个沙盒。
    taikobo
    taikobo
    Apr 4, 2019❤️1
    20
    Q 的四项更新:剪贴板后台 app 无法访问,权限可以仅 app 前台时授权,默认不给 imei 码,再加上这个存储权限管控
    可以说 android 的隐私保护算是从无到有了
    ysc3839
    ysc3839
    Apr 4, 2019 via Android
    21
    @pmispig @honeycomb 不给权限不让用是无法解决的,除非不再提供这个权限。
    即使用 App Ops 忽略了某个权限,应用也能发现读出来的数据是空的从而拒绝工作。只有返回一个假的数据才行。
    longaiwp
    longaiwp
    Apr 4, 2019
    22
    @hhhsuan 你先看清楚,很多项都是针对 Android Q 完全禁止的,不看 target 版本
    redsonic
    redsonic
    Apr 4, 2019
    23
    然而国产魔改 android 到时候仍然会给这些大型流氓 app 开白名单。只要 android 还是开源的,权限这个问题无解。
    Duolingo
    Duolingo
    Apr 4, 2019 via Android
    24
    @maomaomao001 storage redirect
    wangxiaoaer
    wangxiaoaer
    Apr 4, 2019
    25
    [音乐][照片和视频] 这是什么逻辑啊? 普通 pdf 等文件该放到哪里呢?
    yukiww233
    yukiww233
    OP
    Apr 4, 2019
    26
    @wangxiaoaer #25
    对于照片和视频共享集合,请使用 MediaStore.Images 或 MediaStore.Video。
    对于音乐共享集合,请使用 MediaStore.Audio。
    对于下载内容共享集合,请使用 MediaStore.Downloads。

    用户自己放的文件只能通过 DocumentsProvider 选取了
    orangeade
    orangeade
    Apr 4, 2019 via Android
    27
    @redsonic 不用国产不就行了
    honeycomb
    honeycomb
    Apr 4, 2019 via Android
    28
    @ysc3839 确实可以如此反制 appops,但实际这么做的应用非常之少。

    不过就前面提到的公共储存与设备永久识别码的部分来说,Q 的改动属于“不再提供这个权限(能力)”,因此是解决了。

    @wangxiaoaer 参照 iOS 的做法即可
    honeycomb
    honeycomb
    Apr 4, 2019 via Android
    29
    @Love4Taylor 那就无法获取呗,谁让它们不肯用 storage access framework API
    honeycomb
    honeycomb
    Apr 4, 2019 via Android
    30
    @hhhsuan no,任何 targetsdk 的应用都会受到该限制
    taresky
    taresky
    Apr 4, 2019 via iPhone
    31
    @pmispig #4 除非 android 禁止第三方 app 商店
    orangeade
    orangeade
    Apr 4, 2019 via Android
    32
    @taresky 那还不如直接砍掉 Android 算了
    wangxiaoaer
    wangxiaoaer
    Apr 4, 2019
    33
    @yukiww233 #26 就是说假如希望发送自己的文件,首先 qq 要申请 download 权限,通过自己要把文件放到 download 文件夹里面?

    这样是挺好,但就是有点麻烦,而且学习成本有点高。

    另外,文件管理器这种应用怎么办?
    yukiww233
    yukiww233
    OP
    Apr 4, 2019
    34
    @wangxiaoaer #33
    并不行,对应权限只能访问其他应用共享到 shared collection 的文件,没在 MediaStore 注册文件只能用 document provider 选取。
    按目前的 api 看来第三方文件管理器全挂,国内的 rom 大概率也不会开启这个特性
    kwanzaa
    kwanzaa
    Apr 4, 2019
    35
    @orangeade Fuchsia:你这么说我可不困了啊
    cstj0505
    cstj0505
    Apr 4, 2019
    36
    imei 不给我记得有些应用是无法启动的吧
    hmzt
    hmzt
    Apr 4, 2019
    37
    感觉意义不大,还很麻烦,到时候 app 不给权限不让用还不是要给
    应该禁止 app 主动获取数据,必须由用户发起,另外设置即使用户发起也不允许被其他 app 访问的私密数据.
    clouds
    clouds
    Apr 4, 2019 via Android
    38
    其实对于工作用手机来说,国内使用安卓手机还有一个推送问题。这个只能期待工信部主推的统一推送联盟起作用了。
    HFX3389
    HFX3389
    Apr 4, 2019❤️1
    39
    @clouds #38 我觉得这个统一推送联盟暂时起不了太大的风浪。

    统一推送联盟的“绿色 APP 公约”:

    1.从维护国家和全行业整体利益的高度出发,严格遵守国家的各项法律法规,积极进行内容审核和把控,切实践行社会主义核心价值观,为用户提供积极健康的内容,创造良好的文化环境。

    2.Target SDK Version 最低:24。

    3.不在启动应用时强制请求『读取手机状态和身份( READ_PHONE_STATE )』权限。

    4.App 限制交叉唤醒、链式启动。除用户的主动交互触发外,避免启动其它应用未处于运行中的进程。

    5.( Target SDK Version >= 28 可豁免) App 让设备 CPU 尽可能处于休眠状态,请求唤醒 CPU 的周期性任务时间间隔尽可能大于 1 小时,并避免在不必要的时间段(如夜间)继续调度周期性事件。

    6.( Target SDK Version >= 26 可豁免) App 避免不必要常驻后台的行为。在应用进入后台的短时间内须停止所有后台服务,且在除了收到广播和正常触发的后台行为期间不可以再启动新的后台服务。

    ----

    除了第 1、2 条以外都莫得人去遵守!特别是第 3、4 条!

    另外,“绿色 APP ”的“三大权益”:



    我认为对于 BAT 之类的厂商来说,有跟没有一样!

    第 1 条:统一推送联盟官方微信公众号,官方微博的定期公告展示。

    (都依托在微信和微博这两个大厂 APP 上了,我觉得腾讯、新浪不会加入!)

    第 2 条:统一推送通道层接口标准及 SDK 的优先试用权

    (大厂的推送难道还要依靠“统一推送通道”,不见得吧,即使微信不用“统一推送通道”用自己的通道,难道系统还能强制杀掉微信的推送通道服务?用户也不会用这种系统吧)

    第 3 条:统一推送联盟旗下相关业务的优先申请试用权限。

    (这个我认为一样对大厂没啥用,除非相关业务获得的数据是大厂无法获得的)

    ----

    以上都是个人猜测!毕竟这种依靠自觉的类似“公约”“约定”在安卓这个平台上并没有多大实际的效果!安卓这个平台就是最有力的证明!
    HFX3389
    HFX3389
    Apr 4, 2019
    40
    改一下:
    阿里巴巴(中国)有限公司
    北京百度网讯科技有限公司
    深圳市腾讯计算机系统有限公司
    系统一推送联盟的“副理事长”
    ----
    新浪网技术(中国)有限公司
    系统一推送联盟的“会员单位”
    clouds
    clouds
    Apr 4, 2019 via iPhone
    41
    @HFX3389 在国内,不一定哦。工信部还是有点用的吧
    xingda920813
    xingda920813
    Apr 4, 2019
    42
    这个改变总体上我认为有 3 点欠考虑的地方:

    1, 对于第三方文件管理器, SAF 提供的 API 过于有限 (尽管有 OPEN_DOCUMENT_TREE), 无法让全功能的文件管理器 (如 Root Explorer, Total Commander, Solid Explorer 等) 改造后继续像以前版本一样工作; 备份管理器等工具应用也会受重创;
    (系统自带的"文件"使用了 MANAGE_DOCUMENTS 等签名级别的权限, 非普通 App 可获取)

    2, SAF 需使用 ContentProvider API, 需要进行 Binder 通信, 相比 File API 性能上存在劣势;

    3, SAF 不在 NDK 中, 不能在 native 代码 (C/C++) 中访问;

    我认为最好的是把非沙盒化的存储权限 (以前版本中的 WRITE_EXTERNAL_STORAGE) 做成一个特殊权限, 路径在"设置"->"应用"->扩展菜单->"特殊访问权限"->存储 (例), 像设备管理器权限一样, 但不提供 Intent 跳转, 用户只能手动去设置一级一级进入. 这样引导用户操作的成本会很高, 可阻止普通的非工具类应用滥用或强制索取;

    或者在 Google Play 中上架为工具类应用的 App 才可申请 STORAGE 权限.
    huaxianyan
    huaxianyan
    Apr 4, 2019
    43
    @terrytw 我觉得剪贴板权限可控是 OK 的,一刀切就很麻烦了
    nanaw
    nanaw
    Apr 4, 2019
    44
    @huaxianyan 还真不能可控。对国内来说 可控==滥用 非要使用应该以普通用户无法实现的方式授予( adb,root )才不会被滥用
    @xingda920813 这个直接用 adb 或者 root 才能授予特权解决吧。反正只要普通用户能授予的权限国产应用必然会滥用它
    Maskeney
    Maskeney
    Apr 5, 2019
    45
    真是棒棒
    Maskeney
    Maskeney
    Apr 5, 2019
    46
    但是我感觉国内厂商总会有各种办法来绕过的
    shenmegui
    shenmegui
    Apr 5, 2019 via Android
    47
    我几年前就说过,安卓只有打倒重来一条路。


    太太太晚了。
    0m02Lq4RBh3dxaYv
    0m02Lq4RBh3dxaYv
    Apr 5, 2019 via Android
    48
    @pmispig 🤙👆👍👍👍👍
    wangxiaoaer
    wangxiaoaer
    Apr 5, 2019 via Android
    49
    @shenmegui 失望了,权限问题搞了多少年了,现在跟屎一样,解决不了退出问题,真不知道他们的脑回路是什么。

    现在又来搞存储使用的问题,不看好。
    evagreenworking
    evagreenworking
    Apr 5, 2019 via Android
    50
    还差读取应用列表这个权限没放给用户,没 xprivacy 只能用 shelter 或者 island 替代
    gzxu
    gzxu
    Apr 5, 2019 via Android
    51
    @evagreenworking 用 android.content.pm.PackageManager.MATCH_UNINSTALLED_PACKAGES 参数依然可以访问 Island 外的应用列表,就像用 getprop 依然可以获得 IMEI 一样(至少我的 ROM 上面是这样的,我觉得后者可能是因为 ROM 制作者没注意,留了一个 ro.ril.oem.imei )

    顺便,这个“绿色 APP 公约”就是 Island 的作者最先发起的,牛逼
    gzxu
    gzxu
    Apr 5, 2019 via Android
    52
    #42 @xingda920813 系统级开了权限的话不让上架也影响不大吧,最近百度地图就下架了,也不知道为什么。其实我觉得大家用 /sdcard 无非两个原因,一个是 PM (尤其是第三方 SDK 的代码)要求确实要在应用被删除之后存储 ID (跨应用存储 ID 这个其实方法太多了,不一定需要 /sdcard ),另一个就是"/sdcard"这串字符本身不需要动态生成,可以写成常量,用起来方便省事,一直用一直爽。不过 Google 这么一来,至少开发有底气跟 PM 说“这个功能做不了”了,就像 Oreo 里面对私有 API 的限制虽然可以绕过,但态度就是放在那里一样
    C2G
    C2G
    Apr 5, 2019 via Android
    53
    @maomaomao001 #15 存储重定向可以实现(奥利奥使用体验良好)
    zzzim
    zzzim
    Apr 5, 2019 via Android
    54
    干的漂亮
    lee233333
    lee233333
    Apr 24, 2019
    55
    请问升级 android q 后有通话记录么??我升级后怎么打电话都没有记录。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1135 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 23:27 · PVG 07:27 · LAX 15:27 · JFK 18:27
    ♥ Do have faith in what you're doing.