JP7102524B2 - 複数のバイナリイメージのファームウェア公開 - Google Patents

複数のバイナリイメージのファームウェア公開 Download PDF

Info

Publication number
JP7102524B2
JP7102524B2 JP2020531623A JP2020531623A JP7102524B2 JP 7102524 B2 JP7102524 B2 JP 7102524B2 JP 2020531623 A JP2020531623 A JP 2020531623A JP 2020531623 A JP2020531623 A JP 2020531623A JP 7102524 B2 JP7102524 B2 JP 7102524B2
Authority
JP
Japan
Prior art keywords
binary image
binary
electronic device
copy
configuration table
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020531623A
Other languages
English (en)
Other versions
JPWO2019113686A5 (ja
JP2021507353A (ja
Inventor
ユージーン ホルジェンコ,
ジェフリー マイケル ブッシュ,
フィリップ ビー ガードナー,
Original Assignee
アブソリュート ソフトウェア コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アブソリュート ソフトウェア コーポレイション filed Critical アブソリュート ソフトウェア コーポレイション
Publication of JP2021507353A publication Critical patent/JP2021507353A/ja
Publication of JPWO2019113686A5 publication Critical patent/JPWO2019113686A5/ja
Priority to JP2022082910A priority Critical patent/JP7454011B2/ja
Application granted granted Critical
Publication of JP7102524B2 publication Critical patent/JP7102524B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • G06F8/4442Reducing the number of cache misses; Data prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Image Processing (AREA)

Description

本出願は、ファームウェアからバイナリイメージを公開する分野に関連する。特に、ファームウェアからオペレーティングシステム環境への複数のバイナリイメージの公開に関連する。
現在のWindows(登録商標)Platform Binary Table(WPBT)の実装の形態では、実行のためにファームウェアからWindows(登録商標)に公開できるバイナリイメージは1つだけである。ファームウェアは、ブート中にシステム情報のテーブルを構築する。このテーブルは、オペレーティングシステムが、例えば、どのハードウェアがインストールされているかを判断するために使用される。テーブルの1つには、ファームウェアに組み込まれている実行ファイルに関する情報が含まれている。オペレーティングシステムは、ブート中にこのテーブルを探し、存在する場合は実行ファイルをファイルシステムにコピーして実行する。
本発明は、一つの公開可能な実行ファイルに関する情報を保持するように構成されたバイナリテーブルが、オペレーティングシステムのブート中に、複数の公開されるバイナリを生成することを可能にする。特に、本明細書は、WPBTの拡張を開示し、それによってWindows(登録商標)および他のオペレーティングシステムにより実行される複数のバイナリイメージを、ファームウェアが公開するためのサポートを追加する。この拡張を使用することにより、OEM(Original Equipment Manufacturer)は独自のバイナリイメージを、Absolute(登録商標)Persistence(登録商標)Agentまたは任意の他のソフトウェアエージェントのイメージとともに含むことができる。エンドカスタマは、拡張内にリストされているエージェントまたはバイナリイメージの何れか又は全てを利用する、或いは、何れも利用しないクライアントソフトウェアを購入するオプションを有している。
図1は、本発明の一実施形態による、複数のバイナリを公開するための処理の主なステップの概要である。 図2は、本発明の一実施形態による、複数のバイナリイメージを公開するための実行およびコードのフローを示すシステムの概略ブロック図である。 図3は、本発明の一実施形態による、XPBT及び他のACPIテーブルのデータ構造及びそれらの相互関係を示す概略図である。 図4は、本発明の一実施形態による、複数のバイナリを公開するための処理のステップのフローチャートである。
A.用語
ABT:Absolute Software(アブソリュートソフトウェア)
ACPI:Advanced Configuration and Power Interfaceは、デスクトップおよびモバイルコンピュータの電力消費を効率的に制御するための業界仕様である。ACPIは、コンピュータの基本入出力システム(Basic Input/Output System)、オペレーティングシステム、および周辺装置が、電力使用量に関して互いにどのように通信するかを指定する。ACPIは、ACPI準拠のオペレーティングシステムとシステムファームウェアとの間のインタフェースを提供するテーブルを定義する。これらのテーブルは、プラットフォームに依存しない方法でシステムハードウェアの記述を可能にし、固定フォーマットのデータ構造またはAML(ACPIマシン言語)のいずれかとして表される。
API:Application Programming Interface(アプリケーション・プログラミング・インターフェース)。
BIOS:Basic Input/Output Systemは、電子デバイスのブートプロセス中のハードウェアの初期化、およびオペレーティングシステムとプログラムへのランタイムサービスの提供に使用されるファームウェアである。
DXE:Driver Execution Environment(ドライバ実行環境)
FAT:File Allocation Table(ファイル割り当てテーブル)
NTFS:New Technology File System
OEM:Original Equipment Manufacturer
OS:Operating System(オペレーティングシステム)
Platform Extension Manager:WBPTによって指定されるWindows(登録商標)ネイティブユーザーモードアプリケーション(例えば、PlatExtMgr.exe、wpbbin.exe)。このネイティブユーザモードアプリケーションは、PlatExtMgr.exeとしてSDKに組み込まれる。これはWPBTによって公開されるため、名前のないメモリ内のバイナリバッファになる。Windows(登録商標)がWPBTを検出し、次いで、このバイナリバッファを検出すると、Windows(登録商標)はこのバッファを、MicrosoftのWPBT仕様に従ってwpbbin.exeファイルとして保存する。これが実行されると、このアプリケーションはXPBTテーブルを検出し、それらのテーブルによって参照されるバイナリをインストールする。
RSDT:Root System Description Table(ルートシステム記述テーブル)
SDK:Software Development Kit(ソフトウェア開発キット)
SHA:Secure Hash Algorithm(セキュアハッシュアルゴリズム)
UEFI:Unified Extensible Firmware Interfaceは、オペレーティングシステムとプラットフォームファームウェアとの間のソフトウェアインタフェースを定義する仕様である。UEFIは、不揮発性メモリにファームウェアとして保存される。
WPBT:Windows Platform Binary Table(Windowsプラットフォームバイナリテーブル)
XPBT:Extended Platform Binary Table(拡張プラットフォームバイナリテーブル)。XPBTは複数のノードに対応できる。
XSDT:Extended System Description Table(拡張システム記述テーブル)
B.実施例
図1を参照すると、本プロセスにおける主なステップがフローチャートの形で示されている。ステップ2では、コンピュータのブート中に、複数のバイナリイメージがACPIテーブルにインストールされる。ここで、バイナリイメージの1つは、マネージャバイナリである。ステップ4では、まだブート中であり、マネージャバイナリがオペレーティングシステムのファイルシステムに保存される。ある時点の、OSのロード処理の早い段階におけるある時点で、OSはマネージャバイナリを実行する。これにより、ステップ6で他のバイナリイメージがOSファイルシステムに保存される。以下、より詳細なフローチャートについて説明する。
図2には、UEFI BIOSのようなファームウェア12からコンピューティングデバイスのオペレーティングシステムに複数のバイナリを公開するためのシステム10が示されている。
第1再生モジュール(例えば、ABT Persistence(登録商標))20が、ファームウェア12に格納されている。この再生モジュール20は、DXEドライバであるAbtDxe22を含み、これは、コンピューティングデバイスから遠隔にあるサーバにコンタクトすることができるセキュリティモジュールである。また、再生モジュール20には、インストーラ24(例えば、AbtAgentInstaller)が含まれており、インストーラ24には、プラットフォーム拡張マネージャバイナリイメージ26(例えば、PlatExtMgr.exe)およびエージェント28(例えば、AbtAgent)が含まれている。ドライバ22は、デバイスのブート時に実行され、インストーラ24の動作を開始させる。
第2再生モジュールである、OEM再生モジュール40もファームウェア12に格納されている。OEM再生モジュール40は、第2インストーラ41、および、バイナリであるOem.exe42を含む。また、OEM再生モジュール40は、デバイスの起動時に自動的に動作する。
マネージャバイナリイメージ26は、インストーラ24(例えば、AbtAgentInstaller)によってWPBT50にインストールされ、マネージャバイナリイメージ26のコピー26Aとして示される。
XPBT(Extended Platform Binary Table)53は、WPBT50の作成とともに、OSエージェント28A用のXPBTノード54と共にインストーラ24によって作成される。その他のすべてのXPBTノードは、UEFI BIOS12で実行される、個別のOEMのまたはサードパーティのインストーラを使用して作成される。例えば、ABT再生モジュール20には1つのインストーラ24があり、OEM再生モジュール40には別のインストーラ41がある。ABT再生モジュール20は、OEM再生モジュール40がOem.exeエージェントをインストールできるようにするために必要である。したがって、異なるエンティティがXPBT53を更新および/または拡張して、それぞれの部分を挿入することが可能である。
Windows(登録商標)の起動中、WPBTによって指定されるマネージャバイナリイメージ26Aは、プラットフォーム拡張マネージャバイナリイメージ26の追加コピー26B(wpbbin.exe)として保存され、通常どおりWindows(登録商標)によって実行される。この方法では、追加のバイナリイメージをWindows(登録商標)で実行することはできない。
OSエージェント28AおよびOEMエージェントOem.exe42Aを含む、それぞれの有効なXPBTペイロードバイナリは、OSファイルシステム60に保存される。プラットフォーム拡張マネージャ26Bは、ペイロードバイナリ28A、42Aが特定のOS用であることを確認し、それを処理する前にXPBT53の完全性を検証する。XPBT53のXPBT SHA256ハッシュ57は、UEFI BIOS12内のインストーラ24によって計算され、読み取り専用UEFI変数59に保存される。プラットフォーム拡張マネージャ26BがXPBTの完全性を検証するためにUEFI変数59を読み出す。ハッシュ57の計算は、様々なエンティティがそれらの特定のXPBTノード54、56をXPBT53に挿入した後、AbtDxeドライバ22によって開始される。これにより、XPBTの完全性が、プラットフォーム拡張マネージャ26Bによって後から検証可能となる。
APIは、さまざまなエンティティがXPBTノード54、56をXPBT53に挿入できるようにするAbtDxeドライバコードで提供される。したがって、OEMインストーラ41は、インストーラ24が起動した後に実行を開始するか、あるいは、もし事前に起動していたなら、インストーラ24によるXPBT53の作成完了を待たなければならない。エージェント28Aはエージェント28Bとして保存され、Oem.exe42AはOem.exe42Bとして保存される。XPBTインストールデータは、OSレジストリ62を更新するために使用され、その結果、XPBTバイナリ、すなわちエージェント28BおよびOem.exe42Bが実行される。
図3は、WPBT、XPBTおよび他のACPIテーブルのデータ構造を示す。ACPIルートシステム記述ポインタ70は、標準ACPIヘッダ76およびポインタ78を含む、RSDT(ルートシステム記述テーブル)またはXSDT(拡張システム記述テーブル)72を指す。ポインタ78は、WBPT50と1つ以上の異なる名前のXBPT110、120とを含むACPIテーブルを指す。WBPT50は、プラットフォーム拡張マネージャバイナリイメージ26Bを実行するための、標準ACPIヘッダ84、ハンドオフサイズ86、ハンドオフアドレス88、コマンド長90、および、コマンドライン引数92を含む。ハンドオフアドレスは、プラットフォーム拡張マネージャバイナリイメージ26Aを指す。
XPBT110、120の2つの例が示されている。一般に、複数のノードを有するため、XPBT120のみが使用されるが、実施形態に応じて、各タイプのテーブルが無くてもよく、あるいは、各タイプのテーブルが1またはそれ以上あってもよい。1つのバイナリを有するXPBT110は、標準ACPIヘッダ106、インストールデータ116、およびエージェント118のバイナリイメージを含む。インストールデータ116は、プラットフォーム拡張マネージャ26Bによって、対応するXPBTペイロードバイナリ118を起動するために使用される。複数のバイナリ用のXPBT120は、インストールデータ122、エージェント124のバイナリイメージ、さらにインストールデータ126、および別のエージェント128のさらなるバイナリイメージを含む。
XPBTインストールデータ116は、バイナリ118が保存される位置と、バイナリ118が通常のOSブートプロセスの一部として実行されるようにレジストリに対して加えられる必要な変更とを含む。OSがバイナリ118を実行する前の署名の検証は、OSに依存している。ペイロードバッファ(例えば、バイナリイメージ118)は、XPBT110に直接続くように作成され、テーブルサイズは、ペイロードバッファを含むように調整される。このようにして、APIは、全体、すなわち、テーブル110およびそれに対応するバイナリイメージ118を返す。
同様に、インストールデータ122は、バイナリ124が保存される位置と、バイナリ124が通常のOSブートプロセスの一部として実行されるようにレジストリに対して加えられる必要な変更とを含む。インストールデータ126とバイナリ128についても同様である。第1ペイロードバッファ(例えば、バイナリイメージ124)は、XPBT120に直接続くように作成され、第2インストールデータ126およびペイロードバッファ(例えば、バイナリイメージ128)は、第1ペイロードバッファ124に直接続くように作成される。テーブルサイズは、ペイロードバッファを含むように調整される。これにより、APIはテーブル120とそれに対応するバイナリイメージ124、128を返す。
表1に、XPBT53の例を示す。ACPIテーブル52内のXPBTエントリ53は、WPBTのものと同様である。複数のXPBTノードエントリ54、56がACPIテーブル52に存在し得る。表1~5は、例示的なXPBTエントリの詳細な定義を提供する。表2に、XPBTに存在するイメージフラグの例を示す。表3に、CPU Typeとラベル付けされたイメージフラグの値の例を示す。表4に、OS Typeとラベル付けされたイメージフラグの値の例を示す。表5に、イメージタイプとラベル付けされたイメージフラグの値の例を示す。
Figure 0007102524000001
Figure 0007102524000002
Figure 0007102524000003
Figure 0007102524000004
Figure 0007102524000005
表1~5は、複数のバイナリイメージがどのようにサポートされかを示す実装の一例にすぎず、他の実装の形態も可能である。
図4を参照すると、電子デバイスにおいて複数のバイナリを公開するために行われるプロセスが示されている。このプロセスは、電子デバイス内のコンピュータで読み取り可能なメモリに記憶されたコンピュータで読み取り可能な命令を実行することにより、電子デバイス内の1つまたは複数のプロセッサによって実行される。まず、コンピュータまたは他の電子デバイスが起動され、ステップ140で、電子デバイスがブートを開始する。ステップ145において、この起動プロセスの間に、電子デバイスのファームウェアは、複数のバイナリイメージのセットの中の第1バイナリイメージをACPIテーブルにインストールする。第1バイナリイメージは、この場合、マネージャイメージ26であり、AbtDxeドライバ22によって起動されるインストーラ24により、WPBT ACPIテーブルにインストールされる。起動プロセス中のステップ150において、ファームウェアは、第2バイナリイメージ28をACPIテーブルにインストールする。まだ起動プロセス中のステップ155において、ファームウェアは、第3バイナリイメージ42をACPIテーブルにインストールする。
ステップ160で、ファームウェアはバイナリイメージのハッシュ57をUEFI読み取り専用変数として保存する。ステップ162で、OSがロードを開始する。ステップ165では、OSのロード中に、ACPIテーブルにインストールされているマネージャイメージ26Aのコピーが、オペレーティングシステムのファイルシステムに保存される。OSブート処理の初期の段階のある時点で、ステップ170において、OSファイルシステムに保存されたマネージャ26Bが実行される。マネージャ26Bは、実行されると、ステップ175で第2バイナリ28BをOSファイルシステムに保存し、ステップ180で第3バイナリ42BをOSファイルシステムに保存する。ステップ185で、OSはドライバ、サービスおよびアプリケーションのロードを開始し、最終的にはデスクトップが表示可能な状態になる。
その結果、バイナリ28Bと42Bの両方が実行され、ファームウェアからOSに公開される。
以上説明したように、XPBTは既存のすべてのバージョンのWindows(登録商標)8/10で動作し、XPBT専用モデルへの移行を支援する。
C.変形例
本発明は、ABTおよびOEM再生モジュールに関連して説明されているが、同様に機能するのであれば、別の供給元からの他のモジュールが使用されてもよい。
XPBT署名とXPBT ACPIテーブルレイアウトは実装に依存する。XPBT署名は、プラットフォーム拡張マネージャが何を検索するかを知っている限り、どのようなものであってもよい。XPBTレイアウトは、プラットフォーム拡張マネージャが解析方法を認識している限り、どのようなものであってもよい。したがって、他の実施形態におけるACPI署名は、表1に関連して定義されたテーブルレイアウトを有するXPBTとは異なる。
全体的な目標は、ACPIテーブルから複数のバイナリイメージをロードすることをサポートすることである。これは、XPBT内に複数のバイナリイメージを持つこと、または、各々が1つのイメージを持つ複数のXPBTテーブルを持つこと、あるいは、それら2つの組み合わせ(すなわち、各々が1つまたは複数のバイナリイメージを有する複数のXPBTテーブルを持つこと)、によって達成される。
他の実施形態では、ACPIテーブルの代わりに他の構成テーブルを使用することができる。
バイナリイメージペイロードは、サービス、アプリケーション、またはドライバでもよい。
また、本発明は、他のオペレーティングシステムに関連して実施することができる。すなわち、XPBTの仕様を、OSに依存させず、Windows(登録商標)に加えて他の種類のOSをサポートさせることが可能である。

Claims (11)

  1. 電子デバイスのファームウェアから、該電子デバイスのオペレーティングシステムに複数のバイナリイメージを公開する方法であって、
    前記電子デバイスの起動中に実行される、
    前記ファームウェアに記録されている第1バイナリイメージを、前記電子デバイスの構成テーブルにインストールするステップと、
    前記ファームウェアに記録されている第2バイナリイメージを、前記構成テーブルにインストールするステップと、
    前記第1バイナリイメージのコピーを、前記オペレーティングシステムのファイルシステムに保存するステップと、
    前記オペレーティングシステムのロードが開始した後に実行される、
    前記第1バイナリイメージのコピーを実行して、
    前記ファイルシステムに前記第2バイナリイメージのコピーを保存し、
    第3バイナリイメージを前記構成テーブルから前記ファイルシステムにコピーする、
    ステップと、
    を有する方法。
  2. 前記ファームウェアに記録されている前記第3バイナリイメージを、前記構成テーブルにインストールするステップを有する、
    請求項1に記載の方法。
  3. 前記第1バイナリイメージの前記コピーは、前記ファイルシステムに前記第2バイナリイメージの前記コピーを保存するステップ、および、前記第3バイナリイメージを前記構成テーブルから前記ファイルシステムにコピーするステップの前に実行される、
    前記構成テーブルを検索して、前記第2および前記第3バイナリイメージを見つけるステップと、
    前記第2および前記第3バイナリイメージの完全性を検証するステップと、
    を有する、請求項1に記載の方法。
  4. 前記構成テーブル内の前記第2および前記第3バイナリイメージのハッシュを計算するステップと、
    前記ハッシュを読み取り専用のUEFI(Unified Extensible Firmware Interface)変数に保存するステップと、
    前記第1バイナリイメージのコピーを用い、前記ハッシュにアクセスすることによって、前記第2および前記第3バイナリイメージの完全性を検証するステップと、
    を有する、請求項1に記載の方法。
  5. 前記第2および前記第3のバイナリイメージが、それぞれ異なるエンティティから提供され、
    前記構成テーブルが、ACPI(Advanced Configuration and Power Interface table)テーブルである、
    請求項1に記載の方法。
  6. 前記第1バイナリイメージは、前記構成テーブル内の、特定のオペレーティングシステムプラットフォームバイナリテーブルにインストールされ、
    前記第2および前記第3バイナリイメージはどちらも、前記構成テーブル内の、共通プラットフォームバイナリテーブルに、ノードとしてインストールされる、
    請求項1に記載の方法。
  7. 前記第1バイナリイメージの前記コピーは、実行されると、
    前記第2および前記第3バイナリイメージが前記オペレーティングシステムのロードの完了後に自動的に実行されるよう、前記オペレーティングシステム内のレジストリを変更するステップを実行する、
    請求項1に記載の方法。
  8. 複数のバイナリイメージを公開する電子デバイスであって、
    プロセッサと、
    オペレーティングシステムと、
    コンピュータで読み取り可能な指示を記憶するファームウェアと、
    を含み、
    前記コンピュータで読み取り可能な指示は、前記プロセッサによって実行されると、
    前記電子デバイスの起動中に、該電子デバイスに、
    前記ファームウェアに記憶された第1バイナリイメージの、前記電子デバイスの構成テーブルへのインストールと、
    前記ファームウェアに記憶された第2バイナリイメージの、前記構成テーブルへのインストールと、
    前記ファームウェアに記憶された第3バイナリイメージの、前記構成テーブルへのインストールと、
    前記第1バイナリイメージのコピーの、前記オペレーティングシステムのファイルシステムへの保存と、
    を実行させ、
    前記オペレーティングシステムのロードが開始した後に、該電子デバイスに前記第1バイナリイメージの前記コピーを実行させることにより、
    前記ファイルシステムへの前記第2バイナリイメージのコピーの保存と、
    前記第3バイナリイメージの前記構成テーブルから前記ファイルシステムへのコピーと、
    を実行させる、
    電子デバイス。
  9. 前記構成テーブルが、ACPI(Advanced Configuration and Power Interface table)テーブルである、
    請求項8に記載の電子デバイス。
  10. 前記第1バイナリイメージは、前記構成テーブル内の、特定のオペレーティングシステムプラットフォームバイナリテーブルにインストールされ、
    前記第2および前記第3バイナリイメージはそれぞれ、前記構成テーブル内の、別々のプラットフォームバイナリテーブルにインストールされる、
    請求項8に記載の電子デバイス。
  11. コンピュータで読み取り可能な指示を記録した非遷移的記録媒体であって、
    該コンピュータで読み取り可能な指示は、電子デバイス内のプロセッサによって実行されると、
    前記電子デバイスの起動中に、該電子デバイスに、
    前記電子デバイスのファームウェアに記憶された第1バイナリイメージの、前記電子デバイスの構成テーブルへのインストールと、
    前記ファームウェアに記憶された第2バイナリイメージの、前記構成テーブルへのインストールと、
    前記ファームウェアに記憶された第3バイナリイメージの、前記構成テーブルへのインストールと、
    前記第1バイナリイメージのコピーの、前記電子デバイスのオペレーティングシステムのファイルシステムへの保存と、
    を実行させ、
    前記電子デバイスに前記第1バイナリイメージの前記コピーを実行させることにより、
    前記ファイルシステムへの前記第2バイナリイメージのコピーの保存と、
    前記ファイルシステムへの前記第3バイナリイメージのコピーの保存と、
    を実行させる、
    非遷移的記録媒体。
JP2020531623A 2017-12-13 2018-12-11 複数のバイナリイメージのファームウェア公開 Active JP7102524B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022082910A JP7454011B2 (ja) 2017-12-13 2022-05-20 複数のバイナリイメージのファームウェア公開方法および電子デバイス

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762598095P 2017-12-13 2017-12-13
US201762598319P 2017-12-13 2017-12-13
US62/598,095 2017-12-13
US62/598,319 2017-12-13
PCT/CA2018/051575 WO2019113686A1 (en) 2017-12-13 2018-12-11 Firmware publication of multiple binary images

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022082910A Division JP7454011B2 (ja) 2017-12-13 2022-05-20 複数のバイナリイメージのファームウェア公開方法および電子デバイス

Publications (3)

Publication Number Publication Date
JP2021507353A JP2021507353A (ja) 2021-02-22
JPWO2019113686A5 JPWO2019113686A5 (ja) 2022-01-31
JP7102524B2 true JP7102524B2 (ja) 2022-07-19

Family

ID=66818857

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020531623A Active JP7102524B2 (ja) 2017-12-13 2018-12-11 複数のバイナリイメージのファームウェア公開
JP2022082910A Active JP7454011B2 (ja) 2017-12-13 2022-05-20 複数のバイナリイメージのファームウェア公開方法および電子デバイス

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022082910A Active JP7454011B2 (ja) 2017-12-13 2022-05-20 複数のバイナリイメージのファームウェア公開方法および電子デバイス

Country Status (6)

Country Link
US (1) US11269606B2 (ja)
EP (1) EP3724757B1 (ja)
JP (2) JP7102524B2 (ja)
AU (2) AU2018384097B2 (ja)
CA (2) CA3169129A1 (ja)
WO (1) WO2019113686A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11237839B2 (en) 2020-06-19 2022-02-01 Dell Products L.P. System and method of utilizing platform applications with information handling systems
US11340937B2 (en) 2020-06-24 2022-05-24 Dell Products L.P. System and method of utilizing platform applications with information handling systems
US11340682B1 (en) 2021-03-02 2022-05-24 Dell Products L.P. System and method of configuring power settings of an information handling system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276359A (ja) 1999-03-23 2000-10-06 Sony Corp 情報処理装置、プログラム初期化方法及びプログラム提供媒体
JP2005182790A (ja) 2003-12-16 2005-07-07 Microsoft Corp 自己記述型ソフトウェアイメージ更新コンポーネント

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL129947A (en) 1999-05-13 2003-06-24 Tadiran Telecom Business Syste Method and apparatus for downloading software into an embedded system
AU6477600A (en) * 1999-07-19 2001-02-05 Choonyeol Yu Devices for using multi-oss
US20090327741A1 (en) 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8239667B2 (en) 2008-11-13 2012-08-07 Intel Corporation Switching between multiple operating systems (OSes) using sleep state management and sequestered re-baseable memory
US8589302B2 (en) * 2009-11-30 2013-11-19 Intel Corporation Automated modular and secure boot firmware update
US9721101B2 (en) 2013-06-24 2017-08-01 Red Hat, Inc. System wide root of trust chaining via signed applications
US8607040B2 (en) * 2010-11-16 2013-12-10 Intel Corporation Method of provisioning firmware in an operating system (OS) absent services environment
US10514942B2 (en) 2014-02-24 2019-12-24 Red Hat Israel, Ltd. Using linker scripts for loading system configuration tables
US9612846B2 (en) 2015-06-10 2017-04-04 Dell Products, L.P. Out-of-band (OOB) real-time inventory and configuration of original equipment manufacturer (OEM) devices using advanced configuration and power interface (ACPI) and unified extensible firmware interface (UEFI) services
US10740109B2 (en) * 2017-03-22 2020-08-11 Vmware, Inc. Configuring a computing device using managed operating system images
US10402204B1 (en) * 2017-04-25 2019-09-03 American Megatrends International, Llc Multi-platform firmware support
US10599617B2 (en) * 2017-06-29 2020-03-24 Intel Corporation Methods and apparatus to modify a binary file for scalable dependency loading on distributed computing systems
US10664262B2 (en) * 2017-08-29 2020-05-26 Crowdstrike, Inc. Binary suppression and modification for software upgrades

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000276359A (ja) 1999-03-23 2000-10-06 Sony Corp 情報処理装置、プログラム初期化方法及びプログラム提供媒体
JP2005182790A (ja) 2003-12-16 2005-07-07 Microsoft Corp 自己記述型ソフトウェアイメージ更新コンポーネント

Also Published As

Publication number Publication date
WO2019113686A1 (en) 2019-06-20
AU2018384097A1 (en) 2020-07-16
CA3084161C (en) 2022-09-27
JP2021507353A (ja) 2021-02-22
US20210216296A1 (en) 2021-07-15
CA3084161A1 (en) 2019-06-20
CA3169129A1 (en) 2019-06-20
JP2022110133A (ja) 2022-07-28
EP3724757A1 (en) 2020-10-21
AU2018384097B2 (en) 2022-03-10
EP3724757A4 (en) 2021-08-25
JP7454011B2 (ja) 2024-03-21
EP3724757B1 (en) 2023-06-28
AU2022202175A1 (en) 2022-04-21
US11269606B2 (en) 2022-03-08
AU2022202175B2 (en) 2024-02-08

Similar Documents

Publication Publication Date Title
US7134007B2 (en) Method for sharing firmware across heterogeneous processor architectures
JP7454011B2 (ja) 複数のバイナリイメージのファームウェア公開方法および電子デバイス
US7934209B2 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
US7363480B1 (en) Method, system, and computer-readable medium for updating the firmware of a computing device via a communications network
US8185884B2 (en) System and method for offline updation of software in virtual machine (VM) images
US9626181B2 (en) Systems and methods to securely inject binary images and code into firmware
US20040230963A1 (en) Method for updating firmware in an operating system agnostic manner
Zimmer et al. Beyond BIOS: developing with the unified extensible firmware interface
US7162626B2 (en) Use of common language infrastructure for sharing drivers and executable content across execution environments
JP2003099268A (ja) 選択された機能を有するオペレーティングシステムを作成し使用する方法及びシステム
US8539214B1 (en) Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware
CN107766084B (zh) 启动装载及安装方法及其计算系统
US10664598B1 (en) Firmware security patch deployment
US7840792B2 (en) Utilizing hand-off blocks in system management mode to allow independent initialization of SMBASE between PEI and DXE phases
KR20150026777A (ko) 맞춤형 통합 확장 펌웨어 인터페이스 드라이버를 설치한 컴퓨터-읽기가능 레코딩 매체 및 그것의 방법
CN115390996A (zh) 虚拟机迁移方法和装置、计算设备和存储介质
CN111433747A (zh) 用于加载操作系统的虚拟存储器
US7873807B1 (en) Relocating a program module from NVRAM to RAM during the PEI phase of an EFI-compatible firmware
WO2011157105A2 (zh) 组件扩展方法和装置
US11474807B1 (en) Firmware update method and computer program product for updating firmware
US20220197673A1 (en) Binary Image Publication by Firmware
US11675601B2 (en) Systems and methods to control software version when deploying OS application software from the boot firmware
US11500646B1 (en) Tracking heterogeneous operating system installation status during a manufacturing process
JP2006012158A (ja) デジタルデバイスのファームウェアとオペレーティングシステムとの間の拡張可能インターラクションを提供する方法および装置
TW202238379A (zh) 組成模組化韌體的方法、裝置及電腦程式產品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220121

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220520

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220706

R150 Certificate of patent or registration of utility model

Ref document number: 7102524

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150