我正在android中开发防火墙应用程序,我需要根据uid识别应用程序。我创建了一个vpn服务,我能够捕获数据包并获取目标IP地址。
有没有办法从数据包或数据报套接字获取应用程序的uid。
答案 0 :(得分:4)
解析数据包,对于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
答案 1 :(得分:0)
您必须为此编写一些本机代码才能在内核级别进行通信。