Trusty OS(TOS)パーティション
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
Trusty は、Google による Trusted Execution Environment(TEE)OS の実装であり、Android で実行されます。これは ARM Trustzone テクノロジーで TEE を提供するための仕様です。ARM デバイスで Trusty をセキュアな OS ソリューションとして使用する場合は、この後の各セクションの説明に従ってブートローダーを実装します。
TOS の初期化
Trusty OS(TOS)を読み込んで初期化するには、ブートローダーが以下の処理を行う必要があります。
- 使用可能なすべての RAM を設定して構成する
- シリアルポートを少なくとも 1 つ初期化する
- TOS イメージの署名を確認する
- TOS を RAM に読み込む(フラッシュや TCM からの実行には対応していません)
- 以下で説明するように、状態とレジスタを設定した後、TOS イメージの最初の命令にジャンプする
TOS イメージの呼び出し
最初に次の状態を構成します。
- MMU をオフにする
- データ キャッシュをフラッシュしてオフにする(命令キャッシュはオンとオフのどちらも可能)
- すべての割り込み(IRQ と FIQ)を無効にする
- CPU を ARMv7 では SVC モード、ARMv8 では EL3 モードにする
- レジスタを次の状態にする:
r0/x0
: TOS に割り当てるメモリのサイズ。
r1/x1
: プラットフォーム独自のブート パラメータを含むメモリの連続したブロックの物理アドレス。このブロックのレイアウトはプラットフォームによって異なります。
r2/x2
: メモリの上記ブロックのサイズ。
r14/x30
: TOS の初期化後に(非セキュアモードで)ジャンプするリターン アドレス。
64 ビット プラットフォームの場合、次のようになります。
- パラメータには
w0-w2
のみが使用されるため、x0-x2
には 32 ビット値のみを含めます。
x30
には 64 ビットの値を設定できます。
x0
の値が TOS エントリ ポイントのベースアドレスに追加された場合、結果は 32 ビット値になります。x1
のブート パラメータ ブロックのアドレスに追加したときのレジスタ x2 のサイズについても同様です。
TOS から戻る
TOS の初期化が完了すると、TOS は非セキュアモードでブートローダーに戻ります(SCR.NS が 1
に設定されます)。それにより、ブートローダーは主たるオペレーティング システム(Android)の読み込みを続行できます。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2022-09-20 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2022-09-20 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2022-09-20 UTC。"]]