(57)【要約】  読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのコンピュータ実装方法は、（１）モバイルコンピューティングデバイスの初期化中、モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納された更新サービスを実行することと、（２）更新サービスを介して、モバイルコンピューティングデバイス上に位置する書き込み可能なパーティションを識別することと、（３）更新サービスを介して、読み出し専用のシステムイメージ内に格納された少なくとも１つのシステムレベルサービスに対する書き込み可能なパーティション内の電子署名された更新を識別することと、（４）更新サービスを介して、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスの代わりに、書き込み可能なパーティション内の電子署名された更新を実行することと、を含んでもよい。様々な他の方法、システム、及びコンピュータ可読媒体もまた、開示されている。
2016539405.tif 000002
【特許請求の範囲】
【請求項１】
読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのコンピュータ実装方法であって、該方法の少なくとも一部は、少なくとも１つのプロセッサを備えるモバイルコンピューティングデバイスによって実施され、該方法は、
該モバイルコンピューティングデバイスの初期化中、該モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納された更新サービスを実行することと、
該更新サービスを介して、該モバイルコンピューティングデバイス上に位置する書き込み可能なパーティションを識別することと、
該更新サービスを介して、該読み出し専用のシステムイメージ内に格納された少なくとも１つのシステムレベルサービスに対する該書き込み可能なパーティション内の電子署名された更新を識別することであって、該システムレベルサービスは、該モバイルコンピューティングデバイスの初期化中、ロードされるように設定されている、ことと、
該更新サービスを介して、該読み出し専用のシステムイメージ内に格納された該システムレベルサービスの代わりに、該書き込み可能なパーティション内の該電子署名された更新を実行することと、を含む、方法。
【請求項２】
前記電子署名された更新をリモートサーバから検索することと、
前記書き込み可能なパーティション内の定義済みの場所に前記電子署名された更新を格納することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
更新のための前記書き込み可能なパーティションを定期的にサーチすることと、
更新のための前記リモートサーバを定期的に照会することと、のうち少なくとも一方を更に含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記電子署名された更新を実行する前に、前記電子署名された更新の電子署名を認証することによって、前記電子署名された更新がセキュアであると判定することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記電子署名された更新の前記電子署名を認証することは、
前記電子署名された更新の信頼性を認証することと、
前記電子署名された更新の完全性を認証することと、を含む、請求項４に記載のコンピュータ実装方法。
【請求項６】
前記システムレベルサービスに対する前記電子署名された更新を識別すると、前記システムレベルサービスを終了し、前記電子署名された更新を実行することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記電子署名された更新を実行することは、
前記電子署名された更新を直ちに実行することと、
前記モバイルコンピューティングデバイスが初期化する際、前記電子署名された更新を実行することと、のうち少なくとも一方を含む、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記更新サービスは、前記システムレベルサービスの親プロセスを含む、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記システムレベルサービスに対する前記電子署名された更新を識別する前に、
前記更新サービスを介して、前記更新サービスに対する前記書き込み可能なパーティション内の電子署名された更新を識別することと、
前記更新サービスを介して、前記更新サービスに対する前記電子署名された更新を認証することと、
前記更新サービスを介して、前記更新サービスに対する前記電子署名された更新を実行することと、を更に含む、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記電子署名された更新を識別することは、前記更新サービスを介して、前記電子署名された更新の通知を、
前記システムレベルサービスと、
追加のサービスと、のうち少なくとも一方から受信することを含む、請求項１に記載のコンピュータ実装方法。
【請求項１１】
前記更新サービスを介して、少なくとも１つの追加のシステムレベルサービスに対する更新を識別することであって、該追加のシステムレベルサービスは、前記モバイルコンピューティングデバイスの初期化中、ロードされるように設定されている、ことと、
該追加のシステムレベルサービスに対する該更新の電子署名を認証できなかったので、前記更新サービスを介して、該追加のシステムレベルサービスに対する該更新がセキュアでないと判定することと、
前記更新サービスを介して、該追加のシステムレベルサービスに対する該更新の代わりに、該追加のシステムレベルサービスを実行することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項１２】
前記更新サービスが前記電子署名された更新を実行した後、前記モバイルコンピューティングデバイスが初期化に失敗したことを検出することと、
前記書き込み可能なパーティション内のログに該失敗した初期化についての情報を格納することと、
前記モバイルコンピューティングデバイスが再初期化する際、該ログに格納された該情報に基づいて、前記システムレベルサービスに対する前記電子署名された更新が該失敗した初期化を引き起こしたと判定することと、
前記書き込み可能なパーティション内の前記電子署名された更新の代わりに、前記読み出し専用のシステムイメージ内に格納された前記システムレベルサービスを実行することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項１３】
読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのシステムであって、該システムは、
前記モバイルコンピューティングデバイスの初期化中、前記モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納された更新サービスを実行する、メモリ内に格納された、初期化モジュールと、
前記モバイルコンピューティングデバイス上に位置する書き込み可能なパーティションを識別する、メモリ内に格納された、パーティションモジュールと、
該読み出し専用のシステムイメージ内に格納された少なくとも１つのシステムレベルサービスに対する該書き込み可能なパーティション内の電子署名された更新を識別する、メモリ内に格納された、識別モジュールであって、該システムレベルサービスは、前記モバイルコンピューティングデバイスの初期化中、ロードされるように設定されている、識別モジュールと、
該読み出し専用のシステムイメージ内に格納された該システムレベルサービスの代わりに、該書き込み可能なパーティション内の該電子署名された更新を実行する、メモリ内に格納された、実行モジュールと、
該初期化モジュールと、該識別モジュールと、該実行モジュールと、を実行する、少なくとも１つの物理プロセッサと、を備え、
該更新サービスは、該パーティションモジュールと、該識別モジュールと、該実行モジュールと、を含む、システム。
【請求項１４】
前記電子署名された更新をリモートサーバから検索し、
前記書き込み可能なパーティション内の定義済みの場所に前記電子署名された更新を格納する、メモリ内に格納された、検索モジュールを更に備える、請求項１３に記載のシステム。
【請求項１５】
前記電子署名された更新の電子署名を認証することによって、前記電子署名された更新がセキュアであると判定する、メモリ内に格納された、認証モジュールを更に含む、請求項１３に記載のシステム。
【請求項１６】
前記認証モジュールは、前記電子署名された更新の前記電子署名を、
前記電子署名された更新の信頼性を認証することと、
前記電子署名された更新の完全性を認証することと、によって認証する、請求項１５に記載のシステム。
【請求項１７】
前記初期化モジュールによって実行された前記更新サービスは、前記システムレベルサービスの親プロセスを含む、請求項１５に記載のシステム。
【請求項１８】
前記識別モジュールは、少なくとも１つの追加のシステムレベルサービスに対する更新を識別し、
前記認証モジュールは、該追加のシステムレベルサービスに対する該更新の電子署名を認証できなかったので、該追加のシステムレベルサービスに対する該更新がセキュアでないと判定し、
前記実行モジュールは、該追加のシステムレベルサービスに対する該更新の代わりに、該追加のシステムレベルサービスを実行する、請求項１５に記載のシステム。
【請求項１９】
前記更新サービスが前記電子署名された更新を実行した後、前記モバイルコンピューティングデバイスが初期化に失敗したことを検出し、
前記書き込み可能なパーティション内のログに該失敗した初期化についての情報を格納し、
前記モバイルコンピューティングデバイスが再初期化する際、該ログに格納された該情報に基づいて、前記システムレベルサービスに対する前記電子署名された更新が該失敗した初期化を引き起こしたと判定し、
前記書き込み可能なパーティション内の前記電子署名された更新の代わりに、前記読み出し専用のシステムイメージ内に格納された前記システムレベルサービスを実行する、メモリ内に格納された、フェールセーフモジュールを更に備える、請求項１５に記載のシステム。
【請求項２０】
１つ又は２つ以上のコンピュータ実行可能命令を含む、非一時的コンピュータ可読媒体であって、該１つ又は２つ以上のコンピュータ実行可能命令がコンピューティングデバイスの少なくとも１つのプロセッサによって実行されると、該コンピューティングデバイスに、
モバイルコンピューティングデバイスの初期化中、該モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納された更新サービスを実行させ、
該更新サービスを介して、該モバイルコンピューティングデバイス上に位置する書き込み可能なパーティションを識別させ、
該更新サービスを介して、該読み出し専用のシステムイメージ内に格納され、該モバイルコンピューティングデバイスの初期化中、ロードされるように設定された、少なくとも１つのシステムレベルサービスに対する該書き込み可能なパーティション内の電子署名された更新を識別させ、
該更新サービスを介して、該読み出し専用のシステムイメージ内に格納された該システムレベルサービスの代わりに、該書き込み可能なパーティション内の該電子署名された更新を実行させる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
モバイルデバイスのキャリア及び製造業者は、読み出し専用の、工場出荷時に設定される、システムイメージを有するモバイルコンピューティングデバイスを出荷する場合が多い。これらのシステムイメージは一般的に、モバイルコンピューティングデバイスを作動及び動作させるのに必要な、設定、構成、ソフトウェア、オペレーティングシステムなどを含む。場合によっては、デバイスのキャリア及び製造業者は、（セキュリティソフトウェアのプロバイダなどの）優秀な開発者にこのイメージ内にサービスを組み込ませる場合がある。開発者は、キャリア又は製造業者の無線通信（Over-The-Air）（ＯＴＡ）の更新によってこれらのサービスを更新する場合があるが、この更新プロセスは、不便で緩慢な場合があり、重大なバグに対して開発者が適時に修正を実施することを妨げる場合がある。更に、ＯＴＡの更新は、デバイスの再フラッシュ（re-flashing）を伴う場合が多いため、この更新プロセスは、本質的に危険な作業に相当する場合があり、更新の失敗をもたらす可能性がある。更新の失敗により、デバイスが動作不能となり、かつ／又はデバイス上の重要なアプリケーションに障害を引き起こす場合がある。最後に、開発者は、再マウントされた又は「ルート化された（rooted）」システムイメージに対して更新を実施することが可能であるが、このプロセスは、デバイスの完全性を損なう場合があり、場合によっては、ルート化されたデバイスがキャリアのネットワークに接続することを妨げる場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
したがって、本開示は、読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのより効率的かつ有効なメカニズムの必要性を認識し、これに対処する。
【課題を解決するための手段】
【０００３】
以下でより詳細に記載するように、本開示は概ね、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスの代わりに、書き込み可能なパーティションから、システムレベルサービスに対する更新を実行することによって、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスを更新するためのシステム及び方法に関する。ある例において、かかるタスクを遂行するためのコンピュータ実装方法は、（１）モバイルコンピューティングデバイスの初期化中、モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納された更新サービスを実行することと、（２）更新サービスを介して、モバイルコンピューティングデバイス上に位置する書き込み可能なパーティションを識別することと、（３）更新サービスを介して、読み出し専用のシステムイメージ内に格納され、モバイルコンピューティングデバイスの初期化中、ロードされるように設定された、少なくとも１つのシステムレベルサービスに対する書き込み可能なパーティション内の電子署名された更新を識別することと、その後、（４）更新サービスを介して、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスの代わりに、書き込み可能なパーティション内の電子署名された更新を実行することと、を含んでもよい。
【０００４】
いくつかの例において、コンピュータ実装方法は、（１）電子署名された更新をリモートサーバから検索することと、（２）書き込み可能なパーティション内の定義済みの場所に電子署名された更新を格納することと、を更に含んでもよい。少なくとも１つの実施形態において、方法はまた、（１）更新のための書き込み可能なパーティションを定期的にサーチすることと、（２）更新のためのリモートサーバを定期的に照会することと、を更に含んでもよい。
【０００５】
コンピュータ実装方法はまた、電子署名された更新を実行する前に、電子署名された更新の電子署名を認証することによって、電子署名された更新がセキュアであると判定することを含んでもよい。少なくとも１つの例において、電子署名された更新の電子署名を認証することは、電子署名された更新の信頼性及び／又は完全性を認証することを含んでもよい。
【０００６】
いくつかの実施形態において、コンピュータ実装方法は、システムレベルサービスに対する電子署名された更新を識別すると、システムレベルサービスを終了し、電子署名された更新を実行することを更に含んでもよい。ある例において、電子署名された更新を実行することは、（１）電子署名された更新を直ちに実行すること、及び／又は（２）モバイルコンピューティングデバイスが初期化する際、電子署名された更新を実行することを含んでもよい。
【０００７】
コンピュータ実装方法のいくつかの例において、更新サービスは、システムレベルサービスの親プロセスを含んでもよい。これらの例において、コンピュータ実装方法は、システムレベルサービスに対する電子署名された更新を識別する前に、（１）更新サービスを介して、更新サービスに対する書き込み可能なパーティション内の電子署名された更新を識別することと、（２）更新サービスを介して、更新サービスに対する電子署名された更新を認証することと、その後、（３）更新サービスを介して、更新サービスに対する電子署名された更新を実行することと、を更に含んでもよい。
【０００８】
コンピュータ実装方法の一実施形態において、電子署名された更新を識別することは、更新サービスを介して、（１）システムレベルサービス及び／又は（２）追加のサービスから電子署名された更新の通知を受信することを含んでもよい。コンピュータ実装方法はまた、（１）更新サービスを介して、少なくとも１つの追加のシステムレベルサービスに対する更新を識別することと、（２）追加のシステムレベルサービスに対する更新の電子署名が認証されなかったので、更新サービスを介して、追加のシステムレベルサービスに対する更新がセキュアでないと判定することと、（３）更新サービスを介して、追加のシステムレベルサービスに対する更新の代わりに追加のシステムレベルサービスを実行することと、を含む。
【０００９】
一実施形態において、コンピュータ実装方法はまた、（１）更新サービスが電子署名された更新を実行した後、モバイルコンピューティングデバイスが初期化に失敗したことを検出することと、その後、（２）書き込み可能なパーティション内のログに失敗した初期化についての情報を格納することと、を含む。モバイルコンピューティングデバイスが再初期化する際、方法は、（３）ログに格納された情報に基づいて、システムレベルサービスに対する電子署名された更新が失敗した初期化を引き起こしたと判定することと、（４）書き込み可能なパーティション内の電子署名された更新の代わりに、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスを実行することと、を更に含んでもよい。
【００１０】
一実施形態において、上記の方法を実装するためのシステムは、モバイルコンピューティングデバイスの初期化中、モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納された更新サービスを実行する初期化モジュールを含んでもよい。更新サービスは、モバイルコンピューティングデバイス上に位置する書き込み可能なパーティションを識別するパーティションモジュールを含んでもよい。更新サービスはまた、読み出し専用のシステムイメージ内に格納され、モバイルコンピューティングデバイスの初期化中、ロードされるように設定された、少なくとも１つのシステムレベルサービスに対する書き込み可能なパーティション内の電子署名された更新を識別する識別モジュールを含んでもよい。更新サービスは、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスの代わりに、書き込み可能なパーティション内の電子署名された更新を実行する実行モジュールを更に含んでもよい。システムはまた、更新サービスの初期化モジュール及び様々なモジュールを実行するように構成された少なくとも１つの物理プロセッサを含んでもよい。
【００１１】
対応するコンピュータ可読媒体は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行される際、モバイルコンピューティングデバイスの初期化中、モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納された更新サービスをコンピューティングデバイスに実行させ得る１つ又は２つ以上のコンピュータ可読命令を含んでもよい。これらのコンピュータ可読命令はまた、更新サービスを介して、モバイルコンピューティングデバイス上に位置する書き込み可能なパーティションをコンピューティングデバイスに識別させてもよい。これらのコンピュータ可読命令は、モバイルコンピューティングデバイスの初期化中、読み出し専用のシステムイメージ内に格納され、ロードされるように設定された、少なくとも１つのシステムレベルサービスに対する書き込み可能なパーティション内の電子署名された更新を更新サービスを介してコンピューティングデバイスに更に識別させてもよい。加えて、コンピュータ可読命令は、更新サービスを介して、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスの代わりに、書き込み可能なパーティション内の電子署名された更新をコンピューティングデバイスに実行させてもよい。
【００１２】
本明細書に記載される一般原理に従い、上記の実施形態のうち任意による特徴を互いに組み合わせて使用することができる。これら及び他の実施形態、特徴、及び利点は、添付の図面及び特許請求の範囲と併せて以下の発明を実施するための形態を読むことによって更に十分に理解されるだろう。
【図面の簡単な説明】
【００１３】
添付の図面は、多数の例示的な実施形態を示すものであり、本明細書の一部である。以下の説明と併せて、これらの図面は、本開示の様々な原理を実証及び説明する。
【図１】読み出し専用のシステムイメージ内のシステムレベルサービスを更新するための例示的なシステムのブロック図である。
【図２】読み出し専用のシステムイメージ内のシステムレベルサービスを更新することができる例示的なモバイルコンピューティングデバイスのブロック図である。
【図３】読み出し専用のシステムイメージ内のシステムレベルサービスを更新するための例示的な方法のフロー図である。
【図４】読み出し専用のシステムイメージ内のシステムレベルサービスを更新するために使用される例示的なマルチパーティションストレージデバイスのブロック図である。
【図５】本明細書に記載及び／又は図示される実施形態のうち１つ又は２つ以上を実装することができる例示的なコンピューティングシステムのブロック図である。
【図６】本明細書に記載及び／又は図示される実施形態のうち１つ又は２つ以上を実装することができる例示的なコンピューティングネットワークのブロック図である。
【００１４】
図面を通して、同一の参照符号及び記述は、必ずしも同一ではないが、類似の要素を示す。本明細書に記載される例示的な実施形態は、様々な変更例及び代替的な形態が可能であり、特定の実施形態が例として図面に示されており、本明細書において詳細に記載されることとなる。しかしながら、本明細書に記載される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。逆に、本開示は、添付の特許請求の範囲内にあるすべての変形例、同等物、及び代替物を網羅する。
【発明を実施するための形態】
【００１５】
本開示は、読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのシステム及び方法を概ね対象とする。以下でより詳細に説明するように、本明細書に記載されるシステム及び方法により、読み出し専用のシステムイメージ内に格納されたネイティブな（native）実行可能ファイルを更新するための効率的かつ適時なプロセスを提供することができる。具体的には、本明細書に記載されるシステム及び方法により、書き込み可能なパーティション内のネイティブな実行可能ファイルに対する更新を格納し、その後、読み出し専用のシステムイメージ内に格納された元来のネイティブな実行可能ファイルの代わりに、これらの更新を実行することによって、（ＯＴＡの更新などの）危険な更新プロセスを避け、読み出し専用のシステムイメージをルート化若しくは変更することなく、又はこの完全性を損なうことなく実施することができる安全かつ使用し易いプロセスを開発者に提供することができる。
【００１６】
以下では、図１及び図２を参照して、読み出し専用のシステムイメージ内のシステムレベルサービスを更新するための例示的なシステムを詳細に記載する。対応するコンピュータ実装方法の詳細な説明もまた、図３及び図４に関連して提供されることとなる。更に、本明細書に記載される実施形態のうち１つ又は２つ以上を実装することができる例示的なコンピューティングシステム及びネットワークアーキテクチャの詳細な説明が図５及び図６に関連してそれぞれ提供されることとなる。
【００１７】
図１は、読み出し専用のシステムイメージ内のシステムレベルサービスを更新するための例示的なシステム１００のブロック図である。この図に示されるように、例示的なシステム１００は、１つ又は２つ以上のタスクを実施するための１つ又は２つ以上のモジュール１０２を備えてもよい。例えば、以下でより詳細に説明するように、例示的なシステム１００は、モバイルコンピューティングデバイスの初期化中、モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納された更新サービスを実行する初期化モジュール１０４を備えてもよい。例示的なシステム１００はまた、モバイルコンピューティングデバイス上に位置する書き込み可能なパーティションを識別するパーティションモジュール１０６を備えてもよい。更に、例示的なシステム１００は、読み出し専用のシステムイメージ内に格納され、モバイルコンピューティングデバイスの初期化中、ロードされるように設定された、少なくとも１つのシステムレベルサービスに対する書き込み可能なパーティション内の電子署名された更新を識別する識別モジュール１０８を備えてもよい。例示的なシステム１００は、電子署名された更新の電子署名を認証することによって、電子署名された更新がセキュアであると判定する認証モジュール１１０を更に備えてもよい。例示的なシステム１００はまた、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスの代わりに、書き込み可能なパーティション内の電子署名された更新を実行する実行モジュール１１２を更に備えてもよい。
【００１８】
いくつかの実施形態において、例示的なシステム１００はまた、電子署名された更新をリモートサーバから検索し、書き込み可能なパーティション内の定義済みの場所に電子署名された更新を格納する検索モジュール１１４を備えてもよい。例示的なシステム１００は、モバイルコンピューティングデバイスを初期化させない電子署名された更新の実行を無効にするフェールセーフモジュール１１６を更に備えてもよい。別々の要素として示されるが、図１のモジュール１０２のうち１つ又は２つ以上は、単一のモジュール又はアプリケーションの一部を表してもよい。
【００１９】
特定の実施形態において、図１のモジュール１０２のうち１つ又は２つ以上は、コンピューティングデバイスによって実行される際、コンピューティングデバイスに１つ又は２つ以上のタスクを実施させる１つ又は２つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、以下でより詳細に記載されるように、モジュール１０２のうち１つ又は２つ以上は、図２に示されるデバイス（例えば、モバイルコンピューティングデバイス２０２及び／又は更新サーバ２０６）、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャの一部などの１つ又は２つ以上のコンピューティングデバイス上に格納され、その上で作動するように設定された、ソフトウェアモジュールを表してもよい。図１のモジュール１０２のうち１つ又は２つ以上はまた、１つ又は２つ以上のタスクを実施するように構成された１つ又は２つ以上の専用コンピュータのすべて又は一部を表してもよい。
【００２０】
図１に示されるように、例示的なシステム１００はまた、更新データベース１２０などの１つ又は２つ以上のデータベースを備えてもよい。ある例において、更新データベース１２０は、図２のモバイルコンピューティングデバイス２０２などのモバイルコンピューティングデバイス上の読み出し専用のシステムイメージ内に格納されたシステムレベルサービスに対する更新を格納するように構成されてもよい。少なくとも１つの実施形態において、更新データベース１２０は、更新サーバ２０６上に格納されたデータベースを表してもよく、更新サーバ２０６は、ネットワーク２０４を介して、モバイルコンピューティングデバイス２０２を更新するように構成されてもよい。
【００２１】
更新データベース１２０は、単一のデータベース若しくはコンピューティングデバイス、又は複数のデータベース若しくはコンピューティングデバイスの一部を表してもよい。例えば、更新データベース１２０は、図２の更新サーバ２０６の一部、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の一部を表してもよい。あるいは、図１の更新データベース１２０は、図２のモバイルコンピューティングデバイス２０２及び／若しくは更新サーバ２０６、図５のコンピューティングシステム５１０、並びに／又は図６の例示的なネットワークアーキテクチャ６００の一部などのコンピューティングデバイスがアクセスすることができる１つ又は２つ以上の物理的に別々のデバイスを表してもよい。
【００２２】
図１の例示的なシステム１００は、様々な方法で実装することができる。例えば、例示的なシステム１００のすべて又は一部は、図２における例示的なシステム２００の一部を表してもよい。図２に示されるように、システム２００は、ネットワーク２０４を介して更新サーバ２０６と通信するモバイルコンピューティングデバイス２０２を備えてもよい。
【００２３】
一実施形態において、モバイルコンピューティングデバイス２０２及び／又は更新サーバ２０６のうち少なくとも１つのプロセッサによって実行される際、図１のモジュール１０２のうち１つ又は２つ以上により、モバイルコンピューティングデバイス２０２及び／又は更新サーバ２０６は、読み出し専用のシステムイメージ内のシステムレベルサービスを容易に更新することができる。例えば、以下でより詳細に記載されるように、初期化モジュール１０４は、モバイルコンピューティングデバイス２０２の初期化中、モバイルコンピューティングデバイス２０２に、モバイルコンピューティングデバイス２０２上に位置する読み出し専用のシステムイメージ内に格納された更新サービスを実行させてもよい。その後、パーティションモジュール１０６は、モバイルコンピューティングデバイス２０２に、モバイルコンピューティングデバイス２０２上に位置する書き込み可能なパーティションを識別させてもよい。その後、識別モジュール１０８は、モバイルコンピューティングデバイス２０２に、モバイルコンピューティングデバイス２０２上に位置する書き込み可能なパーティション内の電子署名された更新２０８を識別させてもよい。その後、認証モジュール１１０は、モバイルコンピューティングデバイス２０２に、電子署名された更新２０８の電子署名を認証することによって、電子署名された更新２０８がセキュアであると判定させてもよい。最後に、実行モジュール１１２は、モバイルコンピューティングデバイス２０２に、読み出し専用パーティション内に格納されたシステムレベルサービスの代わりに、書き込み可能なパーティション内の電子署名された更新２０８を実行させてもよい。
【００２４】
一実施形態において、検索モジュール１１４は、モバイルコンピューティングデバイス２０２に、電子署名された更新２０８を更新サーバ２０６から検索させ、電子署名された更新２０８を書き込み可能なパーティション内の定義済みの場所に格納させてもよい。更に、フェールセーフモジュール１１６は、モバイルコンピューティングデバイス２０２に、モバイルコンピューティングデバイス２０２を初期化させない電子署名された更新の実行を無効にさせてもよい。
【００２５】
モバイルコンピューティングデバイス２０２は、コンピュータ実行可能命令を読み取ることができる任意のタイプ又は形態のコンピューティングデバイスを概ね表す。モバイルコンピューティングデバイス２０２の例として、ラップトップ、タブレット、携帯電話、携帯情報端末（Personal Digital Assistant）（ＰＤＡ）、マルチメディアプレーヤ、組み込みシステム、これらのうち１つ若しくは２つ以上の組み合わせ、図５の例示的なコンピューティングシステム５１０、又は任意の他の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
【００２６】
更新サーバ２０６は、モバイルコンピューティングデバイスに対して、電子署名された更新２０８などのシステムレベルサービスに対する更新を格納及び提供できる任意のタイプ又は形態のコンピューティングデバイスを概ね表す。更新サーバ２０６の例として、様々なデータベースサービスを提供し、かつ／又は特定のソフトウェアアプリケーションを作動させるように構成されたアプリケーションサーバ及びデータベースサーバが挙げられるが、これらに限定されない。少なくとも１つの例において、更新サーバ２０６は、モバイルコンピューティングデバイス２０２からの電子署名された更新２０８の要求に応答して、電子署名された更新２０８をモバイルコンピューティングデバイス２０２に提供してもよい。別の例において、更新サーバ２０６は、モバイルコンピューティングデバイス２０２に対し、定期的に更新を実施するように構成されてもよい。
【００２７】
ネットワーク２０４は、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概ね表す。ネットワーク２０４の例として、イントラネット、広域ネットワーク（Wide Area Network）（ＷＡＮ）、ローカルエリアネットワーク（Local Area Network）（ＬＡＮ）、パーソナルエリアネットワーク（Personal Area Network）（ＰＡＮ）、インターネット、電力線通信（ＰＬＣ）、セルラーネットワーク（例えば、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ（ＧＳＭ（登録商標））ネットワーク）、図６の例示的なネットワークアーキテクチャ６００などが挙げられるが、これらに限定されない。ネットワーク２０４は、無線接続又は有線接続を使用して、通信又はデータ転送を容易にすることができる。一実施形態において、ネットワーク２０４は、モバイルコンピューティングデバイス２０２と更新サーバ２０６との間の通信を容易にすることができる。
【００２８】
図３は、読み出し専用のシステムイメージ内のシステムレベルサービスを更新するための例示的なコンピュータ実装方法３００のフロー図である。図３に示される工程は、任意の好適なコンピュータが実行可能なコード及び／又はコンピューティングシステムによって実施される。いくつかの実施形態において、図３に示す工程は、図１のシステム１００、図２のシステム２００、図４のストレージデバイス４００、図５のコンピューティングシステム５１０、及び／又は図６の例示的なネットワークアーキテクチャ６００の一部のうち１つ又は２つ以上によって実施される。
【００２９】
図３に示されるように、工程３０２では本明細書に記載されるシステムのうち１つ又は２つ以上は、モバイルコンピューティングデバイスの初期化中、モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納された更新サービスを実行してもよい。例えば、初期化モジュール１０４は、図２のモバイルコンピューティングデバイス２０２の一部として、モバイルコンピューティングデバイス２０２の初期化中、モバイルコンピューティングデバイス２０２上に位置する読み出し専用のシステムイメージ内に格納された更新サービスを実行してもよい。
【００３０】
本明細書で使用する際、用語「初期化」は、モバイルコンピューティングデバイス２０２を参照して使用するとき、モバイルコンピューティングデバイス２０２によって実施される任意のタイプ又は形態のブートプロセスを概ね指す。例えば、用語「初期化」は、モバイルコンピューティングデバイス２０２を起動及び／又はブートさせるために使用されるモバイルコンピューティングデバイス２０２上で実施される任意のプロセスの任意の部分を指し得る。用語「初期化」はまた、モバイルコンピューティングデバイス２０２にオペレーティングシステム内のアプリケーションを作動させる用意及び／又は準備をする任意のプロセス又はプロセスの一部を指し得る。
【００３１】
いくつかの例において、用語「初期化」は、モバイルコンピューティングデバイス２０２をブートさせるために使用される一連の工程を指し得る。かかる工程の例として、任意の順に、「ブートローダ」をロードする工程、任意のタイプのＰｏｗｅｒ−Ｏｎ−Ｓｅｌｆ−Ｔｅｓｔ（ＰＯＳＴ）を実施する工程、カーネル及び／若しくはオペレーティングシステムをロード及び実行する工程、ハードウェアデバイスを検出し、デバイスのドライバをロードする工程、低レベルのアプリケーションプログラミングインターフェース（Application Programming Interface)(ＡＰＩ）及びシステムのライブラリをロードする工程、低レベルのシステムサービス（例えば、ＡＮＤＲＯＩＤ（登録商標、以下同じ）デバイス上のＺｙｇｏｔｅサービス）をロード及び実行する工程、初期化プロセス及び／若しくはファイル（例えば、ＡＮＤＲＯＩＤデバイス用の「ｉｎｉｔ」プロセス及び「ｉｎｉｔ．ｒｃ」ファイル）を実行する工程、カーネルデーモンを実行する工程、ファイルシステムをマウントする工程、システムサービス及び／若しくはコアアプリケーションをロードする工程、並びに／又はモバイルコンピューティングデバイス２０２の初期化、設定、ブート、及び／若しくは作動に必要な任意の他の好適な工程若しくは工程の組み合わせを実施する工程が挙げられるが、これらに限定されない。
【００３２】
語句「更新サービス」は、本明細書で使用する際、モバイルコンピューティングデバイス２０２上に格納されたシステムレベルサービスを更新できる任意のタイプのプロセスを概ね指す。いくつかの例において、この更新サービスは、更新サーバ２０６及び／又はモバイルコンピューティングデバイス２０２などの１つ又は２つ以上のコンピューティングデバイス上で実行される１つ又は２つ以上のプロセス及び／又は工程を含んでもよい。この更新サービスはまた、モバイルコンピューティングデバイス２０２を更新するために使用される任意のタイプ又は組み合わせのファイル、ライブラリ、コード、システム、サービス、プロセスなどを含んでもよい。少なくとも１つの実施形態において、この更新サービスは、パーティションモジュール１０６、識別モジュール１０８、認証モジュール１１０、実行モジュール１１２、検索モジュール１１４、及び／若しくはフェールセーフモジュール１１６などのモジュール１０２のうち１つ又は２つ以上によって実施される１つ又は２つ以上の工程及び／又はプロセスを含んでもよい。
【００３３】
本明細書で使用する際、語句「読み出し専用のシステムイメージ」は、書き込み可能ではないモバイルコンピューティングデバイス上に格納された任意のタイプのシステムイメージを概ね指す。語句「読み出し専用のシステムイメージ」は、図４の読み出し専用のシステムイメージ４０４などの様々な構成における様々なシステムイメージを指し得る。いくつかの例において、語句「読み出し専用のシステムイメージ」は、モバイルコンピューティングデバイス２０２の読み出し専用のパーティション上に格納された任意のタイプ又は形態のシステムイメージ（例えば、ＡＮＤＲＯＩＤ用の「／ｓｙｓｔｅｍ」パーティション）を指し得る。これらの例において、読み出し専用のシステムイメージは、書き込み可能なパーティションに対してイメージを「ルート化」又は再マウントすることなく、概ね書き込み不能、変更不能、かつ／又は設定不能であってもよい。
【００３４】
読み出し専用のシステムイメージは、モバイルコンピューティングデバイスをブート、作動、及び／又は、一般的に使用するのに必要なファイル、プロセス、コード、ライブラリ、サービス、カーネル、オペレーティングシステムなどを含有してもよい。読み出し専用のシステムイメージはまた、セキュリティソフトウェアのプロバイダなどの第三者の開発者によって提供される組み込まれたシステムレベルサービスを含有してもよい。いくつかの例において、読み出し専用のシステムイメージは、モバイルコンピューティングデバイス２０２の製造業者又はキャリアによって設定されたファクトリイメージ（factory image）を表してもよく、それ自体がその製造業者又はキャリアに特有の設定、ソフトウェア、サービス、ドライバなどを含有してもよい。いくつかの実施形態において、読み出し専用のシステムイメージは、ＯＴＡの更新を介して更新されてもよい。
【００３５】
図４は、読み出し専用のパーティション４０２及び書き込み可能なパーティション４１４の両方を含有する例示的なストレージデバイス４００を示す。ある例において、ストレージデバイス４００は、モバイルコンピューティングデバイス２０２及び／又はコンピューティングシステム５１０などのモバイルデバイスのためのストレージデバイス（例えば、ＡＮＤＲＯＩＤデバイス内の内部ストレージデバイス）を表し得る。この例において、デバイスの初期化中、読み出し専用のパーティション４０２内の読み出し専用のシステムイメージ４０４は、（以下で詳細に述べるようなローダサービス４０８及び／又はハブサービス４１０などの）システムレベルサービスを実行及び／又はロードする初期化ファイル４０６を含有してもよい。以下でより詳細に記載するように、いくつかの例において、ローダサービス４０８及び／又はハブサービス４１０は、列挙される「更新サービス」を表し得る。
【００３６】
本明細書に記載されるシステムは、様々な方法で工程３０２を実施してもよい。ある例において、本明細書に記載されるシステムは、初期化プロセスによって更新サービスを初期化してもよい。例えば、初期化モジュール１０４は、初期化中、システムレベルサービスを実行及び／又はロードするように設定された初期化プロセス（例えば、ＡＮＤＲＯＩＤ用の「ｉｎｉｔ」プロセス）を表してもよく、このプロセスの一部として、更新サービスを実行することができる。具体的には、初期化モジュール１０４は、初期化ファイル（例えば、図４の初期化ファイル４０６）を分析する初期化プロセスを表してもよく、初期化ファイル内に見出されるエントリ（例えば、ローダサービス４０８及び／又はハブサービス４１０のためのエントリ）を実行する。例えば、更新サービスは、初期化ファイル（例えば、ＡＮＤＲＯＩＤ用のｉｎｉｔ．ｒｃ）内のサービスエントリを表してもよい。この例において、初期化モジュール１０４は、サービスエントリによって指向されるプロセスを実行することによって更新サービスを実行することができる。
【００３７】
いくつかの実施形態において、初期化モジュール１０４は、読み出し専用のシステムイメージ（例えば、図４の読み出し専用のパーティション４０２内の読み出し専用のシステムイメージ４０４）から実行されてもよく、同じ読み出し専用のシステムイメージから更新サービスを実行してもよい。他の実施形態では、初期化モジュール１０４は、モバイルコンピューティングデバイス２０２の初期化中、更新サービスを実行するために好適な任意の他のプロセスを使用して更新サービスを実行してもよい。
【００３８】
本明細書に記載されるシステムは、モバイルコンピューティングデバイス２０２の初期化中、任意の時間に更新サービスを実行してもよい。例えば、初期化モジュール１０４は、初期化プロセスの開始時に（例えば、カーネルが初期化された直後に）、初期化の最終工程の間（例えば、高レベルのアプリケーション及びサービスをロードする間）、又はモバイルコンピューティングデバイス２０２の初期化中の任意の他の時間に更新サービスを実行してもよい。いくつかの実施形態において、更新サービスは、任意の様々な設定における１つ又は２つ以上のファイル、実行可能ファイル、コンピュータ実行可能命令、バイナリ、及び／又はライブラリを含んでもよい。これらの実施形態において、更新サービスを実行することは、かかる設定内に見出される１つ又は２つ以上のコンピュータ実行可能命令を実行することを含んでもよい。
【００３９】
図３に示されるように、工程３０４では、本明細書に記載されるシステムは、更新サービスを介して、モバイルコンピューティングデバイス上に位置する書き込み可能なパーティションを識別することができる。例えば、パーティションモジュール１０６は、図２のモバイルコンピューティングデバイス２０２の一部として、モバイルコンピューティングデバイス２０２上に位置する書き込み可能なパーティション（例えば、図４の書き込み可能なパーティション４１４）を識別することができる。
【００４０】
本開示内では、語句「書き込み可能なパーティション」は、書き込み又は変更することができる、任意のタイプ又は形態のコンピュータ可読ストレージデバイス上に位置する任意のパーティションを概ね指す。いくつかの実施形態において、語句「書き込み可能なパーティション」は、ファイル及び／又はディレクトリに対して変更を行うことができるパーティションを指し得る。特定の例において、モバイルコンピューティングデバイス２０２上に位置する様々なアプリケーション及びサービスは、パーティションに対してファイルを保存し、パーティションにプログラム、ソフトウェア及び／又は更新をインストールし、パーティション上にユーザ設定及び構成を保存し、パーティション上にログ及び他のデータを格納し、かつ書き込み可能なパーティション上のデータを変更又は修正する任意の他の行為又はプロセスを実施することによって、書き込み可能なパーティションを変更することができる。いくつかの例において、語句「書き込み可能なパーティション」は、サービス、ファイル、ライブラリ、アプリケーションなどに対する更新を格納するパーティション（例えば、ＡＮＤＲＯＩＤ用の「／ｄａｔａ」パーティション）を指し得る。
【００４１】
本明細書に記載されるシステム及び方法は、様々な方法で工程３０４を実施してもよい。ある例において、パーティションモジュール１０６は、書き込み可能なパーティションのためのモバイルコンピューティングデバイス２０２上の１つ又は２つ以上のストレージデバイスをサーチしてもよい。別の例において、パーティションモジュール１０６は、書き込み可能なパーティションのためのストレージデバイス上の定義済みの場所をサーチしてもよい。いくつかの実施形態において、パーティションモジュール１０６は、モバイルコンピューティングデバイス２０２の初期化プロセスによって発見されたパーティションを調査することによって、書き込み可能なパーティションを識別することができる。例えば、モバイルコンピューティングデバイス２０２の初期化中、ファイルシステムをマウントするように設定されたブートプロセスにより、複数のパーティションを発見することができる。この例において、パーティションモジュール１０６は、ブートプロセスによって発見されたパーティションデータにアクセスすることによって、工程３０４を実施することができる。
【００４２】
図３に示されるように、工程３０６では、本明細書に記載されるシステムは、更新サービスを介して、読み出し専用のシステムイメージ内の少なくとも１つのシステムレベルサービスに対する書き込み可能なパーティション内の電子署名された更新を識別することができる。例えば、識別モジュール１０８は、図２のモバイルコンピューティングデバイス２０２の一部として、モバイルコンピューティングデバイス２０２の読み出し専用のシステムイメージ内のシステムレベルサービスに対するモバイルコンピューティングデバイス２０２の書き込み可能なパーティション内の電子署名された更新２０８を識別することができる。
【００４３】
語句「電子署名された更新」は、本明細書で使用する際、電子署名（例えば、電子署名４１８及び／又は電子署名４２２）を使用して署名された任意のタイプ又は形態の更新（例えば、図４のローダの更新４１６及び／又はハブの更新４２０）を概ね指す。かかる更新の例として、システムレベルサービスの更新、システムレベルライブラリの更新、システムレベルファイル及び／若しくはバイナリの更新、システムレベルデーモンの更新、システムイメージの更新、初期化プロセスの更新、初期化ファイルの更新、並びに／又は任意の他の好適なタイプ又は形態の更新が挙げられるが、これらに限定されない。更に、用語「電子署名」は、本明細書で使用する際、デジタルオブジェクトの信頼性及び／又は完全性を実証するために使用される任意のタイプ又は形態のスキームを概ね指す。電子署名は、ＲＳＡ、ＤＳＡ、ＥＣＤＳＡ、ＥＩＧａｍａｌ署名スキーム、Ｓｃｈｎｏｒｒ署名、Ｐｏｉｎｔｃｈｅｖａｌ−Ｓｔｅｒｎ署名、Ｒａｂｉｎ署名、ＢＬＳなどのペアリング系スキーム、否認不可署名（undeniable signature）、アグリゲート署名などの様々な暗号化アルゴリズム及びスキーム、並びに／又は任意の他のタイプ若しくは形態の好適なアルゴリズム及び／若しくはスキームを使用して暗号化されてもよい。電子署名の例として、デジタルオブジェクトの完全性を認証する署名、デジタルオブジェクトの著者を認証する署名、デジタルオブジェクトの完全性及び著者の両方を認証する署名、並びに／又は任意の方法でデジタルオブジェクトの安全性を実証するために使用され得る任意の他のタイプ又は形態の署名が挙げられるが、これらに限定されない。
【００４４】
いくつかの例において、電子署名された更新及び電子署名は、同じファイルに格納されてもよい。あるいは、電子署名及び電子署名された更新は、別々のファイルとして格納されてもよい。例えば、電子署名された更新、及び更新に対応する電子署名は、書き込み可能なパーティション内の別々の場所に別々のファイルとして格納されてもよい。
【００４５】
語句「システムレベルサービス」は、本明細書で使用する際、モバイルコンピューティングデバイス２０２にネイティブな任意のタイプのサービスを概ね指す。システムレベルサービスの例として、任意のタイプ又は形態のネイティブなファイル、プロセス、バイナリ、コンピュータ実行可能命令、及び／若しくはこれらの任意の組み合わせが挙げられるが、これらに限定されない。「システムレベルサービス」はまた、読み出し専用のシステムイメージ内に格納されたネイティブなサービスを指し得る。ある例において、モジュール１０２のすべて又は一部は、モバイルコンピューティングデバイス２０２の読み出し専用のシステムイメージ上に格納されたシステムレベルサービスを表してもよい。
【００４６】
語句「システムレベルサービス」はまた、モバイルコンピューティングデバイスの初期化中、ロードされるように設定された任意のタイプのネイティブなサービスを指し得る。かかるサービスとして、初期化中、実行されるように具体的に設計及び／又は設定されたプロセス、ファイル、ライブラリ、ＡＰＩ、及び／又はコンピュータ実行可能命令が挙げられる。例えば、モジュール１０２のすべて又は一部は、モバイルコンピューティングデバイス２０２の初期化中、ロードされるように具体的に設定されてもよい。
【００４７】
いくつかの例において、語句「システムレベルサービス」はまた、モバイルコンピューティングデバイス２０２が初期化するために実行されなければならないサービス若しくはプロセス、並びに／又は高レベルのアプリケーション及びサービスの実行の前に実行されなければならないサービス又はプロセスを指し得る。語句「システムレベルサービス」はまた、低レベルのシステム及びサービスにアクセスする必要があり、したがって、モバイルコンピューティングデバイス２０２の初期化中、ロードされるように設定されたサービスを指し得る。いくつかの実施形態において、語句「システムレベルサービス」は、モバイルコンピューティングデバイス２０２の初期化中、実行されるように設定されたデーモン（即ち、バックグラウンドプロセス）を指し得る。
【００４８】
いくつかの例において、システムレベルサービスは、ＡＮＤＲＯＩＤプラットフォーム（例えば、ＡＮＤＲＯＩＤ  ４．０）などのモバイルプラットフォームに特有の様々なネイティブなサービスを含んでもよい。ネイティブなＡＮＤＲＯＩＤのシステムレベルサービスの例として、ブートローダ、ＬＩＮＵＸ系のカーネル、カーネルドライバ（例えば、オーディオドライバ、ディスプレイドライバ、ｕｓｂドライバなど）、「ｉｎｉｔ」プロセス、「ｉｎｉｔ．ｒｃ」ファイル、Ｚｙｇｏｔｅプロセス、Ｄａｌｖｉｋ仮想マシン、ＡＮＤＲＯＩＤランタイムコアライブラリ（runtime core library）、システムライブラリ（例えば、ＳＱＬｉｔｅ、ＳＧＬ、ＳＳＬ、ｌｉｂｃ、ＯｐｅｎＧＬなど）、及び／又はアプリケーションフレームワーク（例えば、ウィンドウマネージャ、アクティビティマネージャ、ビューシステム、ＸＭＰＰサービス、パッケージマネージャなど）が挙げられるが、これらに限定されない。加えて、これらのＡＮＤＲＯＩＤのシステムレベルサービスは、様々なＡＮＲＯＩＤの読み出し専用のシステムイメージ（例えば、ＡＮＤＲＯＩＤ  ４．３ＪＳＳ１５Ｑ及びＪＳＳ１５Ｒなどのネクサス（nexus）用の「ｒａｚｏｒ」ファクトリイメージ）内に含まれてもよい。
【００４９】
いくつかの例において、語句「システムレベルサービス」は、モバイルコンピューティングデバイス２０２の読み出し専用のシステムイメージに組み込まれ、モバイルコンピューティングデバイス２０２が初期化する際、ロードされるように設定されたネイティブなサービスのフレームワーク内のサービスを指し得る。例えば、セキュリティソフトウェアの開発者は、モバイルコンピューティングデバイス２０２が初期化する際、セキュリティのために実行するように設定された読み出し専用のシステムイメージに（図４のローダサービス４０８及びハブサービス４１０などの）セキュリティサービス及びツールのフレームワークを組み込んでもよい。いくつかの実施形態において、読み出し専用のシステムイメージとして、様々な第三者の開発者によって提供される様々な他のフレームワーク、サービス、ファイルなどが挙げられる。
【００５０】
本明細書におけるシステム及び方法は、様々な方法で工程３０６を実施してもよい。一実施形態において、本明細書に記載されるシステムは、（１）電子署名された更新をリモートサーバから検索し、（２）電子署名された更新を書き込み可能なパーティション内の定義済みの場所に格納してもよい。例えば、検索モジュール１１４は、図４のローダサービス４０８に対する更新（例えば、ローダの更新４１６）を更新サーバ２０６から検索し、書き込み可能なパーティション４１４に格納してもよい。この例において、識別モジュール１０８は、書き込み可能なパーティション４１４内の定義済みの場所をサーチすることによって、ローダの更新４１６を識別してもよい。いくつかの例において、この定義済みの場所は、検索モジュール１１４がローダの更新４１６を格納する書き込み可能なパーティション４１４内のディレクトリ又はフォルダであってもよい。
【００５１】
いくつかの実施形態において、本明細書に記載されるシステムは、（１）更新のための書き込み可能なパーティションを定期的にサーチし、かつ／又は（２）更新のためのリモートサーバを定期的に照会してもよい。例えば、識別モジュール１０８は、更新のための書き込み可能なパーティション内の定義済みの場所を定期的にサーチしてもよい。いくつかの実施形態において、識別モジュール１０８は、１日に１回、１週間に１回、１ヶ月に１回、１日に複数回などの様々な間隔で、又は任意の他の好適なスケジュール若しくは間隔で、定義済みの場所をサーチしてもよい。同様に、いくつかの実施形態において、検索モジュール１１４は、更新のための更新サーバ２０６を定期的に照会してもよい。例えば、検索モジュール１１４は、１日に１回、１週間に１回、１ヶ月に１回、１日に複数回などの様々な間隔で、又は任意の他の好適なスケジュール若しくは間隔で、更新サーバ２０６を照会してもよい。
【００５２】
少なくとも１つの実施形態において、本明細書に記載されるシステムは、更新サービスを介して電子署名された更新の通知を、（１）システムレベルサービス及び／又は（２）追加のサービスから受信することによって、電子署名された更新を識別することができる。例えば、識別モジュール１０８は、（識別モジュール１０８などの）別のソフトウェアモジュールに更新を通知するように設定されたサービス又はプロセスなどのローダサービス４０８及び／又は追加のサービス（例えば、ハブサービス４１０）から通知を受信することによってローダの更新４１６を識別してもよい。いくつかの例において、システムレベルサービスは、追加のサービスの親プロセスであってもよい（例えば、ローダサービス４０８は、ハブサービス４１０の親プロセスを表してもよい）。他の例において、システムレベルサービスは、追加のサービスの子プロセスであってもよい。
【００５３】
図３に示されるように、工程３０８では、本明細書に記載されるシステムは、更新サービスを介して、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスの代わりに、書き込み可能なパーティション内の電子署名された更新を実行してもよい。例えば、実行モジュール１１２は、図２のモバイルコンピューティングデバイス２０２の一部として、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスの代わりに、電子署名された更新２０８を実行してもよい。
【００５４】
本明細書に記載されるシステム及び方法は、様々な方法で工程３０８を実施してもよい。例えば、実行モジュール１１２は、識別モジュール１０８が電子署名された更新２０８を識別してから任意の時間後、電子署名された更新２０８を実行してもよい。一実施形態において、実行モジュール１１２は、識別モジュール１０８が電子署名された更新２０８を識別した後、電子署名された更新２０８を直ぐに実行してもよい。別の実施形態では、実行モジュール１１２は、モバイルコンピューティングデバイス２０２が次回初期化されるまで電子署名された更新２０８の実行を待機してもよい。
【００５５】
いくつかの実施形態において、本明細書に記載されるシステムは、モバイルコンピューティングデバイスが初期化しないように電子署名された更新の実行を無効にしてもよい。例えば、本明細書に記載されるシステムは、工程３０８に記載されるように、電子署名された更新を実行した後、（１）モバイルコンピューティングデバイスが初期化に失敗したことを検出し、その後、（２）失敗した初期化についての情報を書き込み可能なパーティション内のログに格納してもよい。モバイルコンピューティングデバイスが再初期化する際、本明細書に記載されるシステムは、加えて、（３）ログに格納された情報に基づいて、システムレベルサービスに対する電子署名された更新が失敗した初期化を引き起こしたと判定し、（４）書き込み可能なパーティション内の電子署名された更新の代わりに、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスを実行してもよい。具体的に、フェールセーフモジュール１１６は、実行モジュール１１２が電子署名された更新２０８を実行した後、モバイルコンピューティングデバイス２０２が初期化に失敗したことを検出してもよい。その後、フェールセーフモジュール１１６は、失敗した初期化についての情報を、初期化ログ１２２内に格納してもよい。モバイル−コンピューティングデバイス２０２が再初期化する際、フェールセーフモジュール１１６は、初期化ログ１２２に格納された情報に基づいて、電子署名された更新２０８が失敗した初期化を引き起こしたと判定してもよい。その後、フェールセーフモジュール１１６は、電子署名された更新２０８の代わりに、システムレベルサービスを実行してもよい。
【００５６】
様々な実施形態において、本明細書に記載されるシステムは、電子署名された更新を実行する前に、電子署名された更新の電子署名を認証することによって電子署名された更新がセキュアであると判定してもよい。例えば、認証モジュール１１０は、電子署名された更新２０８の電子署名を認証することによって、電子署名された更新２０８がセキュアであると判定してもよい。同様に、ローダサービス４０８は、電子署名４２２を認証することによって、ハブの更新４２０がセキュアであると判定してもよい。
【００５７】
本明細書に記載されるシステムは、電子署名（したがって、署名に関連した更新）を様々な方法で認証してもよい。ある例において、本明細書に記載されるシステムは、電子署名された更新の発行者によって提供された公開暗号鍵を使用して、電子署名された更新に関連した電子署名の復号に成功することによって、電子署名された更新の信頼性を認証してもよい。例えば、認証モジュール１１０は、ローダの更新４１６の発行者によって提供された暗号の公開暗号鍵を使用して、ローダの更新４１６に対応する電子署名４１８の復号に成功することによって、図４のローダの更新４１６の信頼性を認証してもよい。
【００５８】
別の例において、本明細書に記載されるシステムは、電子署名された更新に関連する電子署名内に含まれる暗号学的ハッシュを認証することによって、電子署名された更新の完全性を認証してもよい。例えば、認証モジュール１１０は、（１）暗号学的チェックサム又はハブの更新４２０のハッシュを計算し、（２）ハブの更新４２０の発行者によって提供された公開暗号鍵を使用して、電子署名４２２を復号して、暗号学的ハッシュ４２４を得、その後、（３）暗号学的ハッシュ４２４が、計算されたハッシュに一致すると判定することによって、図４のハブの更新４２０の完全性を認証してもよい。このように電子署名４２２を証明することにより、発行者の手を離れて以降、ハブの更新４２０が変更又は改ざんされていないことを認証することができる。
【００５９】
本明細書に記載されるシステムのいくつかの実施形態において、更新サービスは、システムレベルサービスの親プロセスであってもよい。例えば、更新サービスは、セキュリティソフトウェアのプロバイダによって提供されたサービスのフレームワークの一部であってもよい。この例において、ローダサービス４０８は、次々にハブサービス４１０をロード及び監視できる列挙された更新サービスを表してもよい。いくつかの実施形態において、ハブサービス４１０は、列挙されたシステムレベルサービスを表してもよく、他の実施形態では、システムレベルサービスは、ハブサービス４１０の子プロセスを表してもよい。
【００６０】
更新サービスがシステムレベルサービスの親プロセスである実施形態では、本明細書に記載されるシステムは、システムレベルサービスに対する電子署名された更新を識別する前に、（１）更新サービスを介して、更新サービスに対する書き込み可能なパーティション内の電子署名された更新を識別し、（２）更新サービスを介して、更新サービスに対する電子署名された更新を認証し、（３）更新サービスを介して、更新サービスに対する電子署名された更新を実行してもよい。例えば、ローダサービス４０８は、ローダの更新４１６を識別し、電子署名４１８を認証し、その後、ローダの更新４１６を実行してもよい。
【００６１】
様々な実施形態において、本明細書に記載されるシステムは、システムレベルサービスに対する電子署名された更新を識別すると、システムレベルサービスを終了し、電子署名された更新を実行してもよい。例えば、ハブサービス４１０は、ハブの更新４２０を識別してもよく、ローダサービス４０８にハブの更新４２０を通知してもよい。それに応じて、ローダサービス４０８は、ハブサービス４１０を終了し、代わりにハブの更新４２０を実行してもよい。
【００６２】
いくつかの例において、ハブサービス４１０は、ライブ更新サービスを含む複数の子プロセスの親プロセスであってもよい。この例において、ライブ更新サービスは、更新サーバ２０６から更新を検索し、書き込み可能なパーティション４１４内に格納するように設定されてもよい。ライブ更新サービスはまた、ハブサービス４１０の子プロセスに対する更新がダウンロードされる際、ハブサービス４１０に通知してもよい。この例において、その後、ハブサービス４１０は、子プロセスを終了し、その後、子プロセスに対する更新を実行してもよい。
【００６３】
いくつかの実施形態において、本明細書に記載されるシステムは、システムレベルサービス終了後、直ちに電子署名された更新を実行するか又はモバイルコンピューティングデバイスの初期化の際、電子署名された更新を実行するかのいずれかであってもよい。例えば、ローダサービス４０８は、ハブサービス４１０が終了すると、直ちにハブの更新４２０を実行してもよい。あるいは、ローダサービス４０８は、ハブサービス４１０が終了すると、ハブの更新４２０を実行する前に、モバイルコンピューティングデバイス２０２が再初期化するまで待機してもよい。
【００６４】
いくつかの例において、本明細書に記載されるシステムは、認証された更新を実行することによってのみシステムのセキュリティを保証してもよい例えば、本明細書に記載されるシステムは、（１）更新サービスを介して、モバイルコンピューティングデバイスの初期化中、ロードされるように設定された少なくとも１つの追加のシステムレベルサービスに対する更新を識別し、（２）追加のシステムレベルサービスに対する更新の電子署名を認証することができなかったので、更新サービスを介して、追加のシステムレベルサービスに対する更新がセキュアでないと判定し、その後、（３）更新サービスを介して、追加のシステムレベルサービスに対する更新の代わりに、追加のシステムレベルサービスを実行してもよい。具体的に、ハブサービス４１０は、子プロセスを含んでもよく、子プロセスに対する電子署名された更新を識別してもよい。その後、ハブサービス４１０は、子プロセスに対する更新の電子署名を認証するよう試みてもよく、様々な理由で、子プロセスの電子署名を認証できないことが分かり得る。例えば、ハブサービス４１０は、子プロセスに対する更新のチェックサム又は（暗号学的ハッシュ４２４と同様の）暗号化されたハッシュが不一致であることを見出し、この不一致に基づいて、更新の元の形態から改変されているため更新が非セキュアであると判定してもよい。その後、ハブサービス４１０は、子プロセスに対する更新の代わりに、子プロセスを実行してもよい。
【００６５】
ある例において、先の節に記載された子プロセスはまた、電子署名されてもよく、子プロセスの電子署名を復号するために使用される公開鍵は、読み出し専用のシステムイメージ４０４内に含まれてもよい。この例において、ハブサービス４１０は、子プロセスを実行する前に、子プロセスの電子署名を認証するための公開鍵を使用することによって、子プロセスがセキュアであると判定してもよい。そうすることによって、ハブサービス４１０は、子プロセスが変更されていないため、子プロセスがセキュアであると認証してもよい。様々な実施形態において、読み出し専用のシステムイメージ４０４は、読み出し専用のシステムイメージ４０４及び／又は読み出し専用のシステムイメージ４０４内に格納されたシステムレベルサービスの信頼性及び完全性を認証するために使用される様々な公開鍵及び電子署名を含有してもよい。これらの公開鍵及び電子署名により、読み出し専用のシステムイメージ４０４が、イメージの安全性及び／又は完全性を損なうように変更された（例えば「ルート化された」）かどうかを検出することができる。
【００６６】
いくつかの例において、初期化プロセス、ローダサービス４０８、及びハブサービス４１０は、モバイルコンピューティングデバイス２０２上のバックグラウンドプロセスとして作動するように設定されたデーモンを表してもよい。これらの例において、これらのプロセス及びサービスは、モバイルコンピューティングデバイス２０２が作動している任意の時間に本開示内に記載される工程を実施してもよい。例えば、モバイルコンピューティングデバイス２０２が初期化した後、ハブサービス４１０は、（すべてがハブサービス４１０の子プロセスであってもよい）セキュリティサービスのフレームワークを監視し続けてもよい。これらのセキュリティサービスのうち１つに対する更新が識別されると、ハブサービス４１０は、ハブサービス４１０自身を終了させ、その後、ローダサービス４０８によって再起動されてもよい。
【００６７】
一実施形態において、ローダサービス４０８は、制限された回数、ハブサービス４１０を再起動するように設定されてもよく、定義済みの再起動の閾値数に至った後、ハブサービス４１０を再起動する前に、モバイルコンピューティングデバイス２０２が再初期化するまで待機してもよい。いくつかの実施形態において、ハブサービス４１０が更新を識別する際、ハブサービス４１０は、モバイルコンピューティングデバイス２０２が次回初期化されるまで再起動を待機してもよい。
【００６８】
以下では、図３に関連して上で概述したプロセスの詳細な例を提供することとする。この例において、モバイルコンピューティングデバイス２０２の初期化中、初期化プロセス（例えば、ＡＮＤＲＯＩＤ用の「ｉｎｉｔ」プロセス）は、初期化ファイル４０６を解析し、初期化ファイル４０６内に見出されるエントリを実行することによって、ローダサービス４０８を実行してもよい。ローダサービス４０８は、一度実行されると、その後、書き込み可能なパーティション４１４上の定義済みの場所内で自身に対する更新をサーチしてもよい。ローダサービス４０８がローダの更新４１６などの更新を識別した場合、ローダサービス４０８は、更新の電子署名を認証するよう試みてもよい。更新の認証が成功した場合、ローダサービス４０８は、この例において、ローダの更新４１６であるローダサービス４０８の最新バージョンを実行してもよい。ローダサービス４０８が更新を認証できない場合、ローダサービス４０８は、更新の実行をやめてもよい。
【００６９】
自身の更新を確認した後、ローダサービス４０８（又は場合により更新されたバージョンのローダサービス４０８）は、その後、書き込み可能なパーティション４１４上の定義済みの場所をサーチすることによって、ハブサービス４１０に対する更新を確認してもよい。この例において、定義済みの場所をサーチすることによって、ハブの更新４２０を識別すると、ローダサービス４０８は、暗号学的ハッシュ４２４を認証することによって、ハブの更新４２０がセキュアであると判定してもよく、ハブサービス４１０の代わりにハブの更新４２０を実行してもよい。他の例では、暗号学的ハッシュ４２４を認証できない場合、ローダサービス４０８は、ハブの更新４２０の代わりに、ハブサービス４１０を実行してもよい。その後、ハブサービス４１０（又は場合により更新されたバージョンのハブサービス４１０）は、１つ又は２つ以上の子プロセスに対する更新のための書き込み可能なパーティション４１４を確認してもよい。更新がこれらの子プロセスのうち１つ又は２つ以上に対して見出される場合、ハブサービス４１０は、ネイティブなバージョンの代わりに、これらの子プロセスに対する更新を実行してもよい。
【００７０】
図３の方法３００に関連して上で説明されたように、モバイルデバイスの開発者が、読み出し専用のパーティション（例えば、ＡＮＤＲＯＩＤデバイス用の「／ｓｙｓｔｅｍ」パーティション）内で開発者が配信したネイティブなバイナリに対して更新を望む場合、開発者は一般的に、キャリア又は製造業者のＯＴＡの更新でデバイスがフラッシュされるまで待機しなければならない。開発者は、これらの緩慢である場合が多いリリース、すなわち、危険なＯＴＡの更新に対して代替的なソリューションを望む場合がある。１つのソリューションとして、読み出し専用のシステムイメージを再マウント又は「ルート化」することが挙げられるが、そうすることで、モバイルデバイスの完全性を損なう場合があり、場合によっては、デバイスがキャリアのネットワークに接続できない場合がある。
【００７１】
本開示は、書き込み可能なパーティション（例えば、ＡＮＤＲＯＩＤデバイス上の「／ｄａｔａ」パーティション）から、ネイティブなバイナリ自身の代わりに、ネイティブなバイナリに対する更新を実行することによって、これらの問題を克服することができる。上の記載において詳述されるように、電子署名された更新をクラウドサーバから検索し、書き込み可能なパーティション上の定義済みの場所において電子署名された更新をインストールによってこれを遂行することができる。電子署名された更新を実行する前に、更新サービスは、更新の電子署名を認証することによって更新がセキュアであることを確認することができる。更新を実行した後、モバイルデバイスがブートに失敗した場合、問題のある更新を今後スキップすることができるように、失敗したブートについての情報が書き込み可能なパーティション内のログに保持されてもよい。これらの工程を実施することによって、本開示は、パーティション及び／又はモバイルデバイスを再フラッシュする必要なく、読み出し専用のパーティション上の低レベルのサービスを更新するためのセキュアなソリューションを提供することができる。いくつかの例において、このソリューションを、読み出し専用のパーティション内に格納されたすべてのシステムレベルサービス及びネイティブなバイナリに対する更新を提供することができる「マザー（mother）」プロセス（例えば、ＡＮＤＲＯＩＤ用の「ｉｎｉｔ」プロセス）を含むように拡張してもよい。これらのソリューションにより、開発者は、重大なサービスに対して適時に更新を行い、ＯＴＡの更新によるモバイルデバイスのフラッシュに内在する危険性を排除し、改善されたサポート及びよりロバストなサービスの提供によって売上を増加させる、といったことを次々と可能にすることができる。
【００７２】
図５は、本明細書に記載及び／又は図示される実施形態のうち１つ又は２つ以上を実装することができる例示的なコンピューティングシステム５１０のブロック図である。例えば、コンピューティングシステム５１０のすべて又は一部は、単独で又は他の要素と組み合わせて、（図３に示される工程のうち１つ若しくは２つ以上などの）本明細書に記載される工程のうち１つ若しくは２つ以上を行ってもよく、かつ／又はそれを実施するための手段であってもよい。コンピューティングシステム５１０のすべて又は一部はまた、本明細書に記載及び／若しくは図示される他の任意の工程、方法、若しくは処理を行ってもよく、かつ／又はそれを実施するための手段であってもよい。
【００７３】
コンピューティングシステム５１０は、コンピュータ可読命令を実行することが可能な任意のシングル若しくはマルチプロセッサのコンピューティングデバイス又はシステムを幅広く表す。コンピューティングシステム５１０の例として、ワークステーション、ラップトップ、クライアント側端末、サーバ、配信型コンピューティングシステム、ハンドヘルドデバイス、又は他の任意のコンピューティングシステム若しくはデバイスが挙げられるが、これらに限定されない。その最も基本的な構成において、コンピューティングシステム５１０は、少なくとも１つのプロセッサ５１４及びシステムメモリ５１６を備えてもよい。
【００７４】
プロセッサ５１４は、データを処理するか又は命令を解釈し実行することができる任意のタイプ又は形態の処理ユニットを概ね表す。特定の実施形態において、プロセッサ５１４は、ソフトウェアアプリケーション又はモジュールから命令を受信することができる。これらの命令によって、プロセッサ５１４は、本明細書に記載及び／又は図示される例示的な実施形態のうち１つ又は２つ以上の機能を実施することができる。
【００７５】
システムメモリ５１６は、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形態の揮発性又は不揮発性ストレージデバイス又は媒体を概ね表す。システムメモリ５１６の例として、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられるが、これらに限定されない。必須ではないが、特定の実施形態において、コンピューティングシステム５１０は、（例えば、システムメモリ５１６などの）揮発性メモリユニット及び（例えば、以下で詳細に記載されるような一次ストレージデバイス５３２などの）不揮発性ストレージデバイスの両方を含んでもよい。ある例において、図１のモジュール１０２のうち１つ又は２つ以上がシステムメモリ５１６にロードされてもよい。
【００７６】
特定の実施形態において、例示的なコンピューティングシステム５１０はまた、プロセッサ５１４及びシステムメモリ５１６に加えて、１つ又は２つ以上の構成要素又は要素を含んでもよい。例えば、図５に示されるように、コンピューティングシステム５１０は、それぞれが通信インフラストラクチャ５１２を介して相互接続されてもよいメモリコントローラ５１８、入力／出力（Ｉ／Ｏ）コントローラ５２０、及び通信インターフェース５２２を備えてもよい。通信インフラストラクチャ５１２は、コンピューティングデバイスの１つ又は２つ以上の構成要素間の通信を容易にすることができる任意のタイプ又は形態のインフラストラクチャを概ね表す。通信インフラストラクチャ５１２の例として、（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）、又は同様のバスなどの）通信バス及びネットワークが挙げられるが、これらに限定されない。
【００７７】
メモリコントローラ５１８は、メモリ若しくはデータを取り扱うか又はコンピューティングシステム５１０の１つ又は２つ以上の構成要素間の通信を制御することができる任意のタイプ又は形態のデバイスを概ね表す。例えば、特定の実施形態において、メモリコントローラ５１８は、通信インフラストラクチャ５１２を介して、プロセッサ５１４とシステムメモリ５１６とＩ／Ｏコントローラ５２０との間の通信を制御することができる。
【００７８】
Ｉ／Ｏコントローラ５２０は、コンピューティングデバイスの入出力機能を調整及び／又は制御することができる任意のタイプ又は形態のモジュールを概ね表す。例えば、特定の実施形態において、Ｉ／Ｏコントローラ５２０は、プロセッサ５１４、システムメモリ５１６、通信インターフェース５２２、ディスプレイアダプタ５２６、入力インターフェース５３０、及びストレージインターフェース５３４などのコンピューティングシステム５１０の１つ又は２つ以上の要素間におけるデータの転送を制御し、又はこれを容易にすることができる。
【００７９】
通信インターフェース５２２は、例示的なコンピューティングシステム５１０と１つ又は２つ以上の追加のデバイスとの間の通信を容易にすることができる任意のタイプ又は形態の通信デバイス又はアダプタを幅広く表す。例えば、特定の実施形態において、通信インターフェース５２２は、コンピューティングシステム５１０と、追加のコンピューティングシステムを含むプライベート又はパブリックネットワークとの間の通信を容易にすることができる。通信インターフェース５２２の例として、（ネットワークインターフェースカードなどの）有線ネットワークインターフェース、（無線ネットワークインターフェースカードなどの）無線ネットワークインターフェース、モデム、及び他の任意の好適なインターフェースが挙げられるが、これらに限定されない。少なくとも１つの実施形態において、通信インターフェース５２２は、インターネットなどのネットワークへの直接的なリンクを介してリモートサーバへ直接接続してもよい。通信インターフェース５２２はまた、例えば、（Ｅｔｈｅｒｎｅｔネットワークなどの）ローカルエリアネットワーク、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、携帯電話接続、衛星データ接続、又は他の任意の好適な接続によってかかる接続を間接的に提供してもよい。
【００８０】
特定の実施形態において、通信インターフェース５２２はまた、外部バス又は通信チャネルを介してコンピューティングシステム５１０と１つ又は２つ以上の追加のネットワーク又はストレージデバイスとの間の通信を容易にするように構成されたホストアダプタを表してもよい。ホストアダプタの例として、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）用ホストアダプタ、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）用ホストアダプタ、米国電気電子学会（Institute of Electrical and Electronics Engineers）（ＩＥＥＥ）１３９４用ホストアダプタ、Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（ＡＴＡ）、Ｐａｒａｌｌｅｌ  ＡＴＡ（ＰＡＴＡ）、Ｓｅｒｉａｌ  ＡＴＡ（ＳＡＴＡ）、及びＥｘｔｅｒｎａｌ  ＳＡＴＡ（ｅＳＡＴＡ）用ホストアダプタ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ用インターフェースアダプタ、Ｅｔｈｅｒｎｅｔ用アダプタなどが挙げられるが、これらに限定されない。また、通信インターフェース５２２により、コンピューティングシステム５１０は配信型又はリモートコンピューティングに関わることができる。例えば、通信インターフェース５２２は、実行のためにリモートデバイスから命令を受信し、又はリモートデバイスに命令を送信することができる。
【００８１】
図５に示されるように、コンピューティングシステム５１０はまた、ディスプレイアダプタ５２６を介して、通信インフラストラクチャ５１２に連結された少なくとも１つのディスプレイデバイス５２４を備えてもよい。ディスプレイデバイス５２４は、ディスプレイアダプタ５２６によって転送される情報を視覚的に表示することができる任意のタイプ又は形態のデバイスを概ね表す。同様に、ディスプレイアダプタ５２６は、ディスプレイデバイス５２４に表示するために、通信インフラストラクチャ５１２から（又は当該技術分野において既知であるようにフレームバッファから）グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形態のデバイスを概ね表す。
【００８２】
図５に示されるように、例示的なコンピューティングシステム５１０はまた、入力インターフェース５３０を介して、通信インフラストラクチャ５１２に連結された少なくとも１つの入力デバイス５２８を備えてもよい。入力デバイス５２８は、コンピュータ又はヒトのいずれかが生成した入力を例示的なコンピューティングシステム５１０へ提供することができる任意のタイプ又は形態の入力デバイスを概ね表す。入力デバイス５２８の例として、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられるが、これらに限定されない。
【００８３】
図５に示されるように、例示的なコンピューティングシステム５１０はまた、ストレージインターフェース５３４を介して通信インフラストラクチャ５１２に連結された一次ストレージデバイス５３２及びバックアップストレージデバイス５３３を備えてもよい。ストレージデバイス５３２及び５３３は、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形態のストレージデバイス又は媒体を概ね表す。例えば、ストレージデバイス５３２及び５３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどであってもよい。ストレージインターフェース５３４は、ストレージデバイス５３２及び５３３とコンピューティングシステム５１０の他の構成要素との間でデータを転送するための任意のタイプ又は形態のインターフェース又はデバイスを概ね表す。ある例において、図１の更新データベース１２０は、一次ストレージデバイス５３２に格納されてもよい。
【００８４】
特定の実施形態において、ストレージデバイス５３２及び５３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を格納するように構成された取り外し可能なストレージユニットから読み取り、かつ／又はこれに書き込むように構成されてもよい。好適な取り外し可能なストレージユニットの例として、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられるが、これらに限定されない。ストレージデバイス５３２及び５３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム５１０内にロードされることを可能にするための他の同様の構造体又はデバイスを含んでもよい。例えば、ストレージデバイス５３２及び５３３は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取り、かつこれを書き込むように構成されてもよい。ストレージデバイス５３２及び５３３はまた、コンピューティングシステム５１０の一部であってもよく、又は他のインターフェースシステムを介してアクセスされる別々のデバイスであってもよい。
【００８５】
多くの他のデバイス又はサブシステムをコンピューティングシステム５１０に接続することができる。反対に、図５に示される構成要素及びデバイスのすべてが、本明細書に記載及び／又は図示される実施形態を実践するために存在する必要があるわけではない。上で言及されるデバイス及びサブシステムはまた、図５に示されるものと異なる方法で相互接続されてもよい。コンピューティングシステム５１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェアの構成を採用してもよい。例えば、本明細書で開示される例示的な実施形態のうち１つ又は２つ以上は、コンピュータ可読記憶媒体上に、（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）コンピュータプログラムとしてコード化されてもよい。語句「コンピュータ可読記憶媒体」は、コンピュータ可読命令を格納又は具備することが可能な任意の形態のデバイス、キャリア、又は媒体を概ね指す。コンピュータ可読記憶媒体の例として、搬送波などの伝送型媒体、並びに磁気記憶媒体（例えば、ハードディスクドライブ及びフロッピーディスク）、光学記憶媒体（例えば、コンパクトディスク（ＣＤ）又はデジタルビデオディスク（ＤＶＤ））、電子記憶媒体（例えば、ソリッドステートドライブ及びフラッシュメディア）、及び他の配信システムなどの非一時的媒体が挙げられるが、これらに限定されない。
【００８６】
コンピュータプログラムを含有するコンピュータ可読記憶媒体は、コンピューティングシステム５１０にロードされてもよい。次いで、コンピュータ可読記憶媒体上に格納されたコンピュータプログラムのすべて又は一部は、システムメモリ５１６並びに／又はストレージデバイス５３２及び５３３の様々な部分の中に格納されてもよい。プロセッサ５１４によって実行される際、コンピューティングシステム５１０にロードされたコンピュータプログラムは、プロセッサ５１４に、本明細書に記載及び／又は図示される例示的な実施形態のうち１つ又は２つ以上の機能を実施させてもよく、かつ／又はこれを実施するための手段であってもよい。更に又は代替的に、本明細書に記載及び／又は図示される例示的な実施形態のうち１つ又は２つ以上は、ファームウェア及び／又はハードウェアに実施されてもよい。例えば、コンピューティングシステム５１０は、本明細書に開示される例示的な実施形態のうち１つ又は２つ以上を実装するように適合された特定用途向け集積回路（ＡＳＩＣ）として構成されてもよい。
【００８７】
図６は、クライアントシステム６１０、６２０、及び６３０、並びにサーバ６４０及び６４５をネットワーク６５０に連結することができる例示的なネットワークアーキテクチャ６００のブロック図である。上で詳述されるように、ネットワークアーキテクチャ６００のすべて又は一部は、単独で又は他の要素と組み合わせて、（図３に示される工程のうち１つ又は２つ以上などの）本明細書で開示される工程のうち１つ又は２つ以上を実施してもよく、かつ／又はそれらを実施するための手段であってもよい。ネットワークアーキテクチャ６００のすべて又は一部はまた、本開示に記述される他の工程及び特徴を実施するために使用され、かつ／又はこれらを実施するための手段であってもよい。
【００８８】
クライアントシステム６１０、６２０、及び６３０は、図５の例示的なコンピューティングシステム５１０などの任意のタイプ又は形態のコンピューティングデバイス又はシステムを概ね表す。同様に、サーバ６４０及び６４５は、様々なデータベースサービスを提供し、かつ／又は特定のソフトウェアアプリケーションを作動させるように構成されたアプリケーションサーバ又はデータベースサーバなどのコンピューティングデバイス又はシステムを概ね表す。ネットワーク６５０は、例えばイントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを概ね表す。ある例において、クライアントシステム６１０、６２０、及び／若しくは６３０、並びに／又はサーバ６４０及び／若しくは６４５は、図１からのシステム１００のすべて又は一部を含み得る。
【００８９】
図６に示されるように、１つ又は２つ以上のストレージデバイス６６０（１）〜（Ｎ）は、サーバ６４０に直接取り付けられてもよい。同様に、１つ又は２つ以上のストレージデバイス６７０（１）〜（Ｎ）は、サーバ６４５に直接取り付けられてもよい。ストレージデバイス６６０（１）〜（Ｎ）及びストレージデバイス６７０（１）〜（Ｎ）は、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形態のストレージデバイス又は媒体を概ね表す。特定の実施形態において、ストレージデバイス６６０（１）〜（Ｎ）及びストレージデバイス６７０（１）〜（Ｎ）は、Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（ＮＦＳ）、Ｓｅｒｖｅｒ  Ｍｅｓｓａｇｅ  Ｂｌｏｃｋ（ＳＭＢ）、又はＣｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（ＣＩＦＳ）などの様々なプロトコルを使用して、サーバ６４０及び６４５と通信するように構成されたＮｅｔｗｏｒｋ−Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ（ＮＡＳ）デバイスを表してもよい。
【００９０】
サーバ６４０及び６４５はまた、Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＳＡＮ）ファブリック６８０に接続されてもよい。ＳＡＮファブリック６８０は、複数のストレージデバイス間の通信を容易にすることができる任意のタイプ又は形態のコンピュータネットワーク又はアーキテクチャを概ね表す。ＳＡＮファブリック６８０は、サーバ６４０及び６４５と、複数のストレージデバイス６９０（１）〜（Ｎ）及び／又はインテリジェントなストレージアレイ６９５との間の通信を容易にすることができる。ＳＡＮファブリック６８０はまた、ストレージデバイス６９０（１）〜（Ｎ）及びストレージアレイ６９５が、クライアントシステム６１０、６２０、及び６３０にローカルで取り付けられたデバイスかのように、ネットワーク６５０並びにサーバ６４０及び６４５を介して、クライアントシステム６１０、６２０、及び６３０と、デバイス６９０（１）〜（Ｎ）及び／又はインテリジェントなアレイ６９５との間の通信を容易にすることができる。ストレージデバイス６６０（１）〜（Ｎ）及びストレージデバイス６７０（１）〜（Ｎ）と同様に、ストレージデバイス６９０（１）〜（Ｎ）及びインテリジェントなストレージアレイ６９５は、データ及び／又は他のコンピュータ可読命令を格納することができる任意のタイプ又は形態のストレージデバイス又は媒体を概ね表す。
【００９１】
特定の実施形態において、図５の例示的なコンピューティングシステム５１０を参照して、図５の通信インターフェース５２２などの通信インターフェースは、それぞれのクライアントシステム６１０、６２０、及び６３０とネットワーク６５０との間を接続するように使用されてもよい。クライアントシステム６１０、６２０、及び６３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ６４０又は６４５上の情報にアクセスすることが可能であり得る。かかるソフトウェアにより、クライアントシステム６１０、６２０、及び６３０は、サーバ６４０、サーバ６４５、ストレージデバイス６６０（１）〜（Ｎ）、ストレージデバイス６７０（１）〜（Ｎ）、ストレージデバイス６９０（１）〜（Ｎ）、又はインテリジェントなストレージアレイ６９５によってホスティングされたデータにアクセスすることができる。図６は、データを送受信するための（インターネットなどの）ネットワークの使用を示しているが、本明細書に記載及び／又は図示される実施形態は、インターネット、又は任意の特定のネットワークベースの環境に限定されない。
【００９２】
少なくとも１つの実施形態において、本明細書に開示される例示的な実施形態のうち１つ又は２つ以上のすべて又は一部は、コンピュータプログラムとしてコード化され、サーバ６４０、サーバ６４５、ストレージデバイス６６０（１）〜（Ｎ）、ストレージデバイス６７０（１）〜（Ｎ）、ストレージデバイス６９０（１）〜（Ｎ）、インテリジェントなストレージアレイ６９５、又はこれらの任意の組み合わせ上にロードされ、これらによって実行されてもよい。本明細書に開示される例示的な実施形態のうち１つ又は２つ以上のすべて又は一部はまた、コンピュータプログラムとしてコード化され、サーバ６４０に格納され、サーバ６４５によって作動し、ネットワーク６５０上でクライアントシステム６１０、６２０、及び６３０に配信されてもよい。
【００９３】
上で詳述されるように、コンピューティングシステム５１０及び／又はネットワークアーキテクチャ６００の１つ又は２つ以上の構成要素は、単独でか、又は他の要素と組み合わせてかのどちらか一方で、読み出し専用のシステムイメージ内のシステムレベルサービスを更新するための例示的な方法の１つ又は２つ以上の工程を実施してもよく、かつ／又は実施するための手段であってもよい。
【００９４】
上述の開示は、特定のブロック図、フローチャート、及び例を使用して様々な実施形態を説明しているが、本明細書に記載及び／又は図示されるそれぞれのブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、個別にかつ／又は集合的に、広範なハードウェア、ソフトウェア、又はファームウェア（又はこれらの任意の組み合わせの）構成を使用して実装されてもよい。更に、多くの他のアーキテクチャが同じ機能性を完遂するように実施可能であるので、他の構成要素内に含有される構成要素の任意の開示は、本質的に例示的であるものと見なされるべきである。
【００９５】
いくつかの例において、図１の例示的なシステム１００のすべて又は一部は、クラウドコンピューティング環境又はネットワークベースの環境の一部を表わしてもよい。クラウドコンピューティング環境は、インターネットを介して、様々なサービス及びアプリケーションを提供することができる。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャなど）は、ウェブブラウザ又は他のリモートインターフェースを介してアクセス可能であってもよい。本明細書に記載される様々な機能は、リモートデスクトップの環境又は任意の他のクラウドベースのコンピューティング環境を介して提供されてもよい。
【００９６】
様々な実施形態において、図１の例示的なシステム１００のすべて又は一部により、クラウドベースのコンピューティング環境内でのマルチテナンシーを容易にすることができる。換言すれば、本明細書に記載されるソフトウェアモジュールは、本明細書に記載される機能の１つ又は２つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成してもよい。例えば、本明細書に記載されるソフトウェアモジュールのうち１つ又は２つ以上は、２つ以上のクライアント（例えば、顧客）がサーバ上で作動しているアプリケーションを共有することができるようにサーバをプログラムすることができる。このようにプログラムされたサーバは、複数の顧客（すなわち、テナント）の間で、アプリケーション、オペレーティングシステム、処理システム、及び／又はストレージシステムを共有することができる。本明細書に記載されるモジュールのうち１つ又は２つ以上はまた、ある顧客が別の顧客のデータ及び／又は設定情報にアクセスすることができないように顧客ごとに、マルチテナントアプリケーションのデータ及び／又は設定情報を分割してもよい。
【００９７】
様々な実施形態によると、図１の例示的なシステム１００のすべて又は一部は、仮想環境内で実施されてもよい。例えば、本明細書に記載されるモジュール及び／又はデータは、仮想マシン内に存在してもよく、かつ／又は仮想マシン内で実行されてもよい。本明細書で使用する際、語句「仮想マシン」は、仮想マシンマネージャ（例えば、ハイパーバイザ）によってコンピューティングのハードウェアから抽出される任意のオペレーティングシステム環境を概ね指す。加えて又は代替的に、本明細書に記載されるモジュール及び／又はデータは、仮想化層内に存在し、かつ／又は仮想化層内で実行してもよい。本明細書で使用する際、語句「仮想化層」は、オペレーティングシステム環境に重なり、かつ／又はオペレーティングシステム環境から抽出される任意のデータ層及び／又はアプリケーション層を概ね指す。仮想化層は、下層にある基本のオペレーティングシステムの一部であるかのように仮想化層を提示するソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって管理されてもよい。例えば、ソフトウェア仮想化ソリューションにより、基本ファイルシステム及び／又はレジストリ内の場所に当初向けられていた要求を仮想化層内の場所に宛先変更することができる。
【００９８】
いくつかの例において、図１の例示的なシステム１００のすべて又は一部は、モバイルコンピューティング環境の一部を表わしてもよい。モバイルコンピューティング環境は、携帯電話、タブレットコンピュータ、電子書籍リーダ、携帯情報端末、ウェアラブルコンピューティングデバイス（例えば、頭部装着ディスプレイ、スマートウォッチなどを備えたコンピューティングデバイス）などを含む広範なモバイルコンピューティングデバイスによって実施されてもよい。いくつかの例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間における１つのみのフォアグラウンドアプリケーションの提示、リモート管理機構、タッチスクリーン機構、（例えば、Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ、ジャイロスコープ、加速度計などによって提供される）場所及び移動データ、システムレベルの構成に対する変更を制限し、かつ／又は第三者のソフトウェアの能力を制限して、他のアプリケーションの行動を検査する制限されたプラットフォーム、（例えば、認可されたアプリケーションストアからの入手のみに限定するように）アプリケーションのインストールを制限するための制御などを含む、１つ又は２つ以上の個別の機構を有してもよい。本明細書に記載される様々な機能は、モバイルコンピューティング環境に対して提供されてもよく、かつ／又はモバイルコンピューティング環境と情報をやりとりしてもよい。
【００９９】
更に、図１の例示的なシステム１００のすべて又は一部は、情報管理のための１つ又は２つ以上のシステムの一部を表してもよく、これと情報をやりとりしてもよく、これによって生成されたデータを消費してもよく、かつ／又はこれによって消費されたデータを生成してもよい。本明細書で使用する際、語句「情報管理」は、データの保護、組織化、及び／又は格納を指し得る。情報管理のためのシステムの例として、ストレージシステム、バックアップシステム、アーカイブシステム、複製システム、高可用性システム、データサーチシステム、仮想化システムなどが挙げられるが、これらに限定されない。
【０１００】
いくつかの実施形態において、図１の例示的なシステム１００のすべて又は一部は、情報セキュリティのための１つ又は２つ以上のシステムの一部を表してもよく、これによって保護されるデータを生成してもよく、かつ／又はこれと通信してもよい。本明細書で使用する際、語句「情報セキュリティ」は、保護されたデータへのアクセスの制御を指し得る。情報セキュリティのためのシステムの例として、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、本人認証システム、アクセス制御システム、暗号化システム、ポリシー遵守システム、侵入検出及び防止システム、電子発見システムなどが挙げられるが、これらに限定されない。
【０１０１】
いくつかの例によると、図１の例示的なシステム１００のすべて又は一部は、エンドポイントのセキュリティのための１つ又は２つ以上のシステムの一部を表してもよく、これと通信してもよく、かつ／又はこれから保護されてもよい。本明細書で使用する際、語句「エンドポイントのセキュリティ」は、権限がないかつ／若しくは違法な使用、アクセス、及び／又は制御からのエンドポイントシステムの保護を指し得る。エンドポイントの保護のためのシステムの例として、マルウェア対策システム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどが挙げられるが、これらに限定されない。
【０１０２】
本明細書で説明及び／又は図示されるプロセスパラメータ及び工程の順序は、単なる例として与えられ、所望に応じて変更してもよい。例えば、本明細書に図示及び／又は記載される工程は特定の順序で示されてもよく、又は検討されてもよいが、これらの工程は、必ずしも図示又は検討される順序で実施される必要はない。本明細書に記載及び／又は図示される様々な例示的な方法はまた、本明細書に記載若しくは図示される工程のうち１つ若しくは２つ以上を省略してもよく、又は開示される工程に加えて更なる工程を含んでもよい。
【０１０３】
十分に機能的なコンピューティングシステムという状況で、様々な実施形態が本明細書において記載及び／又は図示されてきたが、これらの例示的な実施形態のうち１つ又は２つ以上は、実際に配信をするために使用される特定のタイプのコンピュータ可読記憶媒体にかかわらず、様々な形態のプログラム製品として配信されてもよい。本明細書で開示される実施形態はまた、特定のタスクを実施するソフトウェアモジュールを使用して実施されてもよい。これらのソフトウェアモジュールとして、スクリプト、バッチ、又はコンピュータ可読記憶媒体上若しくはコンピューティングシステム内に格納することが可能な他の実行可能ファイルを挙げることができる。いくつかの実施形態において、これらのソフトウェアモジュールは、本明細書で開示される例示的な実施形態のうち１つ又は２つ以上を実施するようにコンピューティングシステムを設定することができる。
【０１０４】
更に、本明細書に記載されるモジュールのうち１つ又は２つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を１つの形態から別の形態へと変換することができる。例えば、本明細書で列挙されるモジュールのうち１つ又は２つ以上は、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスを識別し、次いで、読み出し専用のシステムイメージ内に格納されたシステムレベルサービスの代わりに、書き込み可能なパーティション内の電子署名された更新を実行することによって、システムレベルサービスの更新されたバージョンにシステムレベルサービスを変換してもよい。加えて又は代替的に、本明細書で列挙されるモジュールのうち１つ又は２つ以上は、コンピューティングデバイス上で実行し、コンピューティングデバイス上にデータを格納し、かつ／又はそうでなければコンピューティングデバイスと情報をやりとりすることによって、プロセッサ、揮発性メモリ、不揮発性メモリ、及び／又は物理コンピューティングデバイスの任意の他の部分を１つの形態から別の形態へ変換することができる。
【０１０５】
前述の記述は、他の当業者が本明細書に開示される例示的な実施形態の様々な態様を最良に利用することができるように提供されてきた。この例示的な記述は、網羅的であることを意図するものではなく、又は開示される任意の正確な形態に限定することを意図するものではない。本開示の趣旨及び範囲から逸脱することなく、多くの変更例及び変形例が可能である。本明細書で開示される実施形態は、あらゆる点で例示的であり、限定的ではないものと見なされるべきである。本開示の範囲を判断する場合、添付の特許請求の範囲及びこれらの等価物を参照するべきである。
【０１０６】
別途記載のない限り、用語「に接続される」及び「に連結される」（並びにこれらの派生語）は、本明細書及び特許請求の範囲で使用される際、直接的接続と間接的接続（すなわち、他の要素又は構成要素を介した）との両方を許容するものとして解釈することができる。更に、用語「１つの（a）」又は「１つの（an）」は、本明細書及び特許請求の範囲で使用される際、「のうち少なくとも１つ」を意味するものとして解釈することができる。最後に、簡潔にするため、用語「含む」及び「有する」（並びにそれらの派生語）は、本明細書及び特許請求の範囲で使用される際、単語「備える」と互換性があり、同じ意味を有する。
【図１】
2016539405.tif 000003
【図２】
2016539405.tif 000004
【図３】
2016539405.tif 000005
【図４】
2016539405.tif 000006
【図５】
2016539405.tif 000007
【図６】
2016539405.tif 000008
【手続補正書】
【提出日】平成28年4月20日(2016.4.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのコンピュータ実装方法であって、該方法の少なくとも一部は、少なくとも１つのプロセッサを備えるモバイルコンピューティングデバイスによって実施され、該方法は、
リモートサーバから、該モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納された少なくとも１つのシステムレベルサービスに対する電子署名された更新を検索することであって、該システムレベルサービスは、該モバイルコンピューティングデバイスの初期化中、ロードされるように設定されている、ことと、
該モバイルコンピューティングデバイス上に位置する書き込み可能なパーティション内の定義済みの場所に該電子署名された更新をインストールすることと、
該モバイルコンピューティングデバイスの該初期化中、該読み出し専用のシステムイメージ内に格納された更新サービスを実行することと、
該更新サービスを介して、該読み出し専用のシステムイメージ内に格納された該システムレベルサービスの代わりに、該書き込み可能なパーティション内の該電子署名された更新を実行することと、を含む、方法。
【請求項２】
前記システムレベルサービスは、
前記モバイルコンピューティングデバイスの前記初期化中、ロードされるように設定されたファイルと、
前記モバイルコンピューティングデバイスの前記初期化中、ロードされるように設定されたライブラリと、
前記モバイルコンピューティングデバイスの前記初期化中、ロードされるように設定されたＡＰＩと、
前記モバイルコンピューティングデバイスの前記初期化中、ロードされるように設定されたコンピュータ実行可能命令と、
前記モバイルコンピューティングデバイスの初期化中、実行されるように設定されたデーモンと、
ブートローダと、
カーネルドライバと、
前記読み出し専用のシステムイメージ内に組み込まれたサービスと、のうち少なくとも１つを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
更新のための前記書き込み可能なパーティションを定期的にサーチすることと、
更新のための前記リモートサーバを定期的に照会することと、のうち少なくとも一方を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記電子署名された更新を実行する前に、前記電子署名された更新の電子署名を認証することによって、前記電子署名された更新がセキュアであると判定することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記電子署名された更新の前記電子署名を認証することは、
前記電子署名された更新の信頼性を認証することと、
前記電子署名された更新の完全性を認証することと、を含む、請求項４に記載のコンピュータ実装方法。
【請求項６】
前記システムレベルサービスに対する前記電子署名された更新をインストールすると、前記システムレベルサービスを終了し、前記電子署名された更新を実行することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記電子署名された更新を実行することは、
前記電子署名された更新を直ちに実行することと、
前記モバイルコンピューティングデバイスが初期化する際、前記電子署名された更新を実行することと、のうち少なくとも一方を含む、請求項６に記載のコンピュータ実装方法。
【請求項８】
前記更新サービスは、前記システムレベルサービスの親プロセスを含む、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記システムレベルサービスに対する前記電子署名された更新をインストールする前に、
前記更新サービスを介して、前記更新サービスに対する前記書き込み可能なパーティション内の電子署名された更新を識別することと、
前記更新サービスを介して、前記更新サービスに対する前記電子署名された更新を認証することと、
前記更新サービスを介して、前記更新サービスに対する前記電子署名された更新を実行することと、を更に含む、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記更新サービスを介して、前記電子署名された更新の通知を、
前記システムレベルサービスと、
追加のサービスと、のうち少なくとも一方から受信することを更に含む、請求項１に記載のコンピュータ実装方法。
【請求項１１】
前記更新サービスを介して、少なくとも１つの追加のシステムレベルサービスに対する更新を識別することであって、該追加のシステムレベルサービスは、前記モバイルコンピューティングデバイスの初期化中、ロードされるように設定されている、ことと、
該追加のシステムレベルサービスに対する該更新の電子署名を認証できなかったので、前記更新サービスを介して、該追加のシステムレベルサービスに対する該更新がセキュアでないと判定することと、
前記更新サービスを介して、該追加のシステムレベルサービスに対する該更新の代わりに、該追加のシステムレベルサービスを実行することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項１２】
前記更新サービスが前記電子署名された更新を実行した後、前記モバイルコンピューティングデバイスが初期化に失敗したことを検出することと、
前記書き込み可能なパーティション内のログに該失敗した初期化についての情報を格納することと、
前記モバイルコンピューティングデバイスが再初期化する際、該ログに格納された該情報に基づいて、前記システムレベルサービスに対する前記電子署名された更新が該失敗した初期化を引き起こしたと判定することと、
前記書き込み可能なパーティション内の前記電子署名された更新の代わりに、前記読み出し専用のシステムイメージ内に格納された前記システムレベルサービスを実行することと、を更に含む、請求項１に記載のコンピュータ実装方法。
【請求項１３】
読み出し専用のシステムイメージ内のシステムレベルサービスを更新するためのシステムであって、該システムは、
リモートサーバから、前記モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納され、前記モバイルコンピューティングデバイスの初期化中、ロードされるように設定された、少なくとも１つのシステムレベルサービスに対する電子署名された更新を検索し、
前記モバイルコンピューティングデバイス上に位置する書き込み可能なパーティション内の定義済みの場所に該電子署名された更新をインストールする、メモリ内に格納された、検索モジュールと、
前記モバイルコンピューティングデバイスの前記初期化中、該読み出し専用のシステムイメージ内に格納された更新サービスを実行する、メモリ内に格納された、初期化モジュールと、
該読み出し専用のシステムイメージ内に格納された該システムレベルサービスの代わりに、該書き込み可能なパーティション内の該電子署名された更新を実行する、メモリ内に格納された、実行モジュールと、
該検索モジュールと、該初期化モジュールと、該実行モジュールと、を実行する、少なくとも１つの物理プロセッサと、を備え、
該更新サービスは、該実行モジュールを含む、システム。
【請求項１４】
前記書き込み可能なパーティションを識別する、メモリ内に格納された、パーティションモジュールと、
前記電子署名された更新を識別する、メモリ内に格納された、識別モジュールと、を更に備え、
前記更新サービスは、該パーティションモジュールと、該識別モジュールと、を含む、請求項１３に記載のシステム。
【請求項１５】
１つ又は２つ以上のコンピュータ実行可能命令を含む、非一時的コンピュータ可読媒体であって、該１つ又は２つ以上のコンピュータ実行可能命令がコンピューティングデバイスの少なくとも１つのプロセッサによって実行されると、該コンピューティングデバイスに、
リモートサーバから、前記モバイルコンピューティングデバイス上に位置する読み出し専用のシステムイメージ内に格納され、前記モバイルコンピューティングデバイスの初期化中、ロードされるように設定された、少なくとも１つのシステムレベルサービスに対する電子署名された更新を検索させ、
前記モバイルコンピューティングデバイス上に位置する書き込み可能なパーティション内の定義済みの場所に該電子署名された更新をインストールさせ、
前記モバイルコンピューティングデバイスの該初期化中、該読み出し専用のシステムイメージ内に格納された更新サービスを実行させ、
該更新サービスを介して、該読み出し専用のシステムイメージ内に格納された該システムレベルサービスの代わりに、該書き込み可能なパーティション内の該電子署名された更新を実行させる、非一時的コンピュータ可読媒体。
【国際調査報告】
2016539405.tif 000009
2016539405.tif 000010