0

Android 用のカスタム ファイル アクセス ロガーを作成しようとして問題が発生しています。FileObseverを確認しましたが、特定のファイル リストにアクセスしたプロセスの PID (USERID も有用です) を取得する必要があります。

私もさまざまなオプションを試しましたが、成功しませんでした。

特定のファイルにアクセスした PID でログを記録することはできますか?

よろしく!

4

1 に答える 1

0

PID レポートを Linux の inotify() メカニズム (FileObserver がおそらく基づいているもの) に追加することについていくつかの議論がありましたが、それが実際にマージされて Android に継承されたのか、最初の検索からはわかりません。だった場合、管理者権限を持つモニターの外部 UID に対してのみ機能する可能性があります。

FileObserver を試してから、/proc を介して fd をスキャンすることで lsof を真似ることができます。これは、Android で許可されている範囲 (限定されていますか?) に限られます。ただし、これにより競合状態の問題が発生します。「誰がそれを行ったか」が表示される前に、ファイルが再び閉じられる可能性があります。

これを本当にやりたい場合は、カスタム ROM が必要になる可能性があります。必要なパッチを inotify に適用して、セキュリティ アプリにアクセス許可を付与するか、(そうしたい場合は) レポートのアクセス許可チェックを無効にすることができます。

パッチについてわかったこと - 現在のマージ状況は不明:

http://lwn.net/Articles/307536/

inotify() の直接使用の概要 (PID レポートなし):

http://www.linuxjournal.com/article/8478?page=0,0

于 2012-05-10T18:21:08.097 に答える