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

请教读取用户正在运行的进程的方法

  •  
  •   hcbb · 2023-11-24 23:17:04 +08:00 · 8286 次点击
    这是一个创建于 400 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请问,有其他什么方法可以跳过用户许可直接读取所有进程信息吗?安卓 ndk 可以做到吗?
    5 条回复    2023-11-25 02:22:38 +08:00
    codehz
        1
    codehz  
       2023-11-24 23:40:11 +08:00
    没啥漏洞的话应该是读取不到了,谷歌默认开了/proc“隐私模式”,虽然用 kill 0 的方法能确定有哪些 pid 存活,但是应该是得不到其他信息
    mightybruce
        2
    mightybruce  
       2023-11-25 00:06:33 +08:00
    NDK 这些是做不到了,但是 linux 内核的黑科技 ebpf 可以, 其中对于安卓平台而言,这个项目可以参考。
    https://github.com/yanivagman/BPFroid
    tool2d
        3
    tool2d  
       2023-11-25 00:31:12 +08:00
    ndk 读不到,但是 adb 可以读。

    用 ndk 写一个安卓 arm 版本的 adb, 在用户用户手机打开 wifi USB 调试,连上后,能列出手机所有进程信息。
    lisongeee
        4
    lisongeee  
       2023-11-25 02:16:30 +08:00
    也许可以通过 shizuku 授权调用 IActivityManager::getRunningAppProcesses 来获取进程信息列表

    https://android.googlesource.com/platform/frameworks/base/+/refs/heads/main/core/java/android/app/IActivityManager.aidl#345
    stinkytofu
        5
    stinkytofu  
       2023-11-25 02:22:38 +08:00
    老版本安卓可以, 较新版本安卓, 没有系统权限的情况下, 别想了, 没有可能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2541 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 10:31 · PVG 18:31 · LAX 02:31 · JFK 05:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.