如何从数据包获取uid-Android

Swi*_*ser 4 vpn android network-programming packet

我在android中开发防火墙应用程序,我需要根据uid识别应用程序。我已经创建了一个vpn服务,并且能够捕获数据包并获取目标ip地址。

有什么方法可以从数据包或数据报套接字获取应用程序的uid。

ed9*_*9er 5

解析数据包,对于TCP / UDP,您可以检索(local_ip,local_port,remote_ip,remote_port)元组。然后读取并解析/ proc / net / tcp或/ proc / net / udp,其中包含uid字段。

这是一个所有者uid为10117的回送套接字:

sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
7: 0100007F:8FC5 0100007F:0438 01 00000000:00000000 00:00000000 00000000 10117        0 242607 1 00000000 21 4 26 10 -1
Run Code Online (Sandbox Code Playgroud)


d.k*_*.k. 0

您必须编写一些本机代码才能在内核级别进行通信。