V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lfk0000
V2EX  ›  Android

安卓,能否查看是哪个 app 往磁盘写了数据?

  •  
  •   lfk0000 · 2016-10-18 09:48:35 +08:00 · 9099 次点击
    这是一个创建于 2970 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在使用 xInternalSD 整治各种 app 往内部储存根目录下拉屎的坏毛病

    但是有些文件夹(比如 amap ,高德地图缓存,不知道是哪个 app 内置了高德地图生成的)找不到主人,头疼中

    不知道有没有办法可以监控一下?

    ( logcat 会记录文件读写么?如果能,求关键字。。。

    11 条回复    2016-10-19 23:33:15 +08:00
    zachgenius
        1
    zachgenius  
       2016-10-18 10:02:20 +08:00
    估计得要 ROOT 权限,这个我觉得可以开发个
    winterbells
        2
    winterbells  
       2016-10-18 10:36:06 +08:00
    我只知道安卓是支持部分 linux 命令的(要安装 busybox ?非专业人士。。),不过可能需要 root
    wjidea
        3
    wjidea  
       2016-10-18 10:56:09 +08:00
    根据 glances 写一个?
    lfk0000
        4
    lfk0000  
    OP
       2016-10-18 10:56:25 +08:00 via Android
    @winterbells root 和 busybox 都有,谢谢,我去这个思路搜一下...
    honeycomb
        5
    honeycomb  
       2016-10-18 11:42:08 +08:00 via Android
    xposed+xprivacy 可以看相应 API 最近的 API 调用历史
    bluesky139
        6
    bluesky139  
       2016-10-18 12:18:02 +08:00 via Android
    @honeycomb 但是这个应该只能获取 Java 层的调用, native 实现的估计不行。
    mrqyoung
        7
    mrqyoung  
       2016-10-18 12:47:36 +08:00   ❤️ 2
    Android 有一个 FileObserver API 可以监听文件事件,底层据说是 Linux 的 inotify 机制
    https://developer.android.com/reference/android/os/FileObserver.html

    也可以直接看看 busybox 下 inotify

    自己网上抄代码写一个 apk 监听,不过没什么*用因为没 XPosed 只能看看手动删删下次还是一堆 shit ,并且长时间开着监听又怕影响性能,一般只是打开它监听再开 app 看它操作了哪些文件。
    ![Screenshot_2016-10-18-12-29-05.png]( https://ooo.0o0.ooo/2016/10/18/5805a7de1296f.png)
    lfk0000
        8
    lfk0000  
    OP
       2016-10-19 11:36:26 +08:00
    @mrqyoung 这个好,就是想要这种软件。。。
    可以发一份到邮箱么 lfk0000 at gmail.com ,谢谢!
    bluesky139
        9
    bluesky139  
       2016-10-19 12:44:47 +08:00 via Android
    @mrqyoung 那个 FileObserver API 似乎不能监听具体是哪个应用在操作文件。截图的那个 apk 可以放出来么,我想参考下。
    mrqyoung
        10
    mrqyoung  
       2016-10-19 22:54:31 +08:00
    @lfk0000 @bluesky139 刚提交到了 github :
    仓库: https://github.com/mrqyoung/FileMon
    APK : https://github.com/mrqyoung/FileMon/raw/master/app/build/outputs/apk/app-debug.apk

    就是一个 debug 的 apk 没签名当作 demo 试用一下吧,长时间监控还要服务保活
    mrqyoung
        11
    mrqyoung  
       2016-10-19 23:33:15 +08:00
    悲剧了,看了一下代码,达不到监控的要求,使用的是很拙略的 PackageManager.getRunningAppProcesses() 方法获取的第一个 App ,也就是说把当前正在操作文件的锅扔给了当前正在运行的进程列表里面的第一个,并不准确!!!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5672 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 03:32 · PVG 11:32 · LAX 19:32 · JFK 22:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.