我有一个要监视的进程的 UID,为此我需要以编程方式获取 5 元组(源 IP 地址、目标 IP 地址、源端口号、目标端口号和使用的协议)并且没有root访问权限。
这甚至可能吗?(如果是,如何?)
先感谢您
//Q
由于 Android 是基于 Linux 的,因此 /proc/net/ 中有四个文件。TCP、TCP6、UDP 和 UDP6 的一个分别保存所有连接的信息及其对应的进程 ID。为了获得这些信息,我首先通过以下方式获得了所有已安装应用程序的列表
ActivityManager actvityManager = (ActivityManager)
this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();
然后只需将进程名称与您感兴趣的进程进行匹配以获取 proc id 并解析 tcp 文件以匹配与进程 id 的连接。