1

詳細な情報はインターネット上で見つけることができませんでした。

しかし、私が知る限り、Android のメディア トランザクションを制御するmediaserverプロセスは にあります。/system/bin/mediaserver

たとえば、youtubeアプリケーションでビデオをストリーミングしている間、このメディアサーバーはリモートサーバーへのポートを開き、コンテンツをダウンロードしているように見えます

cat /proc/net/tcp

mediaserver アプリの Linux UID は 1013 で、これは内部 Android UID です。

新しいソケット接続の場合、開いているポートを確認してアプリケーション UID を取得しています

しかし、この mediaserver プロセスの場合、mediaserver がポートを開いているため、UID 1013 を取得します。

問題は、 を呼び出すとgetRunningAppProcesses、このメディアサーバー アプリがリストに表示されないことです。

より具体的には、コマンドgetRunningAppProcesses()の出力でパッケージ名のみを返し、pseg などは表示しませ/system/bin/mediaserver/system/bin/keystore

そのため、どのアプリケーションが原因で mediaserver がリモート サービスへの新しいポートを開くかを知る必要があります。この場合、元のアプリケーション名または pid を取得するにはどうすればよいですか? これが実際にできるのか、それとも Android の制限なのかはわかりませんでした。

4

1 に答える 1