(57)【要約】  複数の実施形態が、モバイルデバイス上のハードウェアリソースアクセスを管理する方法および装置を提供する。方法および装置は、アプリケーションがバックグラウンドで実行されているときの第１アプリケーションによる第１ハードウェアリソースへのアクセスの試みを検出し、第１アプリケーションが第１ハードウェアにアクセスするポリシがないことを決定することと、そのユーザ入力を要求する通知を提供することと、新しいポリシを適宜追加することとを含む。
2021500641.tif 000002
【特許請求の範囲】
【請求項１】
モバイルデバイスにおけるハードウェアリソースアクセスを管理する方法であって、
前記モバイルデバイス上の第１アプリケーションが前記モバイルデバイスの第１ハードウェアリソースにアクセスする許可を付与する第１ユーザ入力を受信し、前記第１ユーザ入力に基づいて、前記第１アプリケーションに対して前記第１ハードウェアリソースにアクセスする許可を付与する段階と、
前記第１アプリケーションに対して前記第１ハードウェアリソースにアクセスする許可を付与した後、前記アプリケーションがバックグラウンドで実行されているときの前記第１アプリケーションによる前記第１ハードウェアリソースへのアクセスの試みを検出すること、および、前記検出に基づいて、
前記モバイルデバイスの第１動作モードを取得することであって、前記第１動作モードは、前記モバイルデバイスがロック状態にあるかロック解除状態にあるかのインジケーションを含む、取得すること、
複数のポリシの中に、前記第１アプリケーションが前記第１動作モード中に前記第１ハードウェアにアクセスする許可を付与するポリシがないことを決定すること、
前記決定に基づいて、前記第１アプリケーションによる前記第１ハードウェアリソースへのアクセスを許可または拒否するユーザ入力を要求する通知を提供すること、
前記通知に応答して第２ユーザ入力を受信すること、および、
前記第１アプリケーションが前記第２ユーザ入力に従って前記第１動作モード中に前記第１ハードウェアリソースへのポリシにアクセスすることを許可または拒否する新しいポリシを前記複数のポリシに追加すること
を行う段階と
を備える方法。
【請求項２】
前記第２ユーザ入力は、前記第１ハードウェアリソースへのアクセスを許可し、前記方法は、前記第１アプリケーションへのアクセスを許可して前記第１ハードウェアリソースにアクセスする段階を更に備える、請求項１に記載の方法。
【請求項３】
前記第２ユーザ入力は、前記第１ハードウェアリソースへのアクセスを拒否し、前記方法は、前記第１アプリケーションへのアクセスを拒否して前記第１ハードウェアリソースにアクセスする段階を更に備える、請求項１に記載の方法。
【請求項４】
前記第１ハードウェアリソースは、マイク入力、カメラ入力、タッチ画面入力、キーボード入力、表示出力、触覚出力、モバイルデバイス位置情報、または近接センサ読み取りを含む、請求項１に記載の方法。
【請求項５】
前記カメラ入力は、赤外線カメラからのものである、請求項４に記載の方法。
【請求項６】
サーバから前記複数のポリシを受信し、前記サーバに前記新しいポリシを送信する段階を更に備える、請求項１に記載の方法。
【請求項７】
アクセスを許可または拒否するユーザ入力を要求する通知を提供することは、前記モバイルデバイスのディスプレイにグラフィカルユーザインタフェースを提供すること、または、前記モバイルデバイスのオーディオ出力を使用して自然言語メッセージを提供することを含む、請求項１に記載の方法。
【請求項８】
前記動作モードは、前記モバイルデバイスにインストールされる１または複数の他のアプリケーションのインジケーション、前記モバイルデバイスで実行中である１または複数の他のアプリケーションのインジケーション、または前記モバイルデバイスの現在位置のうちの１または複数を更に含む、請求項１に記載の方法。
【請求項９】
前記新しいポリシを前記複数のポリシに追加してからある期間が経過したことを決定し、前記決定に基づいて、前記複数のポリシから前記新しいポリシを除去する段階を更に備える、請求項１に記載の方法。
【請求項１０】
グラフィック情報を表示するための画面と、
命令を記憶するメモリと、
前記メモリおよび前記画面と通信する１または複数のプロセッサと
を備えるモバイル電子デバイスであって、
前記１または複数のプロセッサは、前記命令を実行して、
前記モバイルデバイス上の第１アプリケーションが前記モバイルデバイスの第１ハードウェアリソースにアクセスする許可を付与する第１ユーザ入力を受信し、前記第１ユーザ入力に基づいて、前記第１アプリケーションに対して前記第１ハードウェアリソースにアクセスする許可を付与するように構成され、
前記第１アプリケーションに対して前記第１ハードウェアリソースにアクセスする許可を付与した後、前記アプリケーションがバックグラウンドで実行されているときの前記第１アプリケーションによる前記第１ハードウェアリソースへのアクセスの試みを検出すること、および、前記検出に基づいて、
前記モバイルデバイスの第１動作モードを取得することであって、前記第１動作モードは、前記モバイルデバイスがロック状態にあるかロック解除状態にあるかのインジケーションを含む、取得すること、
複数のポリシの中に、前記第１アプリケーションが前記第１動作モード中に前記第１ハードウェアにアクセスする許可を付与するポリシがないことを決定すること、
前記決定に基づいて、前記第１アプリケーションによる前記第１ハードウェアリソースへのアクセスを許可または拒否するユーザ入力を要求する通知を提供すること、
前記通知に応答して第２ユーザ入力を受信すること、および、
前記第１アプリケーションが前記第２ユーザ入力に従って前記第１動作モード中に前記第１ハードウェアリソースへのポリシにアクセスすることを許可または拒否する新しいポリシを前記複数のポリシに追加すること
を行うように構成される、
デバイス。
【請求項１１】
前記第２ユーザ入力は、前記第１ハードウェアリソースへのアクセスを許可し、前記１または複数のプロセッサは、前記第１アプリケーションへのアクセスを許可して前記第１ハードウェアリソースにアクセスするように構成される、請求項１０に記載のデバイス。
【請求項１２】
前記第２ユーザ入力は、前記第１ハードウェアリソースへのアクセスを拒否し、前記１または複数のプロセッサは、前記第１アプリケーションへのアクセスを拒否して前記第１ハードウェアリソースにアクセスするように構成される、請求項１０に記載のデバイス。
【請求項１３】
前記第１ハードウェアリソースは、マイク入力、カメラ入力、タッチ画面入力、表示出力、触覚出力、モバイルデバイス位置情報、または近接センサ読み取りを含む、請求項１０に記載のデバイス。
【請求項１４】
前記カメラ入力は、赤外線カメラからのものである、請求項１４に記載のデバイス。
【請求項１５】
前記１または複数のプロセッサが、サーバから前記複数のポリシを受信するように構成され、前記サーバに前記新しいポリシを送信することを更に備える、請求項１０に記載のデバイス。
【請求項１６】
アクセスを許可または拒否するユーザ入力を要求する通知を提供することは、前記モバイルデバイスのディスプレイにグラフィカルユーザインタフェースを提供すること、または、前記モバイルデバイスのオーディオ出力を使用して自然言語メッセージを提供することを含む、請求項１０に記載のデバイス。
【請求項１７】
前記動作モードは、前記モバイルデバイスにインストールされる１または複数の他のアプリケーションのインジケーション、前記モバイルデバイスで実行中である１または複数の他のアプリケーションのインジケーション、または前記モバイルデバイスの現在位置のうちの１または複数を更に含む、請求項１０に記載のデバイス。
【請求項１８】
前記１または複数のプロセッサが、前記新しいポリシを前記複数のポリシに追加してからある期間が経過したことを決定し、前記決定に基づいて、前記複数のポリシから前記新しいポリシを除去するように構成されることを更に備える、請求項１０に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本願は、２０１７年１０月２６日に出願された「Ｍｅｔｈｏｄ  Ａｎｄ  Ａｐｐａｒａｔｕｓ  Ｆｏｒ  Ｍａｎａｇｉｎｇ  Ｈａｒｄｗａｒｅ  Ｒｅｓｏｕｒｃｅ  Ａｃｃｅｓｓ  Ｉｎ  Ａｎ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅ」と題する米国非仮特許出願第１５／７９５，１０１号に基づく優先権を主張するものであり、この米国非仮特許出願は、そのまま複製されているかのように参照により本明細書に組み込まれる。
【０００２】
本開示は概して電子デバイスの動作、より具体的にはモバイル電子デバイスにおけるハードウェアリソースアクセスを管理するための方法および装置に関する。
【背景技術】
【０００３】
スマートフォン、タブレットコンピュータ、およびスマートウォッチなどの現在利用可能なモバイル電子デバイスは、強化された通信能力と、係るデバイスにより提供される機能豊富なソフトウェアアプリケーションとによって豊かで満足のいく経験をエンドユーザに提供する。しかしながら、一部のモバイルデバイスは、ユーザの知らないうちに動作を実行する悪質なソフトウェア（「マルウェア」）に感染し得る。マルウェアの検出は、その動作の秘匿体質から難しい可能性がある。
【発明の概要】
【０００４】
ある例示的な実施形態は、モバイルデバイスにおけるハードウェアリソースアクセスを管理する方法を含む。方法は、モバイルデバイス上の第１アプリケーションがモバイルデバイスの第１ハードウェアリソースにアクセスする許可を付与する第１ユーザ入力を受信し、当該第１ユーザ入力に基づいて、第１アプリケーションに対して第１ハードウェアリソースにアクセスする許可を付与する段階と、第１アプリケーションに対して第１ハードウェアリソースにアクセスする許可を付与した後、アプリケーションがバックグラウンドで実行されているときの第１アプリケーションによる第１ハードウェアリソースへのアクセスの試みを検出すること、および、検出に基づいて、モバイルデバイスの第１動作モードを取得することであって、第１動作モードは、モバイルデバイスがロック状態にあるかロック解除状態にあるかのインジケーションを含む、取得すること、複数のポリシの中に、第１アプリケーションが第１動作モード中に第１ハードウェアにアクセスする許可を付与するポリシがないことを決定すること、当該決定に基づいて、第１アプリケーションによる第１ハードウェアリソースへのアクセスを許可または拒否するユーザ入力を要求する通知を提供すること、当該通知に応答して第２ユーザ入力を受信すること、および、第１アプリケーションが第２ユーザ入力に従って第１動作モード中に第１ハードウェアリソースへのポリシにアクセスすることを許可または拒否する新しいポリシを複数のポリシに追加することを行う段階とを含む。
【０００５】
オプションとして、前述の実施形態のいずれかにおいて、第２ユーザ入力は、第１ハードウェアリソースへのアクセスを許可し、方法は、第１アプリケーションへのアクセスを許可して第１ハードウェアリソースにアクセスする段階を更に含む。
【０００６】
オプションとして、前述の実施形態のいずれかにおいて、第２ユーザ入力は、第１ハードウェアリソースへのアクセスを拒否し、方法は、第１アプリケーションへのアクセスを拒否して第１ハードウェアリソースにアクセスする段階を更に含む。
【０００７】
オプションとして、前述の実施形態のいずれかにおいて、第２ユーザ入力は、第１ハードウェアリソースへのアクセスを拒否し、方法は、第１アプリケーションへのアクセスを拒否して第１ハードウェアリソースにアクセスする段階を更に含む。
【０００８】
オプションとして、前述の実施形態のいずれかにおいて、第１ハードウェアリソースは、マイク入力、カメラ入力、タッチ画面入力、キーボード入力、表示出力、触覚出力、モバイルデバイス位置情報、または近接センサ読み取りを含む。
【０００９】
オプションとして、前述の実施形態のいずれかにおいて、カメラ入力は赤外線カメラからのものである。
【００１０】
オプションとして、前述の実施形態のいずれかにおいて、方法は、サーバから複数のポリシを受信し、サーバに新しいポリシを送信する段階を更に含む。
【００１１】
オプションとして、前述の実施形態のいずれかにおいて、方法では、アクセスを許可または拒否するユーザ入力を要求する通知を提供することが、モバイルデバイスのディスプレイにグラフィカルユーザインタフェースを提供すること、または、モバイルデバイスのオーディオ出力を使用して自然言語メッセージを提供することを含む。
【００１２】
オプションとして、前述の実施形態のいずれかにおいて、動作モードは、モバイルデバイスにインストールされる１または複数の他のアプリケーションのインジケーション、モバイルデバイスで実行中である１または複数の他のアプリケーションのインジケーション、またはモバイルデバイスの現在位置のうちの１または複数を更に含む。
【００１３】
オプションとして、前述の実施形態のいずれかにおいて、方法は、新しいポリシを複数のポリシに追加してからある期間が経過したことを決定し、決定に基づいて、複数のポリシから新しいポリシを除去する段階を更に含む。
【００１４】
別の実施形態では、アクセス制御システムを使用して、モバイルデバイスにおけるハードウェアリソースアクセスを管理する。アクセス制御システムは、第１アプリケーションに対して第１ハードウェアリソースにアクセスする許可を付与する機能制限要素であって、第１ハードウェアリソースは、モバイルデバイスのカメラまたはモバイルデバイスのマイクである、機能制限要素と、第１アプリケーションがバックグラウンドで実行されているときの第１アプリケーションによる第１ハードウェアリソースへのアクセスの試みを検出する検出要素とを含む。機能制限要素は、第１アプリケーションがバックグラウンドで実行されているときの第１アプリケーションによる第１ハードウェアリソースへのアクセスの試みの検出に従って、第１アプリケーションによる第１リソースへのアクセスを拒否することができる。
【００１５】
別の実施形態は、グラフィック情報を表示するための画面と、命令を記憶するメモリと、メモリおよび画面と通信する１または複数のプロセッサとを備えるモバイル電子デバイスを含む。１または複数のプロセッサは、命令を実行して、モバイルデバイス上の第１アプリケーションがモバイルデバイスの第１ハードウェアリソースにアクセスする許可を付与する第１ユーザ入力を受信し、当該第１ユーザ入力に基づいて、第１アプリケーションに対して第１ハードウェアリソースにアクセスする許可を付与するように構成され、第１アプリケーションに対して第１ハードウェアリソースにアクセスする許可を付与した後、アプリケーションがバックグラウンドで実行されているときの第１アプリケーションによる第１ハードウェアリソースへのアクセスの試みを検出すること、および、当該検出に基づいて、モバイルデバイスの第１動作モードを取得することであって、第１動作モードは、モバイルデバイスがロック状態にあるかロック解除状態にあるかのインジケーションを含む、取得すること、複数のポリシの中に、第１アプリケーションが第１動作モード中に第１ハードウェアにアクセスする許可を付与するポリシがないことを決定すること、当該決定に基づいて、第１アプリケーションによる第１ハードウェアリソースへのアクセスを許可または拒否するユーザ入力を要求する通知を提供すること、当該通知に応答して第２ユーザ入力を受信すること、および、第１アプリケーションが第２ユーザ入力に従って第１動作モード中に第１ハードウェアリソースへのポリシにアクセスすることを許可または拒否する新しいポリシを複数のポリシに追加することを行うように構成される。
【００１６】
オプションとして、前述の実施形態のいずれかにおいて、モバイル電子デバイスでは、第２ユーザ入力が、第１ハードウェアリソースへのアクセスを許可し、１または複数のプロセッサが、第１アプリケーションへのアクセスを許可して第１ハードウェアリソースにアクセスするように構成される。
【００１７】
オプションとして、前述の実施形態のいずれかにおいて、モバイル電子デバイスでは、第２ユーザ入力が、第１ハードウェアリソースへのアクセスを拒否し、１または複数のプロセッサが、第１アプリケーションへのアクセスを拒否して第１ハードウェアリソースにアクセスするように構成される。
【００１８】
オプションとして、前述の実施形態のいずれかにおいて、モバイル電子デバイスでは、第１ハードウェアリソースが、マイク入力、カメラ入力、タッチ画面入力、表示出力、触覚出力、モバイルデバイス位置情報、または近接センサ読み取りを含む。
【００１９】
オプションとして、前述の実施形態のいずれかにおいて、モバイル電子デバイスでは、カメラ入力が赤外線カメラからのものである。
【００２０】
オプションとして、前述の実施形態のいずれかにおいて、モバイル電子デバイスは、１または複数のプロセッサが、サーバから複数のポリシを受信するように構成され、サーバに新しいポリシを送信することを更に備える。
【００２１】
オプションとして、前述の実施形態のいずれかにおいて、モバイル電子デバイスでは、アクセスを許可または拒否するユーザ入力を要求する通知を提供することが、モバイルデバイスのディスプレイにグラフィカルユーザインタフェースを提供すること、または、モバイルデバイスのオーディオ出力を使用して自然言語メッセージを提供することを含む。
【００２２】
オプションとして、前述の実施形態のいずれかにおいて、モバイル電子デバイスでは、動作モードが、モバイルデバイスにインストールされる１または複数の他のアプリケーションのインジケーション、モバイルデバイスで実行中である１または複数の他のアプリケーションのインジケーション、またはモバイルデバイスの現在位置のうちの１または複数を更に含む。
【００２３】
オプションとして、前述の実施形態のいずれかにおいて、モバイル電子デバイスは、１または複数のプロセッサが、新しいポリシを複数のポリシに追加してからある期間が経過したことを決定し、決定に基づいて、複数のポリシから新しいポリシを除去するように構成されることを更に備える。
【００２４】
オプションとして、前述の実施形態のいずれかにおいて、モバイル電子デバイス。
【図面の簡単な説明】
【００２５】
【図１】様々な動作モードにおけるモバイルコンピューティングデバイス１００の例を示している。
【００２６】
【図２】本開示のある実施形態に係るモバイル電子デバイスのハードウェアリソースにアクセスするためのコンピュータ実装技術を示したフローチャートである。
【００２７】
【図３】本開示のある実施形態に係るリソース管理のシステムを示している。
【００２８】
【図４】本開示のある実施形態に係るモバイル電子デバイスのハードウェアリソースにアクセスするためのコンピュータ実装技術を示した例示的なフローチャートである。
【００２９】
【図５】本開示のある実施形態に係るモバイル電子デバイス５００のコンポーネントを示したブロック図である。
【発明を実施するための形態】
【００３０】
ここで、添付図面に例が示されている本開示の複数の実施形態を詳細に参照する。以下の詳細な説明には、本開示を十分に理解できるよう多数の具体的な詳細を記載する。しかしながら、実施形態がこれらの具体的な詳細なくして実施され得ること、または、実施形態に対する様々な変更および置換が本開示の精神および範囲から逸脱することなく行われ得ることが当業者にとって明らかになろう。他の例では、実施形態の態様を不必要に曖昧にしないよう、周知の方法、手順、コンポーネント、および回路については詳細に説明していない。
【００３１】
アプリケーションソフトウェアまたはアプリケーションプログラム（「アプリケーション」）は、ユーザのために機能、タスク、またはアクティビティのグループを実行するように設計されるコンピュータプログラムである。アプリケーションの例には、例えばワードプロセッサ、スプレッドシート、会計ソフトウェア、ウェブブラウザ、メディアプレーヤ、電子ゲーム、または写真エディタが含まれる。これは、コンピューティングデバイスにおけるアプリケーションの実行を管理するオペレーティングシステムなどのシステムソフトウェアと対照的である。
【００３２】
マルウェアなどのいわゆる同意のない追跡ソフトウェアは、いくつかの方法でコンピューティングデバイスにインストールされ得る。例えば、係る追跡ソフトウェアは、コンピューティングデバイスに別のアプリケーションをインストールした副次的結果としてコンピューティングデバイスにインストールされ得る。追跡ソフトウェアは通常バックグラウンドで実行され、コンピューティングデバイスの１または複数のハードウェアリソースを監視する。コンピューティングデバイスの製造業者に高度のセキュリティがあったとしても、マルウェアがインストールされる方法は依然として他にある。例えばマルウェアは、バックグラウンドで実行されるステルス追跡プログラムをインストールすべく、システムソフトウェアのセキュリティ対策を回避し得る。マルウェアアプリケーションは、スマートフォン、スマートウォッチ、タブレット、またはポータブルコンピュータなどのユーザのコンピューティングデバイスのハードウェアリソースにアクセスすることにより、ユーザの知らないうちにユーザのアクティビティを追跡し得る。
【００３３】
ハードウェアリソースは、コンポーネントの物理ハードウェア、または物理ハードウェアコンポーネントの入力または出力（Ｉ／Ｏ）から導出されるデータのうちの１または複数に対してＩ／Ｏされるコンピューティングデバイスの物理ハードウェアコンポーネントである。例として物理ハードウェアコンポーネントは、マイク、近接センサ、イメージセンサ、タッチ画面、物理ボタン、グローバルポジショニングシステム（ＧＰＳ）受信機、セルラ無線機、Ｗｉ−Ｆｉ無線機、またはＢｌｕｅｔｏｏｔｈ（登録商標）送受信機であり得る。Ｉ／Ｏハードウェアコンポーネントの例には、マイク入力、イメージセンサ（例えばカメラ）入力、タッチ画面入力、キーボード入力、表示出力、触覚出力、または近接センサ読み取りなどが含まれる。物理ハードウェアコンポーネントのＩ／Ｏから導出されるデータの例には、例えばＧＰＳ受信機およびＷｉ−Ｆｉ無線機により受信される情報に基づくコンピューティングデバイスの地理的位置（「ジオロケーション」）がある。他のタイプのハードウェアリソースも考えられる。
【００３４】
コンピューティングデバイスには様々な動作モードがある。一般的に、動作モードは、コンピューティングデバイスの電源が入っているときのコンピューティングデバイスの状態を表すブール式である。コンピューティングの状態は、指定されたアプリケーションがフォアグラウンドで実行されているかバックグラウンドで実行されているか、デバイスがロックされているかロック解除されているか、デバイスが機内モードにあるかどうか、デバイスで実行されているアプリケーションのインジケーション、およびデバイスの現在の地理的位置といった因子のうちの１または複数を含む。すなわち、動作モードは因子のブール式。コンピューティングデバイスが機内モードにあるとき、コンピューティングデバイスは、無線周波数信号伝送（例えばセルラ、Ｗｉ−Ｆｉ、およびＢｌｕｅｔｏｏｔｈ伝送）を中断してよい。コンピューティングデバイスが機内モードにないとき、コンピューティングデバイスは、セルラ、Ｗｉ−Ｆｉ、およびＢｌｕｅｔｏｏｔｈ伝送を使用して信号を受信および伝送するなど、通常の方法で機能してよい。ロック状態は、例えば、デバイスがユーザのポケットまたはハンドバッグにある間、または、別のオブジェクトがデバイスに対して置かれているときに、タッチ画面ディスプレイの不注意な操作を防止するために使用され得る。ロック状態は、権限のない人によるデバイスの使用を防止するためにも使用され得る。概して、デバイスは、ユーザが特定のボタンまたは一連のボタンを押したとき、または、デバイスが一定期間にわたってアイドル状態になったときに、ロック状態になるようにプログラムされる。ユーザがロック状態にあるデバイスを使用したい場合は、ユーザは指令を発し、スライドバーをドラッグし、特定のボタンまたは一連のボタンを押して（例えばパスワードを入力して）デバイスをロック解除する必要がある場合がある。
【００３５】
図１は、様々な動作モードにおけるモバイルコンピューティングデバイス１００の例を示している。モバイルコンピューティングデバイス１００、例えばスマートフォン、スマートウォッチ、またはタブレットデバイスなどのコンピューティングデバイスは、グラフィカルユーザインタフェース（ＧＵＩ）を提供するディスプレイ１０４と共にロック解除状態の動作モード１０１で示されている。ここで、ＧＵＩには、モバイルコンピューティングデバイス上のアプリケーションが、ユーザが選択できるアイコンで表される。ロック状態の動作モード１０２では、モバイルコンピューティングデバイスのディスプレイ１０４の電源を切ることができる。モバイルコンピューティングデバイス１００がロック状態にある場合は、多くの機能が中断され得る。別の動作モード１０３では、ディスプレイ１０４にユーザ通知１０６が提示される。通知は、コンピューティングデバイス１００のユーザの注意を引くべく、コンピューティングデバイス１００がロック状態またはロック解除状態にあるときに提示され得る。いくつかの実装では、ハードウェアリソースへのアプリケーションアクセスを許可または拒否する入力を要求する通知がコンピューティングデバイス１００のユーザに提供される。代替的にまたはこれに加えて、通知は、例えば音声メッセージ、音、または触覚フィードバックであり得る。モバイル電子デバイスのディスプレイは、１０３に示すような通知メッセージを示すためにアクティブ化され得る。通知メッセージ自体は同時に示され得る。
【００３６】
本開示は、ポリシを使用してモバイルデバイスにおけるハードウェアリソースアクセスを管理する様々な実施形態を提供することで、ハードウェアリソースへのアクセスがユーザにとって安全な方法および便利な方法で制御され得るようにする。
【００３７】
本開示のある実施形態は、ハードウェアリソースへのアクセスを支配するポリシでデバイスが構成されることを提供する。ポリシとは、指定されたアプリケーションがコンピューティングデバイスの指定された動作モード中にコンピューティングデバイスにおける指定されたハードウェアリソースへのアクセスを許可されるか拒否されるかを示した規則である。ポリシは、ファイル、例えばＸＭＬファイル、またはテキストなどに保存され得る。ポリシの一般的な形式は、＜アプリケーション識別子、ハードウェアリソース識別子、動作モードのブール式、許可／拒否＞であり、アプリケーション識別子はアプリケーションを識別し、ハードウェアリソース識別子はハードウェアソース（例えばマイク、カメラなど）を識別し、動作モードは上記の因子のうちの１または複数のブール式である。ポリシは複数の記録を含んでよく、各記録は上記のようなポリシの形式を含んでよい。アプリケーションＩＤ、ハードウェアリソースＩＤがそれぞれのＩＤと一致するとき、かつ、動作モード式がＴＲＵＥと評価されるときに、ポリシがトリガされる。ポリシがトリガされると、ポリシの許可／拒否フィールドに基づいて、識別されたアプリケーションによる識別されたハードウェアリソースへのアクセスが許可または拒否される。オプションとして、ポリシには有効期間があってよく、それを過ぎるとポリシはもはやアクティブではなくなる。
【００３８】
例として、表１は例示的なポリシを列挙している。
【表１】
2021500641.tif 000003
【００３９】
表１の各行は例示的なポリシであってよく、当該ポリシは１または複数の記録として示されてよい。例えば、表１の第１アプリケーション（アプリ１）について言うと、アプリ１がバックグラウンドで実行されており、かつ、カメラアプリが実行中である場合は、アプリ１はマイクでアクションまたはアクセスを開始しようとし、係る意図またはアクセスは表１の行１の第１ポリシに従って拒否される。あるポリシはアプリ３に関する。例えば、アプリ３がフォアグラウンドで実行されており、アプリ３がカメラでアクションまたはアクセスを開始しようとする場合は、係る意図またはアクセスは、表１の行７の第２ポリシに従って許可される。
【００４０】
アプリケーションがデバイスのハードウェアリソースへのアクセスを試みる場合は、デバイスは、１または複数のポリシがアプリケーションに対してハードウェアリソースにアクセスする許可を付与するかどうかを決定する。例えば、アクセスがポリシにより許可されない場合は、ハードウェアリソースへのアプリケーションのアクセスが拒否されるか、または、ユーザがアプリケーションに対してハードウェアリソースへのアクセスを許可または拒否することを要求する通知が、デバイスのユーザに提供されるかどちらか一方である。上記のように、係る通知は、コンピューティングデバイスのＧＵＩ内のメッセージ、または音声プロンプトであり得る。通知が提供される場合は、通知に対するユーザの応答を使用して新しいポリシを作成する。新しいポリシは、アプリケーション、アプリケーションがアクセスを試みたハードウェアリソース、アプリケーションがアクセスを試みたときのコンピューティングデバイスの動作モードを表すブール式、ユーザがアクセスを許可したか拒否したかのインジケーションを指定する。アプリケーションが同じ動作モード中に同じハードウェアリソースへのアクセスを試みると、ポリシは、ユーザ入力を取得する必要なく自動的にアプリケーションに許可を付与する。
【００４１】
図２は、本開示のある実施形態に係るモバイル電子デバイスのハードウェアリソースにアクセスするためのコンピュータ実装技術を示したフローチャートである。
【００４２】
段階２０１では、第１アプリケーションをインストールするときに、第１アプリケーションがデバイス１００の第１ハードウェアリソースにアクセスする許可が受信される。第１アプリケーションは、デバイス１００、またはオペレーティングシステムの製造業者、または第三者により提供され得る。これに基づいて、段階２０２では、第１アプリケーションがバックグラウンドで実行されているときの第１アプリケーションによる第１ハードウェアリソースへのアクセスの試みが検出される。これに基づいて、モバイルデバイス１００の第１動作モードが取得され、第１動作モードは、モバイルデバイスがロック状態にあるかロック解除状態にあるかのインジケーションを含んでよく、段階２０３では、複数のポリシの中に、第１アプリケーションが第１動作モード中に第１ハードウェアリソースにアクセスする許可を付与するポリシがあるかどうかを決定し、段階２０４では、適切なポリシが存在し、かつ、当該ポリシに基づく動作が適宜実行され得る場合、係るポリシが存在しない場合に、第１アプリケーションによる第１ハードウェアリソースへのアクセスを許可または拒否するユーザ入力を要求する通知が提供され、段階２０５では、当該通知に応答するユーザ入力が受信され、当該通知への応答が、アクセスが許可されないことである場合に、第１アプリケーションによるアクセスの試みが段階２０６でブロックされ、さもなければ、段階２０７では、第１アプリケーションに対して適切な実行が行われ、次に段階２０８では、第１アプリケーションがユーザ入力に従って第１動作モード中に第１ハードウェアリソースへのポリシにアクセスすることを許可または拒否する新しいポリシが複数のポリシに追加される。
【００４３】
図３は、本開示のある実施形態に係るネットワーク３０２と相互作用する１または複数のモバイルデバイス３０１、３０４、３０５を含むリソース管理のシステムを示している。ネットワーク３０２は例えばクラウドサーバであってよい。モバイルデバイス３０１、３０４、３０５のネットワーク３０２との相互作用により、本開示の様々な実施形態が適用され得る。
【００４４】
ネットワーク３０２からはモバイルデバイス３０１にポリシＳＰ１がロードされ得る。ＳＰ１は例えば、ほとんどの人が支持しているポリシ、または、アプリケーションのユーティリティの楽観的選択の既存のアルゴリズムで計算されたポリシであってよい。ポリシＳＰ１の計算のために、指定された不審なシナリオ（ＳＳＳ）学習システム３０３が提供され得る。ＳＳＳ学習システム３０３は、更新されたポリシをネットワーク３０２に周期的に提供してよい。ＳＳＳ学習システム３０３は、アプリケーションの使用の好みまたは結果のユーザデータを様々なデバイス、例えば３０１、３０４、３０５から受信する。ＳＳＳ学習システム３０３は、ネットワーク３０２内の要素であるか、またはネットワーク３０２から独立して構成されてよい。データベース３０６は、ユーザフィードバックデータを記憶するように構成され得る。
【００４５】
ポリシＳＰ１の計算は、様々なデバイス３０１、３０４、および３０５から収集されたビッグデータから最適なポリシを作成するなど、ビッグデータから好みのパターンを分析するプロセスであってよい。分析は、複数のユーザの好み、エンジニアのグループが学習した安全なソフトウェアの知識および安全でないソフトウェアの知識、ユーザに提示する最良の効果的な方法などに基づいたものであってよい。全てのＳＳＳポリシファイルがデータベース３０６内の１つのｘｍｌファイルまたは複数のｘｍｌファイルに記憶され得る。
【００４６】
モバイルデバイス３０１、３０４、３０５は、直近のポリシＳＰ２をネットワーク３０２または学習システム３０３に周期的にアップロードしてよい。アップロード期間は毎日または数日おきであってもよいし、モバイルデバイス３０１、３０４、３０５により設定されてもよい。
【００４７】
ポリシは１または複数のポリシファイルを含んでよい。ポリシまたはポリシファイルは、特定の状況におけるポリシの内容を示した１または複数の記録を含んでよい。ネットワーク３０２は、様々なデバイス３０１、３０４、３０５から収集されたＳＳＳの様々な報告に基づいて、デフォルトのＳＳＳポリシファイルを更新し、次に、更新されたデフォルトのＳＳＳポリシファイルを様々なデバイス３０１、３０４、３０５に配布してよい。デフォルトのＳＳＳポリシファイルは、先に開示したようなポリシＳＰ１であってよい。以降、更新されたデフォルトのＳＳＳポリシファイルは、ポリシＳＰ３として定義され得る。クラウドサーバ３０３は、ポリシＳＰ３を様々なデバイス３０１、３０４、３０５にロードしてよい。様々なデバイス３０１、３０４、３０５がポリシＳＰ３を受信すると、デバイス上のポリシＳＰ１がＳＰ３で置換され得る。
【００４８】
ポリシファイルは、様々なデバイス３０１、３０４、３０５の検出器、または、様々なデバイス３０１、３０４、３０５上のプログラムにより読み取られるか、または検出され得る。検出器３１１は、アプリケーションプログラミングインタフェース（ＡＰＩ）に連結され得る。検出器３１１は、ＡＰＩを介して様々なデバイス３０１、３０４、および３０５の実行部３１３に通信して、ポリシファイルに従って実行を行ってよい。検出器３１１および実行部３１３は、デバイス３０１、３０４、３０５で実行される単一のプログラムまたは別個のプログラムであってよい。
【００４９】
ＳＳＳポリシファイルを検出するための検出器３１１またはプログラムは、バックグラウンドプロセスとして実行されるコンピュータプログラム、または、対話型ユーザの直接制御下にあるプログラムとして定義され得る。係るプログラムでは、例えばデーモン、デーモンプロセス、デーモンプログラム（ＤＰ）、ゴーストジョブ、サービス、または開始タスクなど、異なる環境で名前が定義され得る。
【００５０】
デーモンの親プロセスは、常にではない場合があるが、開始（ｉｎｉｔ）プロセスであることが多い。デーモンは通例、子プロセスをフォーク（ｆｏｒｋ）してからすぐに終了するプロセスで作成されることからｉｎｉｔに子プロセスを採用させるか、またはｉｎｉｔプロセスで直接起動されるかのどちらか一方である。加えて、フォークおよび終了により起動されるデーモンは通常、任意の制御端末からプロセスを切り離すなど、他の動作を実行してよい。係る手順は、ＵＮＩＸ（登録商標）におけるデーモンなど、様々な便利なルーチンで実装されることが多い。
【００５１】
システムはブート時にデーモンを起動することが多く、デーモンは、ネットワーク要求、ハードウェアリソースアクティビティ、または他のプログラムに応答する。デーモンは、定義されたタスクを予定された時刻に実行してもよい。
【００５２】
デーモンプログラム（ＤＰ）は常に実行されているプログラムであってよく、サポートのために特定のオペレーティングシステム、例えばＡｎｄｒｏｉｄ（登録商標）、ＩＯＳ（登録商標）を呼び出す必要がない場合がある。しかしながら、デーモンプログラムは、オペレーティングシステムで他のプログラムを実行するために特定の動作システムを呼び出す必要がある場合がある。係る他のプログラムは、デバイスの画面にダイアログをポップアップさせ、定義されたＳＳＳポリシ下でプロセス実行権限を付与するかどうかをユーザに決定させることであってよい。ダイアログは、ユーザには知られているが主要表示領域を占めないモバイルデバイスの画面内の領域に現れる通知であってよい。例えば、迷惑なポップアップメッセージではなく、バッテリアイコンが瞬間的に赤く点滅するか、または同様の何かであってよい。
【００５３】
デーモンプログラムは、デバイスの全てのリソース、例えばマイク、カメラ、画面などを監視してよい。デーモンプログラムはユーザインタフェース（ＵＩ）の一部であり得る。
【００５４】
デーモンプログラムはプロアクティブ検出器であってよく、プロアクティブ検出器は、オペレーティングシステムの他のプログラムによる特別なトリガを必要としない場合がある。プロアクティブ検出器とは対照的に、反応検出器はスリープ状態または待ち受け状態を維持し、イベントまたはプログラムなどにより機能するようにトリガされる必要がある場合がある。
【００５５】
本開示のある実施形態は、上記のようなハードウェアリソースアクセスを管理する方法を示したモバイル電子デバイスを提供する。デバイスの検出器は、第１ＳＳＳポリシファイル（ＳＰ１）をデバイスにロードし、ソフトウェアコンポーネントおよび／またはハードウェアコンポーネントのアクティビティを待つように構成される。ＳＰ１はモバイルデバイスの製造業者、またはモバイルネットワークを運営しているキャリア、またはオペレーティングシステムの運用者により予め定義され得る、または、ＳＰ１はクラウドサーバからロードされ得る。第２ＳＳＳポリシファイル（ＳＰ２）はローカルのＳＳＳポリシであってよく、デバイスに関してユーザにより行われる好みの選択の記録を作成してよい。モバイルデバイスは、ＳＰ２がＳＰ１より優先されるなど、好ましいユーザ設定として設定され得る。
【００５６】
先に開示したように、検出器はデーモンプログラム（ＤＰ）などの第１プログラムであってよい。システムアクティビティの変更が発生すると、ＤＰは、ＳＳＳポリシ制御が見つかったかどうか、例えば、それが設定された実行時間であるかどうかと、変更の内容とを検出および決定してよい。ＳＳＳポリシが見つからなかった場合は、ＤＰは何もしない場合がある。ＳＳＳポリシが見つかった場合は、ＤＰは第２プログラムへの問い合わせに進んでよい。第２プログラムは、Ａｎｄｒｏｉｄオペレーティングシステム、またはＪａｖａ（登録商標）フォーマット、または同様の目的のために機能し得る任意の他のフォーマットで書き込まれるプログラムである、ａｐｋのプログラムであってよい。
【００５７】
図４は、本開示のある実施形態に係るモバイル電子デバイスのハードウェアリソースにアクセスするためのコンピュータ実装技術を示した例示的なフローチャートである。
【００５８】
段階４０１では、アプリケーションがハードウェアリソースなどのシステムリソースへのアクセスを試みる。
【００５９】
段階４０２では、ＤＰはａｐｋに対してモバイルデバイスの画面に権限のメッセージを投稿するよう求める。
【００６０】
段階４０２'では、定義されたＳＳＳポリシ（ＳＰ１）下でプロセス実行権を付与するかどうかを決定する。
【００６１】
段階４０３では、ＳＳＳポリシが見つからなかった場合、ＤＰが何もしない場合がある。または、実行権が付与されなかった場合、アプリケーションの実行が禁止される。
【００６２】
段階４０４では、実行権が付与された場合、「アプリ＋見つかったＳＳＳポリシ」というこの組み合わせがＳＳＳポリシの記録としてホワイトリストに登録され、ポリシは有効期限（ＥＤ）と共に記憶され得る。ホワイトリストは、特定の特権、サービス、モビリティ、アクセス、または認識を提供するリストであってよい。リスト上のアクティビティは、容認、承認、および／または認識される。ホワイトリストはブラックリストの逆であってよい。ブラックリスト上のアクティビティは、拒否されるか、認識されないか、または排除され得る。
【００６３】
段階４０５では、以下のようなデータを含むポリシ記録がＳＰ２に作成され得る。
Ｓ４０、アプリ＋ハードウェア→ＳＳＳポリシ
Ｓ４１、有効期限切れセットアップ→学習システム
【００６４】
Ｓ４０またはＳ４１のような組み合わせは、例が示すように「アプリ＋見つかったＳＳＳポリシ」などとして定義され得る、ユーザが許可した組み合わせ（ＵＰＣ）またはユーザの組み合わせ（ＵＣ）と呼ばれてよく、全てのＵＰＣが有効期限（ＥＤ）で構成したかもしれない。
【００６５】
ＵＰＣの有効期限が切れると、ＤＰはダイアログまたはメッセージなどをポップアップさせてこのＵＰＣの許可をユーザに再度求めてよく、ＤＰはオーディオなどをトリガしてユーザに警告メッセージをプッシュしてよい。もう一度付与された場合は、ＥＤも更新され得る。許可期間（ＰＤ）は２回目に確認されるので、延長することができる。ＰＤは、許可の期間、例えば一週間、一ヶ月、永遠などとして定義され得る。付与されなかった場合は、このＵＰＣは取り消され得る。
【００６６】
段階４０５'では、既存のＳＰ２が検出されると、段階４０４で説明したような記録でＳＰ２を更新する。
【００６７】
ユーザの好みは、ユーザによる選択に伴ってその都度収集され得る。
【００６８】
段階４０６では、段階４０４で説明したようなホワイトリストに登録された組み合わせでＳＰ１が更新され得る。
【００６９】
本開示の複数の実施形態で説明するような解決手段を示すために、モバイル電子デバイスが製造される。
【００７０】
図５は、本開示のある実施形態に係るモバイル電子デバイス５００のコンポーネントを示したブロック図である。デバイス５００は、上記のような実施形態を実行するように構成される。デバイス５００は、メモリ５０１、プロセッサ５０２、周辺機器インタフェース５０３、メモリコントローラ５０４、グラフィックス処理ユニット（ＧＰＵ）５０５、１または複数のセンサ５０６を含む。プロセッサは、機能制限モジュール５０７、アクティブ化モジュール５０８、および中央処理装置（ＣＰＵ）５０９と連結されてもよい。ＣＰＵは周辺機器インタフェース５０３に連結されてもよい。デバイスは、Ｗｉ−Ｆｉインタフェースおよび／またはＢｌｕｅｔｏｏｔｈインタフェースを含み得る無線周波数（ＲＦ）回路５２１を更に含んでよい。デバイス５００は、１または複数の外部ポート５２２、１または複数のスピーカ５２５と更に接続され得るオーディオ回路５２３、および／またはマイク５２６を更に含んでよい。デバイスは、周辺機器インタフェース５０３と連結され得る画面５２４を更に含んでよい。これらのコンポーネントは、１または複数の通信バスまたは信号線を介して通信する。モバイル電子デバイス５００は、例えばハンドヘルドコンピュータ、タブレットコンピュータ、携帯電話、メディアプレーヤ、または携帯用情報端末（ＰＤＡ）であり得る。図５に示す様々なコンポーネントが、１または複数の信号処理回路および／または特定用途向け集積回路を含むハードウェアリソース、またはハードウェアリソースとソフトウェアリソースとの組み合わせで実装され得る。
【００７１】
本開示の他の実施形態において、メモリ５０１は、インターネット、イントラネット、ローカルエリアネットワーク（ＬＡＮ）、広域ローカルエリアネットワーク（ＷＬＡＮ）、およびストレージエリアネットワーク（ＳＡＮ）など、またはそれらの任意の適切な組み合わせといった、モバイル電子デバイス５００から遠隔に配置される記憶装置を含んでよい。
【００７２】
周辺機器インタフェース５０３は、デバイス５００の入力周辺機器および出力周辺機器をＣＰＵ５０９、ＧＰＵ５０５、およびメモリ５０１に連結する。ＣＰＵ５０９は、メモリ５０１に記憶された様々なソフトウェアプログラムおよび／または命令の組を実行して、モバイル電子デバイス５００ための様々な機能を実行し、データを処理する。ＧＰＵ５０５は、画面５２４のグラフィック処理機能を処理する。いくつかの実施形態では、グラフィック処理機能がＣＰＵ５０９により処理されるので、ＧＰＵ５０５は保存され得る。
【００７３】
外部ポート５２２は、他のデバイスに直接、またはネットワークを介して遠隔で連結するように適合させられる。例えば、外部ポート５２２は、ユニバーサルシリアルバス（ＵＳＢ）、ファイヤワイヤ、外部記憶媒体を受け入れるためのメモリスロットなどを含み得る。
【００７４】
ＲＦ（無線周波数）回路５２１は、電磁信号とも呼ばれ得るＲＦ信号を受信および送信する。ＲＦ回路５２１は電気信号を電磁信号に／電磁信号を電気信号に変換し、これらの電磁信号を介して通信ネットワークおよび他の複数の通信デバイスと通信する。ＲＦ回路５２１は、以下に限定されるわけではないが、アンテナシステム、ＲＦ送受信機、１または複数の増幅器、チューナ、１または複数の発振器、デジタル信号プロセッサ、ＣＯＤＥＣチップセット、加入者識別モジュール（ＳＩＭ）カード、メモリなどを含む、これらの機能を実行するための周知の回路を含んでよい。ＲＦ回路５２１は、インターネット、イントラネット、並びに／または、セルラ電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）および／もしくはメトロポリタンエリアネットワーク（ＭＡＮ）などの無線ネットワークといったネットワークと通信してよく、無線通信で他のデバイスと通信してよい。複数の無線通信ネットワークは、以下に限定されるわけではないが、グローバル・システム・フォー・モバイル・コミュニケーション（ＧＳＭ（登録商標））、エンハンストデータＧＳＭエンバイロンメント（ＥＤＧＥ）、高速ダウンリンクパケットアクセス（ＨＳＤＰＡ）、高速アップリンクパケットアクセス（ＨＳＵＰＡ）、広帯域符号分割多元接続（Ｗ−ＣＤＭＡ）、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、ワイヤレスフィディリティ（Ｗｉ−Ｆｉ）（例えば、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ、および／もしくはＩＥＥＥ８０２．１１ｎ）、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）、Ｗｉ−ＭＡＸ、または任意の他の適切な通信プロトコルを含む複数の通信規格、通信プロトコル、および通信技術のうちのいずれかを使用してよい。
【００７５】
オーディオ回路５２３は、１または複数のスピーカ５２５およびマイク５２６と接続する。これらのコンポーネントは共に、ユーザとモバイル電子デバイス５００との間にオーディオインタフェースを提供する。オーディオ回路５２３は、周辺機器インタフェース５０３からオーディオデータを受信し、当該オーディオデータを電気信号に変換し、電気信号をスピーカ５２５に伝送する。スピーカ５２５は、人間が聞き取ることができる音波に電気信号を変換する。オーディオ回路１９０は、マイク５２６により音波から変換された電気信号も受信する。オーディオ回路５２３は、電気信号をオーディオデータに変換し、当該オーディオデータを処理のために周辺機器インタフェース５０３に伝送する。オーディオデータは、周辺機器インタフェース５０３により、メモリ５０１および／またはＲＦ回路５２１から取り出され、および／または、メモリ５０１および／またはＲＦ回路５２１に伝送され得る。
【００７６】
画面５２４はタッチ画面または折り畳み画面であってよく、デバイスとユーザとの間に出力インタフェースおよび入力インタフェースの両方を提供する。画面５２４は、テキスト、グラフィックス、ビデオ、およびそれらの任意の組み合わせを含み得る視覚的出力をユーザに表示する。視覚的出力の一部または全てがユーザインタフェースオブジェクトに対応してよく、それらの更なる詳細については以下に説明する。画面５２４は、ＬＣＤ（液晶ディスプレイ）技術、または他の既知のディスプレイ技術を使用してよい。画面５２４はまた、触覚的および／または触知的な接触に基づいてユーザからの入力を受け入れる。
【００７７】
メモリ５０１に記憶されるオペレーティングシステム５１０（例えば、Ａｎｄｒｏｉｄ、ＲＴＸＣ、Ｌｉｎｕｘ（登録商標）、ＵＮＩＸ（登録商標）、Ａｐｐｌｅ  ＯＳ（登録商標）Ｘ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、またはＶｘＷｏｒｋｓ（登録商標）などの組み込み型オペレーティングシステム）は、一般的なシステムタスク（例えばメモリ管理、記憶デバイス制御、電力管理など）を制御および管理するための様々なソフトウェアコンポーネントおよび／またはドライバを含んでよく、様々なハードウェアコンポーネントとソフトウェアコンポーネントとの間の通信を容易にする。多くの種類のオペレーティングシステムが適用され得るが、以下の説明では、Ａｎｄｒｏｉｄを例に使用して本発明の複数の実施形態を説明する。オペレーティングシステム５１０には様々なアプリケーションがインストールされ得る。
【００７８】
ＳＳＳポリシは、モバイル電子デバイスのＡＰＩによりモバイル電子デバイスのプロセッサと通信され得る１または複数のアプリケーションを含んでよい。ＳＳＳポリシは予め構成されるか、または動作中に時々改良され得る。
【００７９】
コンピュータプログラミングにおいて、ＡＰＩは、アプリケーションソフトウェアを構築するための一組のサブルーチン定義、プロトコル、およびツールである。一般的には、様々なソフトウェアコンポーネント間の通信の、明確に定義された一組の方法である。ＡＰＩは、ウェブベースのシステム、オペレーティングシステム、データベースシステム、コンピュータハードウェア、またはソフトウェアライブラリであってよい。ＡＰＩ仕様は多くの形式を取り得るが、ルーチン、データ構造、オブジェクトクラス、変数、または遠隔呼び出しの仕様を含むことが多い。ＰＯＳＩＸ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＡＰＩ、Ｃ＋＋規格テンプレートライブラリ、およびＪａｖａ  ＡＰＩがＡＰＩの異なる形式の例である。ＡＰＩのドキュメンテーションは通例、使用を容易にするために提供される。
【００８０】
例えば、グラフィックスライブラリ内の一組のＡＰＩは、いかにしてポインタを描画し、グラフィカル出力デバイスに表示できるかを定義する。アプリケーションがポインタ関数を必要とする場合は、この組のＡＰＩにリンクするためにそれを参照することができる。
【００８１】
ＡＰＩは、アプリケーションとオペレーティングシステムとの間のインタフェースを指定することができる。例えば、ＰＯＳＩＸは、ＰＯＳＩＸ準拠のオペレーティングシステム用に作成されたアプリケーションを別のＰＯＳＩＸ準拠のオペレーティングシステム用にコンパイルできるようにすることを目的とした一組の共通ＡＰＩを指定する。Ｌｉｎｕｘ  Ｓｏｆｔｗａｒｅ  ＤｉｓｔｒｉｂｕｔｉｏｎおよびＢｅｒｋｅｌｅｙ  Ｓｏｆｔｗａｒｅ  Ｄｉｓｔｒｉｂｕｔｉｏｎは、ＰＯＳＩＸ  ＡＰＩを実装するオペレーティングシステムの例である。
【００８２】
遠隔ＡＰＩによって、開発者は、言語またはプラットフォームに関係なく、様々な技術を共に機能させることができる特定の通信規格、プロトコルを通じて遠隔リソースを操作することができる。例えば、Ｊａｖａ  Ｄａｔａｂａｓｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ  ＡＰＩによって、開発者は、同じ組の関数で多くの異なるタイプのデータベースにクエリを実行することができる。一方、Ｊａｖａ遠隔メソッド呼び出しＡＰＩは、Ｊａｖａ  Ｒｅｍｏｔｅ  Ｍｅｔｈｏｄ  Ｐｒｏｔｏｃｏｌを使用して、遠隔で動作するが開発者にはローカルに見える関数を呼び出すことができる。従って、遠隔ＡＰＩは、オブジェクト指向のプログラミングでオブジェクトの抽象化を維持するのに役立つ。プロキシオブジェクトでローカルに実行されるメソッド呼び出しは、遠隔プロトコルを使用して遠隔オブジェクト上の対応する方法を呼び出し、ローカルで使用される結果を戻り値として取得する。プロキシオブジェクトを修正すると、遠隔オブジェクトも対応して修正される。
【００８３】
Ｗｅｂ  ＡＰＩは、企業とその資産を使用するアプリケーションとの間で相互作用を発生させる定義されたインタフェースである。ＡＰＩ手法は、様々なタイプの消費者にサービスを提供する様々なアプリケーションに対して一組のサービスへのプログラマブルインタフェースを提供することを中心に展開するアーキテクチャ手法である。ウェブ開発の背景で使用されると、ＡＰＩは通常、応答メッセージの構造の定義と同様、一組のハイパーテキスト転送プロトコル（ＨＴＴＰ）要求メッセージとして定義され、通例は拡張可能なマーク付け言語（ＸＭＬ）フォーマットまたはＪａｖａＳｃｒｉｐｔ（登録商標）Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ（ＪＳＯＮ）フォーマットである。例としては、サイト開発者がウェブデータベースに配送業者の料金表を入力する必要なく、配送サービスの発注を容易にし、かつ、現在の配送料を自動的に含めるべく、ｅコマースに焦点を当てたウェブサイトに追加され得る配送会社ＡＰＩがあり得る。「ｗｅｂ  ＡＰＩ」は歴史的に見て実質的にウェブサービスと同義であったが、近年の動向（いわゆるＷｅｂ２．０）は、簡易オブジェクトアクセスプロトコル（ＳＯＡＰ）ベースのウェブサービスおよびサービス指向アーキテクチャ（ＳＯＡ）からより直接的なＲＥｐｒｅｓｅｎｔａｔｉｏｎａｌ  Ｓｔａｔｅ  Ｔｒａｎｓｆｅｒ（ＲＥＳＴ）スタイルのウェブリソースおよびリソース指向アーキテクチャ（ＲＯＡ）へと移行している。この動向の一部がリソース記述フレームワーク（ＲＤＦ）、ウェブベースのオントロジーエンジニアリング技術を促進する概念へのセマンティックウェブの動きに関連する。Ｗｅｂ  ＡＰＩによって、マッシュアップとして知られている新しいアプリケーションに複数のＡＰＩを組み合わせることができる。ソーシャルメディアスペースにおいて、ウェブコミュニティは、ｗｅｂ  ＡＰＩによってコミュニティとアプリケーションとの間のコンテンツおよびデータの共有を容易にすることができるようになった。このようにして、１つの場所で作成されたコンテンツがウェブ上の複数の位置で動的に投稿および更新され得る。
【００８４】
本開示は具体的な特徴およびそれらの実施形態を参照して説明されているが、以下の特許請求の範囲で定義される本開示の精神および範囲から逸脱することなく、それらに対する様々な変更および置換が行われ得ることを理解されたい。
【図１】
2021500641.tif 000004
【図２】
2021500641.tif 000005
【図３】
2021500641.tif 000006
【図４】
2021500641.tif 000007
【図５】
2021500641.tif 000008
【手続補正書】
【提出日】令和2年5月8日(2020.5.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モバイルデバイスにおけるハードウェアリソースアクセスを管理する方法であって、
前記モバイルデバイス上の第１アプリケーションが前記モバイルデバイスの第１ハードウェアリソースにアクセスする許可を付与する第１ユーザ入力を受信し、前記第１ユーザ入力に基づいて、前記第１アプリケーションに対して前記第１ハードウェアリソースにアクセスする許可を付与する段階と、
前記第１アプリケーションに対して前記第１ハードウェアリソースにアクセスする許可を付与した後、前記アプリケーションがバックグラウンドで実行されているときの前記第１アプリケーションによる前記第１ハードウェアリソースへのアクセスの試みを検出すること、および、前記検出に基づいて、
前記モバイルデバイスの第１動作モードを取得することであって、前記第１動作モードは、前記モバイルデバイスがロック状態にあるかロック解除状態にあるかのインジケーションを含む、取得すること、
複数のポリシの中に、前記第１アプリケーションが前記第１動作モード中に前記第１ハードウェアリソースにアクセスする許可を付与するポリシがないことを決定すること、
前記決定に基づいて、前記第１アプリケーションによる前記第１ハードウェアリソースへのアクセスを許可または拒否するユーザ入力を要求する通知を提供すること、
前記通知に応答して第２ユーザ入力を受信すること、および、
前記第１アプリケーションが前記第２ユーザ入力に従って前記第１動作モード中に前記第１ハードウェアリソースにアクセスすることを許可または拒否する新しいポリシを前記複数のポリシに追加すること
を行う段階と
を備える方法。
【請求項２】
前記第２ユーザ入力は、前記第１ハードウェアリソースへのアクセスを許可し、前記方法は、前記第１アプリケーションへのアクセスを許可して前記第１ハードウェアリソースにアクセスする段階を更に備える、請求項１に記載の方法。
【請求項３】
前記第２ユーザ入力は、前記第１ハードウェアリソースへのアクセスを拒否し、前記方法は、前記第１アプリケーションへのアクセスを拒否して前記第１ハードウェアリソースにアクセスする段階を更に備える、請求項１または２に記載の方法。
【請求項４】
前記第１ハードウェアリソースは、マイク入力、カメラ入力、タッチ画面入力、キーボード入力、表示出力、触覚出力、モバイルデバイス位置情報、または近接センサ読み取りを含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記カメラ入力は、赤外線カメラからのものである、請求項４に記載の方法。
【請求項６】
サーバから前記複数のポリシを受信し、前記サーバに前記新しいポリシを送信する段階を更に備える、請求項１から５のいずれか一項に記載の方法。
【請求項７】
アクセスを許可または拒否するユーザ入力を要求する通知を提供することは、前記モバイルデバイスのディスプレイにグラフィカルユーザインタフェースを提供すること、または、前記モバイルデバイスのオーディオ出力を使用して自然言語メッセージを提供することを含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記動作モードは、前記モバイルデバイスにインストールされる１または複数の他のアプリケーションのインジケーション、前記モバイルデバイスで実行中である１または複数の他のアプリケーションのインジケーション、または前記モバイルデバイスの現在位置のうちの１または複数を更に含む、請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記新しいポリシを前記複数のポリシに追加してからある期間が経過したことを決定し、前記決定に基づいて、前記複数のポリシから前記新しいポリシを除去する段階を更に備える、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
グラフィック情報を表示するための画面と、
命令を記憶するメモリと、
前記メモリおよび前記画面と通信する１または複数のプロセッサと
を備えるモバイル電子デバイスであって、
前記１または複数のプロセッサは、前記命令を実行して、
前記モバイル電子デバイス上の第１アプリケーションが前記モバイル電子デバイスの第１ハードウェアリソースにアクセスする許可を付与する第１ユーザ入力を受信し、前記第１ユーザ入力に基づいて、前記第１アプリケーションに対して前記第１ハードウェアリソースにアクセスする許可を付与するように構成され、
前記第１アプリケーションに対して前記第１ハードウェアリソースにアクセスする許可を付与した後、前記アプリケーションがバックグラウンドで実行されているときの前記第１アプリケーションによる前記第１ハードウェアリソースへのアクセスの試みを検出すること、および、前記検出に基づいて、
前記モバイル電子デバイスの第１動作モードを取得することであって、前記第１動作モードは、前記モバイル電子デバイスがロック状態にあるかロック解除状態にあるかのインジケーションを含む、取得すること、
複数のポリシの中に、前記第１アプリケーションが前記第１動作モード中に前記第１ハードウェアリソースにアクセスする許可を付与するポリシがないことを決定すること、
前記決定に基づいて、前記第１アプリケーションによる前記第１ハードウェアリソースへのアクセスを許可または拒否するユーザ入力を要求する通知を提供すること、
前記通知に応答して第２ユーザ入力を受信すること、および、
前記第１アプリケーションが前記第２ユーザ入力に従って前記第１動作モード中に前記第１ハードウェアリソースにアクセスすることを許可または拒否する新しいポリシを前記複数のポリシに追加すること
を行うように構成される、
デバイス。
【請求項１１】
前記第２ユーザ入力は、前記第１ハードウェアリソースへのアクセスを許可し、前記１または複数のプロセッサは、前記第１アプリケーションへのアクセスを許可して前記第１ハードウェアリソースにアクセスするように構成される、請求項１０に記載のデバイス。
【請求項１２】
前記第２ユーザ入力は、前記第１ハードウェアリソースへのアクセスを拒否し、前記１または複数のプロセッサは、前記第１アプリケーションへのアクセスを拒否して前記第１ハードウェアリソースにアクセスするように構成される、請求項１０または１１に記載のデバイス。
【請求項１３】
前記第１ハードウェアリソースは、マイク入力、カメラ入力、タッチ画面入力、表示出力、触覚出力、モバイル電子デバイス位置情報、または近接センサ読み取りを含む、請求項１０から１２のいずれか一項に記載のデバイス。
【請求項１４】
前記カメラ入力は、赤外線カメラからのものである、請求項１３に記載のデバイス。
【請求項１５】
前記１または複数のプロセッサが、サーバから前記複数のポリシを受信し、前記サーバに前記新しいポリシを送信するように構成されることを更に備える、請求項１０から１４のいずれか一項に記載のデバイス。
【請求項１６】
アクセスを許可または拒否するユーザ入力を要求する通知を提供することは、前記モバイル電子デバイスのディスプレイにグラフィカルユーザインタフェースを提供すること、または、前記モバイル電子デバイスのオーディオ出力を使用して自然言語メッセージを提供することを含む、請求項１０から１５のいずれか一項に記載のデバイス。
【請求項１７】
前記動作モードは、前記モバイル電子デバイスにインストールされる１または複数の他のアプリケーションのインジケーション、前記モバイル電子デバイスで実行中である１または複数の他のアプリケーションのインジケーション、または前記モバイル電子デバイスの現在位置のうちの１または複数を更に含む、請求項１０から１６のいずれか一項に記載のデバイス。
【請求項１８】
前記１または複数のプロセッサが、前記新しいポリシを前記複数のポリシに追加してからある期間が経過したことを決定し、前記決定に基づいて、前記複数のポリシから前記新しいポリシを除去するように構成されることを更に備える、請求項１０から１７のいずれか一項に記載のデバイス。
【請求項１９】
グラフィック情報を表示するための画面と、
命令を記憶するメモリと、
前記メモリおよび前記画面と通信する１または複数のプロセッサと
を備えるモバイル電子デバイスであって、
前記１または複数のプロセッサは、前記命令を実行して、請求項１から９のいずれか一項に記載の方法を実行するように構成される、
デバイス。
【請求項２０】
命令を備えるコンピュータプログラムであって、前記命令がコンピュータで実行されると、前記コンピュータは、請求項１から９のいずれか一項に記載の方法を実行することが可能になる、コンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
ある例示的な実施形態は、モバイルデバイスにおけるハードウェアリソースアクセスを管理する方法を含む。方法は、モバイルデバイス上の第１アプリケーションがモバイルデバイスの第１ハードウェアリソースにアクセスする許可を付与する第１ユーザ入力を受信し、当該第１ユーザ入力に基づいて、第１アプリケーションに対して第１ハードウェアリソースにアクセスする許可を付与する段階と、第１アプリケーションに対して第１ハードウェアリソースにアクセスする許可を付与した後、アプリケーションがバックグラウンドで実行されているときの第１アプリケーションによる第１ハードウェアリソースへのアクセスの試みを検出すること、および、検出に基づいて、モバイルデバイスの第１動作モードを取得することであって、第１動作モードは、モバイルデバイスがロック状態にあるかロック解除状態にあるかのインジケーションを含む、取得すること、複数のポリシの中に、第１アプリケーションが第１動作モード中に第１ハードウェアにアクセスする許可を付与するポリシがないことを決定すること、当該決定に基づいて、第１アプリケーションによる第１ハードウェアリソースへのアクセスを許可または拒否するユーザ入力を要求する通知を提供すること、当該通知に応答して第２ユーザ入力を受信すること、および、第１アプリケーションが第２ユーザ入力に従って第１動作モード中に第１ハードウェアリソースにアクセスすることを許可または拒否する新しいポリシを複数のポリシに追加することを行う段階とを含む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
別の実施形態は、グラフィック情報を表示するための画面と、命令を記憶するメモリと、メモリおよび画面と通信する１または複数のプロセッサとを備えるモバイル電子デバイスを含む。１または複数のプロセッサは、命令を実行して、モバイルデバイス上の第１アプリケーションがモバイルデバイスの第１ハードウェアリソースにアクセスする許可を付与する第１ユーザ入力を受信し、当該第１ユーザ入力に基づいて、第１アプリケーションに対して第１ハードウェアリソースにアクセスする許可を付与するように構成され、第１アプリケーションに対して第１ハードウェアリソースにアクセスする許可を付与した後、アプリケーションがバックグラウンドで実行されているときの第１アプリケーションによる第１ハードウェアリソースへのアクセスの試みを検出すること、および、当該検出に基づいて、モバイルデバイスの第１動作モードを取得することであって、第１動作モードは、モバイルデバイスがロック状態にあるかロック解除状態にあるかのインジケーションを含む、取得すること、複数のポリシの中に、第１アプリケーションが第１動作モード中に第１ハードウェアにアクセスする許可を付与するポリシがないことを決定すること、当該決定に基づいて、第１アプリケーションによる第１ハードウェアリソースへのアクセスを許可または拒否するユーザ入力を要求する通知を提供すること、当該通知に応答して第２ユーザ入力を受信すること、および、第１アプリケーションが第２ユーザ入力に従って第１動作モード中に第１ハードウェアリソースにアクセスすることを許可または拒否する新しいポリシを複数のポリシに追加することを行うように構成される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
コンピューティングデバイスには様々な動作モードがある。一般的に、動作モードは、コンピューティングデバイスの電源が入っているときのコンピューティングデバイスの状態を表すブール式である。コンピューティングデバイスの状態は、指定されたアプリケーションがフォアグラウンドで実行されているかバックグラウンドで実行されているか、デバイスがロックされているかロック解除されているか、デバイスが機内モードにあるかどうか、デバイスで実行されているアプリケーションのインジケーション、およびデバイスの現在の地理的位置といった因子のうちの１または複数を含む。すなわち、動作モードは因子のブール式である。コンピューティングデバイスが機内モードにあるとき、コンピューティングデバイスは、無線周波数信号伝送（例えばセルラ、Ｗｉ−Ｆｉ、およびＢｌｕｅｔｏｏｔｈ伝送）を中断してよい。コンピューティングデバイスが機内モードにないとき、コンピューティングデバイスは、セルラ、Ｗｉ−Ｆｉ、およびＢｌｕｅｔｏｏｔｈ伝送を使用して信号を受信および伝送するなど、通常の方法で機能してよい。ロック状態は、例えば、デバイスがユーザのポケットまたはハンドバッグにある間、または、別のオブジェクトがデバイスに対して置かれているときに、タッチ画面ディスプレイの不注意な操作を防止するために使用され得る。ロック状態は、権限のない人によるデバイスの使用を防止するためにも使用され得る。概して、デバイスは、ユーザが特定のボタンまたは一連のボタンを押したとき、または、デバイスが一定期間にわたってアイドル状態になったときに、ロック状態になるようにプログラムされる。ユーザがロック状態にあるデバイスを使用したい場合は、ユーザは指令を発し、スライドバーをドラッグし、特定のボタンまたは一連のボタンを押して（例えばパスワードを入力して）デバイスをロック解除する必要がある場合がある。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
本開示のある実施形態は、ハードウェアリソースへのアクセスを支配するポリシでデバイスが構成されることを提供する。ポリシとは、指定されたアプリケーションがコンピューティングデバイスの指定された動作モード中にコンピューティングデバイスにおける指定されたハードウェアリソースへのアクセスを許可されるか拒否されるかを示した規則である。ポリシは、ファイル、例えばＸＭＬファイル、またはテキストなどに保存され得る。ポリシの一般的な形式は、＜アプリケーション識別子、ハードウェアリソース識別子、動作モードのブール式、許可／拒否＞であり、アプリケーション識別子はアプリケーションを識別し、ハードウェアリソース識別子はハードウェアリソース（例えばマイク、カメラなど）を識別し、動作モードは上記の因子のうちの１または複数のブール式である。ポリシは複数の記録を含んでよく、各記録は上記のようなポリシの形式を含んでよい。アプリケーションＩＤ、ハードウェアリソースＩＤがそれぞれのＩＤと一致するとき、かつ、動作モード式がＴＲＵＥと評価されるときに、ポリシがトリガされる。ポリシがトリガされると、ポリシの許可／拒否フィールドに基づいて、識別されたアプリケーションによる識別されたハードウェアリソースへのアクセスが許可または拒否される。オプションとして、ポリシには有効期間があってよく、それを過ぎるとポリシはもはやアクティブではなくなる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
表１の各行は例示的なポリシであってよく、当該ポリシは１または複数の記録として示されてよい。例えば、表１の第１アプリケーション（アプリ１）について言うと、アプリ１がバックグラウンドで実行されており、かつ、カメラアプリが実行中である場合は、アプリ１はマイクでアクションまたはアクセスを開始しようとし、係る意図またはアクセスは表１の行１の第１ポリシに従って拒否される。あるポリシはアプリ３に関する。例えば、アプリ３がフォアグラウンドで実行されている場合は、アプリ３はカメラでアクションまたはアクセスを開始しようとし、係る意図またはアクセスは、表１の行７の第２ポリシに従って許可される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
段階２０１では、第１アプリケーションをインストールするときに、第１アプリケーションがデバイス１００の第１ハードウェアリソースにアクセスする許可が受信される。第１アプリケーションは、デバイス１００、またはオペレーティングシステムの製造業者、または第三者により提供され得る。これに基づいて、段階２０２では、第１アプリケーションがバックグラウンドで実行されているときの第１アプリケーションによる第１ハードウェアリソースへのアクセスの試みが検出される。これに基づいて、モバイルデバイス１００の第１動作モードが取得され、第１動作モードは、モバイルデバイスがロック状態にあるかロック解除状態にあるかのインジケーションを含んでよく、段階２０３では、複数のポリシの中に、第１アプリケーションが第１動作モード中に第１ハードウェアリソースにアクセスする許可を付与するポリシがあるかどうかを決定し、段階２０４では、適切なポリシが存在する場合に、当該ポリシに基づく動作が適宜実行されてよく、係るポリシが存在しない場合に、第１アプリケーションによる第１ハードウェアリソースへのアクセスを許可または拒否するユーザ入力を要求する通知が提供され、段階２０５では、当該通知に応答するユーザ入力が受信され、当該通知への応答が、アクセスが許可されないことである場合に、第１アプリケーションによるアクセスの試みが段階２０６でブロックされ、さもなければ、段階２０７では、第１アプリケーションに対して適切な実行が行われ、次に段階２０８では、第１アプリケーションがユーザ入力に従って第１動作モード中に第１ハードウェアリソースにアクセスすることを許可または拒否する新しいポリシが複数のポリシに追加される。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
Ｓ４０またはＳ４１のような組み合わせは、例が示すように「アプリ＋見つかったＳＳＳポリシ」などとして定義され得る、ユーザが許可した組み合わせ（ＵＰＣ）またはユーザの組み合わせ（ＵＣ）と呼ばれてよく、全てのＵＰＣが有効期限（ＥＤ）で構成され得る。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００７５
【補正方法】変更
【補正の内容】
【００７５】
オーディオ回路５２３は、１または複数のスピーカ５２５およびマイク５２６と接続する。これらのコンポーネントは共に、ユーザとモバイル電子デバイス５００との間にオーディオインタフェースを提供する。オーディオ回路５２３は、周辺機器インタフェース５０３からオーディオデータを受信し、当該オーディオデータを電気信号に変換し、電気信号をスピーカ５２５に伝送する。スピーカ５２５は、人間が聞き取ることができる音波に電気信号を変換する。オーディオ回路５２３は、マイク５２６により音波から変換された電気信号も受信する。オーディオ回路５２３は、電気信号をオーディオデータに変換し、当該オーディオデータを処理のために周辺機器インタフェース５０３に伝送する。オーディオデータは、周辺機器インタフェース５０３により、メモリ５０１および／またはＲＦ回路５２１から取り出され、および／または、メモリ５０１および／またはＲＦ回路５２１に伝送され得る。
【国際調査報告】
2021500641.tif 000009
2021500641.tif 000010
2021500641.tif 000011
2021500641.tif 000012