有没有第三方工具可以防止安卓 app 删除文件 - V2EX
abc8678

有没有第三方工具可以防止安卓 app 删除文件

  •  
  •   abc8678 Mar 24 via Android 2433 views
    This topic created in 51 days ago, the information mentioned may be changed or developed.
    刚刚看到知乎很多人讨论某团 app 删除照片的事,就想起几年前某音乐删除无版权本地歌曲的现象,这些年都是把在线软件扔进扔进工作空间或 pc 虚拟机,作为纯粹的 mp3 下载器。
    后来在酷安学到一招就是通过 root 执行这条命令
    chattr +a /data/media/0/Music
    就可以防止文件被删。需要解除时就输入这条
    chattr -a
    本来当时想造个 app 里面弄个列表来管理这些“手动只读”的文件夹。于是入门安卓开发...直接劝退,当时没 ai,遇到各种眼花缭乱的玩意和问题就跑了。现在某团这件事又勾起了这档子回忆
    17 replies    2026-03-25 02:09:22 +08:00
    abc8678
        1
    abc8678  
    OP
       Mar 24 via Android
    存储空间隔离 app 不适配外置 tf 卡。要是开启隔离,就会把外置 tf 卡的权限裸奔给 app 随意读写删
    leo72638
        2
    leo72638  
       Mar 24
    好奇,不给某团照片权限也能删吗
    wuzhewuyou
        3
    wuzhewuyou  
       Mar 24
    直接 nas 上在线播放?
    jackOff
        4
    jackOff  
       Mar 24
    简单,自己写 app 听音乐看视频,把文件放到 app 内置空间里
    IlIl
        5
    IlIl  
       Mar 24
    放在沙箱 app 里执行可否?
    Zarhani
        6
    Zarhani  
       Mar 24
    可以考虑搞个网盘( onedrive 或 自建 NAS )自动同步照片
    catazshadow
        7
    catazshadow  
       Mar 24 via Android
    已经把美团删了

    都翻墙了还怕说全名吗
    Ocean810975
        8
    Ocean810975  
       Mar 24
    主流软件都严格限制图片或者说媒体管理权限了吧,只能访问你选中的图片的。我记得淘宝美团抖音都是类似的
    abc8678
        9
    abc8678  
    OP
       Mar 24 via Android
    @Ocean810975 盲猜是用文件权限做的操作,而不是照片权限
    abc8678
        10
    abc8678  
    OP
       Mar 24 via Android
    @Zarhani 有了 nas 但安卓自带的选图器只能选本地图而不能"换源"在线选图。而且很多 app 也不采用系统自带的选图器。再加上家庭宽带的感人上传速度。约等于我没装 nas
    0x0x
        11
    0x0x  
       Mar 24 via Android
    删照片这事,我自己开发的 app 也遇到过。 但是其实我删的是自己 app 的保存的图片。
    大概原因是某个场景需要用到相机,我把照片保存下来了,然后用完了后代码删除本次临时保存的图片。
    这个时候华为就提示我在后台删除照片....
    abc8678
        12
    abc8678  
    OP
       Mar 24 via Android
    一直说这几年缺乏创新的点了。我倒是一直期盼能将文件夹设为只读的权限,让某个 app 访问所有文件时给个只读的选项
    sir283
        13
    sir283  
       Mar 24
    没有办法防止,因为你不知道哪些是恶意删除,哪些是用户删除,哪些是系统删除的,你也无法区分开来,唯一的办法就是不用那些软件,然后再刷个类原生的 offcial 纯净版系统,就这样。
    abc8678
        14
    abc8678  
    OP
       Mar 24 via Android
    @sir283 给个权限开关也行啊。拍照也分为正常拍照和恶意偷拍啊
    sevenyangcc
        15
    sevenyangcc  
       Mar 24
    @abc8678 #14 再牛逼的权限设置也拦不住草台班子的 bug
    Zarhani
        16
    Zarhani  
       Mar 24
    @abc8678 等图片丢了的时候可以再下载回来
    jim9606
        17
    jim9606  
       Mar 25   2
    如果可以,尽量用高版本 Android ,因为高版本通常权限管控更严格,甚至说是 AOSP 对国内用户最重要的内容。国行的 ROM 可能不执行 Play 市场的政策不用 AOSP 的 UI 设计但 AOSP 本身的权限政策是只紧不松的,自分发渠道没人管,只能看 AOSP 的政策。

    高版本 Android+高 TargetAPI 应用是最佳选择,很多隐私限制对高 Target 是强制执行的,无视 Target 强制执行的政策相对慢些但也有。由于 Play 市场有 AOSP 稳定版发布一年内强制执行适配的要求,国内常用有上 Play 的应用基本都服从管理正常上架的,优先用 Play 的版本。例外主要有 QQ ( 2020 断更)、抖音(港版支付用不了)、PDD (查无此人),以及推送可能不工作,可能没办法预载 App Bundle on-demand feature 。

    就算用国内版,一般也不会强行索要在外版要求授权或者禁止申请的权限,所以说哪怕 Play 不进来也是能影响国内生态的,有经验的用户可以回忆下 6/10 年前以前是怎么申请存储权限和手机状态权限的。野鸡 APP 可能还是 10 年前的那副模样。

    (以下内容以 API Level 指代版本,30=Android11 ,34=Android14 )

    具体到照片这事:
    1. 系统&Target 至少 30+ 强制执行分区存储
    2. Target33+ 媒体权限细分,可以使用照片选择器

    当然,坚持用旧版本 APP 也无法获得上述好处,你得自行取舍,或者就多用户/隐私空间吧。另外不要用这些方法跟

    Play 市场政策有以下额外好处
    1. 禁止非核心功能/风控名义获取所有软件包列表,这个权限并非敏感权限而且有变通手段,想拦要靠国行加补丁(所以我是不觉得原生在这点有优势)
    2. 禁止非核心功能/风控名义获取所有文件管理权限
    2. 一年强制适配
    3.(感觉未必审得出来)禁止可执行代码下载
    4. 要求使用 App Bundles (双刃剑,省存储但基本把侧载干没了)
    5. 支持 16K 页
    6. 搞小动作有可能会被 Play Protect 扬了(美团就被整过,虽然我也不信任 Play Protect )

    目前 Play 上面的美团 12.35.236 的 Target 是 35 ,适配了图片选择器,没发现什么问题。
    删照片这事其实跟伸缩摄像头抓包一样其实是老黄历的纯技术问题,但要推动研发流程去改善就是要外部反馈推一下,不然程序说启动就预热相机不好也没人鸟。

    Target30 行为变更,每个版本都有一个列表的:

    https://developer.android.com/about/versions/11/behavior-changes-11

    媒体存储:

    https://developer.android.com/training/data-storage/shared
    About     Help     Advertise     Blog     API     FAQ     Solana     6021 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 92ms UTC 02:10 PVG 10:10 LAX 19:10 JFK 22:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86