サードパーティの開発者が XPC または Mach を介して起動エージェントやデーモンと対話する方法があるかどうか疑問に思っていました。私の理解では、サードパーティは XPC の辞書形式を知っているか、Mach の .defs ファイルにアクセスできる必要があります。これらのいずれかは、プリインストールされている起動サービスで利用できますか? そうでない場合、コードを介してサービスと対話する他の方法はありますか?
1602 次
1 に答える
2
あなたの理解は正しいです。Machの場合、.defsファイルはMach Interface Generator(MIG)の入力として使用されます。これは、machメッセージの引数のシリアル化、mach_msgの呼び出し、応答の待機、および応答の逆シリアル化に使用されるCコードを作成します。XPCはまた、舞台裏でマッハメッセージを使用します(Appleは実際にはそれを教えてくれませんが)。
Appleは、プレインストールされている起動サービスについては何も表示しません。それらはlaunchd自体のソースを提供します(ただし、提供されていないlibxpc.dylibのため、最新バージョンはコンパイルされません)。
あなたができることは、mach_msg(または上にあるxpc_ *メッセージ関数-ほとんどが非同期であり、実際のメッセージはGCDスレッドによるものであるため、少し難しいかもしれません)をフックすることです。
于 2012-08-30T22:50:23.157 に答える