Android 有没有办法可以查出一个文件(夹)是哪个应用创建的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eyeshuaji
V2EX    Android

Android 有没有办法可以查出一个文件(夹)是哪个应用创建的?

  •  
  •   eyeshuaji 2023-01-09 15:09:00 +08:00 14233 次点击
    这是一个创建于 1085 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有些文件管理器会在文件夹的图标上附上应用图标,表明这个文件夹由该应用生成

    这个的原理又是什么?
    15 条回复    2023-01-10 05:48:21 +08:00
    AoEiuV020CN
        1
    AoEiuV020CN  
       2023-01-09 15:32:36 +08:00
    写死的吧,
    比如 ES ,会在 /sdcard/backups 文件夹用上自己 ES 的图标,
    因为 ES 确实会生成这个文件夹,
    并不管这个文件夹实际上是谁生成的,
    OkotoO
        2
    OkotoO  
       2023-01-09 16:39:01 +08:00
    相似的,MT 管理器会在 Android/data 下给文件夹附上对应包名的图标,但并不代表这个文件夹一定由该应用生成
    还有较老的 Android 手机里,厂商预装的文件管理常常会看到标着 “我是 MT” 字样的文件夹(现在可能也还有)

    其次在 Linux 中也没有相似的实现(似乎?),(在我认知范围内)顶多就是看到拥有这个文件夹的用户组罢了
    selca
        3
    selca  
       2023-01-09 16:39:21 +08:00
    很多都是基于配置式的,人工标记某个文件夹是哪个 app 生成的,然后下发到文件管理器。

    还有一部分是基于包名来识别的,一部分文件夹本身就跟包名一样
    lcy630409
        4
    lcy630409  
       2023-01-09 16:50:12 +08:00
    人工智能
    大部分靠人工,知名软件的包名随处可查,给他相应的 logo 就行,你自己写一个自己用的应用 就没这待遇了
    LxnChan
        5
    LxnChan  
       2023-01-09 16:53:21 +08:00
    ES 的原理是下载一个包含文件夹名和包名的数据库,然后在本地提取图标并显示在前端。
    顺带一提小米的自带文件管理用的也是 ES 的数据库和一样的原理。
    litmxs
        6
    litmxs  
       2023-01-09 16:54:15 +08:00 via Android
    有什么法子能监控文件创建?
    根目录下总是有一些 "deviceId.txt" ".turing.dat"
    ".gs.fs5"这样的文件夹,不知道是哪个 app 创建的
    cxsz
        7
    cxsz  
       2023-01-09 16:59:36 +08:00
    @litmxs #6 监控比较难,但可以限制创建,有个 app 叫 存储空间隔离,可以强制为每个 app 单独设置目录(一般指定为 Android/data/包名 /),防止它在 sdcard 目录下创建文件夹和文件
    需要 root 权限
    ysc3839
        8
    ysc3839  
       2023-01-09 19:12:27 +08:00 via Android
    @cxsz 但是存储空间隔离就有监控功能
    systemcall
        9
    systemcall  
       2023-01-09 21:00:05 +08:00
    不 hook 相关 API 无法做到
    安卓应用一般是跑在不同的用户上,但是读写 sd 卡都是通过 sdcardfs 来进行,不 hook 的话没有什么好办法来追踪
    存储空间管理似乎不开源,应该是 hook 了 sdcardfs
    lifansama
        10
    lifansama  
       2023-01-09 21:04:59 +08:00 via Android
    cxsz
        11
    cxsz  
       2023-01-09 21:17:21 +08:00
    @ysc3839 #8 好吧,可能我没注意到,再去看看
    LaTero
        12
    LaTero  
       2023-01-09 21:52:55 +08:00 via Android
    @litmxs inotify ,不过很久以前折腾的时候发现有的内核会阉割掉。
    icedx
        13
    icedx  
       2023-01-09 21:53:04 +08:00
    查是肯定查不出来的
    但是可以监控

    https://developer.android.com/reference/android/os/FileObserver

    不过这个东西是个半残的 API
    需要自己递归提交对所有文件夹的监视
    eyeshuaji
        14
    eyeshuaji  
    OP
       2023-01-09 23:06:39 +08:00
    感谢兄弟们解答
    dingwe07
        15
    dingwen07  
       2023-01-10 05:48:21 +08:00 via iPhone
    媒体文件肯定有记录,毕竟软件可以始终访问自己创建的媒体
    其他的文件就真的不好说了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3288 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 10:56 PVG 18:56 LAX 02:56 JFK 05:56
    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