私は同様の問題を抱えており、興味深い観察に出くわしました。
具体的には、packagemaker を使用して kext を含む pkg を作成するときに、pkg 内の kext ファイルとフォルダーのアクセス許可が正しいアクセス許可 (例: rw-r--r--) で作成され、そうでない場合もあります (例: rw-rw-r--)。これはあなたの問題と似ていると思いますが、私は pmdoc を使用せず、常にコマンド ラインから packagemaker を実行します。しかし、私たちが経験している根本的な問題は同じだと思います。
違いを発見するのにしばらく時間がかかりました。kext のコピーが /System/Library/Extensions に存在し、ロードされている場合、pkg は正しい権限を持つ kext ファイルで作成されます。/System/Library/Extensions から kext をアンロードして削除すると、pkg が間違った権限で作成されます。これは非常識です!
私がインストーラーで行っていたことは、あなたが提案したことと似たようなものでした.kextファイルにすべての権限を正しく設定するpostflightスクリプトがあります。ただし、断続的なインストール エラーが発生しているのを見てきました。一部のユーザーでは、インストーラーを実行すると、メインのインストール ウィンドウで成功が報告されますが、別のダイアログが表示され、「システム拡張機能は使用できません」および「不適切にインストールされました」というメッセージが表示されます。その後、再起動後もドライバのロードに失敗します。インストールされた kext のパーミッションが正しいため、postflight スクリプトは正しく機能しています。ドライバーは、kextload を使用して手動で正常にロードすることもできます。
私がこれをたどったのは、インストールされた kext パーミッションが正しくない小さなウィンドウがあるように見えるということです。これは、(間違ったパーミッションを持つ) kext ファイルが正しい場所にコピーされてから、postflight スクリプトが実行されるまでの時間です。
そのため、最終的にこの提案に出くわしました: http://osdir.com/ml/darwin-kernel/2010-03/msg00017.html。kext を /System/Library/Extensions にインストールする代わりに、別の一時的な場所にインストールします。次に、postflight スクリプトで、この一時コピーのアクセス許可を正しい kext アクセス許可に設定し、それを /System/Library/Extensions フォルダーに移動します。まだ試していませんが、うまくいくと確信しています。
または、Vishal が提案することを実行することもできます。しかし、私はその解決策があまり好きではありません。これは、私たちのビルド システムが root が所有するファイルを作成する必要があることを意味します。したがって、変更を加えて再度ビルドするたびに、パスワードを入力する必要があります。ビルド時にパスワードを入力するのは正しくないようです。