FC2ブログ

Audio Components and the Application Sandbox メモ

Audio Components and the Application Sandbox メモ

このテクニカルノートはどのようにオーディオコンポーネントシステムへのリソースの使用量要件を伝える方法と、
システムはホストアプリケーションのサンドボックスへのアクセスを可能にするオーディオコンポーネントのリソース
使用量の要件とリソース間の競合を解決するためにこの情報を利用することができますについて説明します。

Audio Components vs. the Application Sandbox
アプリケーションサンドボックスでは、そのジョブが危険にさらさアプリケーションによってシステムに行うこと
ができる損害を含むようになっているセキュリティ技術です。
これは自発的にそのようなファイルシステム、ネットワーク、他のプロセスやドライバなどとの通信などのシステムリ
ソースへのアクセスをなくすアプリケーションによって行われます。アプリケーションは、そのコード署名を介してア
プリケーションに接続されているエンタイトルメントを経由してへのアクセスを必要としているサービスを示しています。
システムは、コード署名からこれらのエンタイトルメントを読み込んで、サンドボックスの制限が適用されます。
オーディオコンポーネントは、そのようなオーディオ信号処理、符号化/復号化オーディオデータ、音声ファイルの解析、
などなどのタスクを実行できるコードの独立したバンドルです。アプリケーションがこれらの能力を活用するために、
そのプロセスにオーディオコンポーネントをロードします。オーディオコンポーネントは、任意のコードのように、
そのジョブを実行するためには、さまざまなシステムリソースへのアクセスが必要な場合があります。これは、
ホストアプリケーションのサンドボックスへとリソースをオーディオコンポーネントのニーズアクセスへのアクセスを
許可するリソース間の競合の可能性を設定します。

About Audio Components and the Component Manager
OS X 10.6では、Audio Unitフレームワークは、ホストアプリケーションでオーディオコンポーネントをロードし、
操作するためのAudioComponent APIを追加しました。 AudioComponent APIは、これらのタスクのコンポーネントマネ
ージャの使用をに取って代わる。それはAudioComponent APIは、両方のオーディオコンポーネントスタイルのプラグインと
同様にComponent Managerのプラグインへのアクセスを提供することに注意することが重要です。このように、後で10.6以降
を対象とした全てのアプリケーションがAudioComponent APIに切り替える必要があります。コンポーネントマネージャは、
正式にOS Xマウンテンライオンのように推奨されていません。
以前のシステムをターゲットとするアプリケーションについては、推奨されるアプローチは、Mac OS X10.6以降で実行されてい
る場合AudioComponent APIを使用すると以前のシステムで実行されている場合、条件付きでのComponent Managerにフォー
ルバックすることである。

Important
ホストアプリケーションでAudioComponent APIを使用しては、このテクニカルノートで説明されてサポートを活用する必要があります。

Note
オーディオコンポーネントは、バイナリがOS X10.7およびそれ以降のオーディオコンポーネントのプラグインとして以前のシステム上
のComponent Managerのコンポーネントとしてデプロイすることができますように構築することができます。詳細について
はテクニカルノートTN2276を参照してください。

Important
唯一のオーディオコンポーネントのプラグインは、サンドボックス化されたプロセス内で開いて、安全な自分自身を宣言することができます。
すべてのComponent Managerのコンポーネントは、サンドボックスプロセスで開くように安全であると想定されます。

Sandbox Safe Audio Components
"サンド安全オーディオコンポーネント"は、ファイルシステム、ネットワーク、カーネル内のドライバなど、すべてのシステムリソースへ
のアクセスが最も厳しく制限するサンドボックスを持つプロセスで正しく機能することができますオーディオコンポーネントになるように
定義され縮小されています。このようなオーディオコンポーネントはサンドボックス違反がコンソールログに記録されることはありません。
オーディオコンポーネントは、それが含んでいるバンドルのInfo.plistに位置し、その説明の辞書に"sandboxSafe"キーを含んでいること
によって安全なサンドボックスであることをシステムに示します。このキーは、定数、kAudioComponentFlag_SandboxSafeとオーディオ
コンポーネントのAudioComponentDescriptionのcomponentFlagsフィールドに反映されます。
オーディオコンポーネントはまた、オーディオコンポーネントのAPI呼び出し、AudioComponentRegister()を使って動的にシステムに
登録することができます。呼び出し側がそのようなオーディオコンポーネントはフラグを設定することにより、安全なサンドボックスである
ことをシステムに通知し、kAudioComponentFlag_SandboxSafeは、AudioComponentDescriptionで)(AudioComponentRegister
に渡される。リスト2は、上記のMyExampleAUから同じ情報を使用して動的登録を示しています。

Sandbox Safe Audio Components vs. the File System
その使用のオーディオコンポーネントがサンド安全ではないになり、最も一般的なシステムサービスは、ファイルシステムです。このように、
オーディオコンポーネントは、システムの使用は、標準ユーザーが特定のディレクトリを検索するために必要なファイルだけでなく、
そのようなNSSearchPathForDirectoriesInDomains()などのAPIサービスを検索できるように保存するダイアログを開きま
す&提供しなければならない。
オーディオコンポーネントには、ファイルへの永続的な参照を扱うためのセキュリティスコープのブックマークを使用する必要があります。
セキュリティスコープのブックマークの詳細については、セキュリティスコープブックマークとアプリケーションサンドボックスの
デザインガイドにある永続的なリソースへのアクセスを参照してください。
永続的なストレージのためのsecurityscopeのブックマークを作成する例をリスト3およびセキュリティスコープブックマーク
はリスト4に示されている解決で示されています。

Audio Components That Are Not Sandbox Safe
オーディオコンポーネントはサンド安全であることが要件を満たしていない場合、それはへのアクセスを必要とするシステムリソ
ースシステムに宣言する必要があります。これは、 "resourceUsage"キーを含むバンドルのInfo.plistに記述辞書を用いて行われます。
"resourceUsage"の値がオーディオコンポーネントへのアクセスを必要とするシステムリソースを列挙するいくつかの定義された
キーを持つ辞書ですが、これらは以下のとおりです。
"iokit.userクライアント"キーを押します。このキーは、オーディオコンポーネントが開きますIOKitユーザーのクライアント
オブジェクトについて説明します。それはオーディオコンポーネントが接続を開く必要があることをユーザクライアント "クラス名
の配列です。
"マッハlookup.global名"キーを押します。このキーがオーディオコンポーネントに接続する必要があるマッハサービスについて
説明します。それはサービスの名前の配列です。これらのサービスはbootstrap_look_up()または
xpc_connection_create_mach_service()を介して検出XPCサービス経由で見られる直接的なマッハ·サービスであること
に注意してください。
"network.client"キーを押します。このキーは、オーディオコンポーネントはネットワークからデータを受け取ることを示し
ています。その値はブール値です。
"一時exception.files.all.read書き込み"キーを押します。このキーは、オーディオコンポーネントは、ファイルシステムへ
の任意のアクセスが必要であることを示すブール値です。これは、まだセキュリティスコープのブックマーク、そして/または、
発見へのアクセスとファイル·システム上のファイルに永続的な参照を格納するための標準のファイルダイアログの使用法の使用
を採用していないオーディオコンポーネントの下位互換性のためのものです。将来のOSリリースでは、このキーはサポートされません。
これらのキーのいずれもオーディオコンポーネントの要件を記述するのに適切でない場合には、説明の辞書のいずれかに存在す
べきではないか、または空である必要があります。
システムは、ホストプロセスのサンドボックスが許可するものとオーディオコンポーネントによって提供されるリソース使用状況の
情報を比較します。オーディオコンポーネントのリソース使用量が完全にサンドボックスで許可されている場合、オーディオコ
ンポーネントは、そのプロセスのサンドボックスは安全と見なされます。このようなオーディオコンポーネントは自動的にフラグ
があります、kAudioComponentFlag_SandboxSafeはそれに設定されていて、それは、常にそのホストプロセスに読み込まれる
ように許可されます。
リスト5は、リソースのすべての4つの種類が必要です。AudioUnitの例では、辞書を示しています。

Important
動的に登録されたオーディオコンポーネントはそのリソースの使用を宣言することはできません。これは、いずれかのサンドボック
ス金庫またはAudioComponentDescriptionでkAudioComponentFlag_SandboxSafeコンポーネントフラグの有無によって示
されていません)(AudioComponentRegisterに渡されます。

Hosting Audio Components in a Sandboxed Application
オーディオコンポーネントのロードについては、サンドボックス化されたアプリケーションが取ることができるいくつかのアプロ
ーチがあります。最も簡単な方法は、サンドボックスの安全なオーディオコンポーネントのロードをサポートするアプリケーション
のためのものです。これは、ロードするオーディオコンポーネントを検索する場合)AudioComponent API呼び出し、
AudioComponentFindNext(に渡さAudioComponentDescriptionのフラグ、kAudioComponentFlag_SandboxSafeを
設定することによって達成することができます。
アプリケーションがサンドボックスセーフではありませんオーディオコンポーネントを開くしようとする場合、アプリケーション
は資格 "com.apple.security.temporary-exception.audioユニット·ホスト"で署名する必要があります。このエンタイト
ルメントは失敗していないアプリケーションがサンドボックスは安全ではありませんオーディオコンポーネントを開きますしようとする。
"com.apple.security.temporary-exception.audioユニット·ホスト"エンタイトルメントを持つアプリケーションがサンド
ボックスは安全ではありませんオーディオコンポーネントを開こうとすると、システムがユーザにプロセスがしようとしていること
を示すダイアログが表示されますサンドボックスは安全ではありませんオーディオコンポーネントを開きます。
ユーザーがアクションを承認しない場合は、アプリケーションが安全なサンドボックスはありませんオーディオコンポーネントを
開こうとすると、次回、再びダイアログボックスを開いている試みは失敗し、ユーザーが表示されます。ユーザーがアクションを
承認した場合、システムは、ホストアプリケーションのサンドボックスは無効になりますオーディオコンポーネントを開こうとする
と、正常に実行され、サンドボックスは安全ではありませんオーディオコンポーネントを開くには、それ以上の試みは、ダイアログ
を見てユーザーの操作なしで成功します。また、システムは、アプリケーションが将来的には同じオーディオコンポーネントを開
こうとする場合、それはユーザーにダイアログを表示せずに成功するようにユーザーの応答を覚えています。
多くのアプリケーションは、さまざまなオーディオ·コンポーネントとその機能のリストを構築します。それが何を見つけるために
オーディオコンポーネントを照会すると、オーディオコンポーネントを開く必要があるので、これは、アプリケーションが照会オー
ディオコンポーネントのいずれかを使用しない場合でも削除するには、アプリケーションのサンドボックスを引き起こす可能性があります。
コンポーネントを照会中に、アプリケーションのサンドボックスの破棄を防ぐため、新しい
AudioComponentCopyConfigurationInfo()APIを使用することができます。このコールは、オーディオコンポーネントの
機能に関する情報を含む辞書を返します。この辞書で返されたキーは、オーディオコンポーネントの種類によって異なります。
オーディオコーデックとオーディオファイルのコンポーネントについては、定義されたキーがありません。オーディオユニットには
、キーがで定義されており、オーディオユニットは、カスタムビュー(
kAudioUnitConfigurationInfo_HasCustomView)とチャネル構成
(kAudioUnitConfigurationInfo_ChannelConfigurations)を持つオーディオユニットがするように構成することができ
るかどうかなどのようなものが含まれています。 姉妹サイトだよ! よかったらみてね!
スポンサーサイト



スマホニュース 20120802

Windows 8がRTMに 開発者は8月15日から入手可能

ローソン、Androidタブレットを1600台導入――店舗指導員の業務を効率化

感謝の気持ちをSNSで贈る「giftee」がauスマートパスに登場

NTTデータ先端技術、IPv6機器に対応したセキュリティ監視サービス開始 姉妹サイトだよ! よかったらみてね!
twitter
twitter アカウント @drum_kuroneko 気軽にフォローしてください。
誰でも簡単に開発ができます!!
人気ナンバー1
自己紹介

yuutyan0205

プロガー:yuutyan0205
きままな自由人です。

たまにプログラミングを行っています。

仕事ください・・・

開発者アプリ一覧 気になったらダウンロードしてください。
開発環境おすすめ
カレンダー
07 | 2012/08 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
最新記事
月別アーカイブ
カテゴリ
アクセスランキング
[ジャンルランキング]
コンピュータ
718位
アクセスランキングを見る>>

[サブジャンルランキング]
マック
43位
アクセスランキングを見る>>
訪問者数
現在の訪問者数
現在の閲覧者数:
全記事表示リンク

全ての記事を表示する

相互リンク希望の方とご質問ある方ご連絡ください。

名前:
メール:
件名:
本文: