監視したいプロセスのUIDがあり、そのためには5タプル(送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、および使用中のプロトコル)をプログラムで取得する必要があります。ルートアクセスなし。
これも可能ですか?(もしそうなら、どうやって?)
前もって感謝します
// Q
Android は Linux ベースなので、/proc/net/ に 4 つのファイルがあります。TCP、TCP6、UDP、および UDP6 用に 1 つずつ、すべての接続とそれに対応するプロセス ID の情報を保持します。この情報を取得するために、最初にインストールされているすべてのアプリのリストを取得しました
ActivityManager actvityManager = (ActivityManager)
this.getSystemService( ACTIVITY_SERVICE );
List<RunningAppProcessInfo> procInfos = actvityManager.getRunningAppProcesses();
次に、関心のあるプロセスとプロセス名を照合してプロセス ID を取得し、tcp ファイルを解析して接続とプロセス ID を照合するだけです。