Skip to content

Instantly share code, notes, and snippets.

@fi01
Last active March 22, 2018 23:38
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save fi01/6121462 to your computer and use it in GitHub Desktop.
Save fi01/6121462 to your computer and use it in GitHub Desktop.
ブートローダはaboot。同名のパーティションに保存されている。
ブートイメージの起動には署名(SHA256)が必要、いわゆるlocked。
署名が合わない時はtamperedフラグをセットし、shdiag
パーティションにログを書き込み、起動停止。この時本来は
fastbootになるが、fastboot自体が削除されている。
テンポラリにイメージを読み込み、署名のチェック後に
カーネルとramdiskを実際の本来のアドレスにコピーするため、
lokiが使う脆弱性は無い。
署名が確認されるとkernelのcmdlineに
androidboot.authorized_kernel=trueが追加される。
ただしブートローダ・アンロック状態では署名のチェックが
スキップされるため、署名があるカーネルであってもcmdlineは
追加されない。
abootパーティションの先頭40バイトにはアドレス情報があり、
その後がメモリにロードされる。abootのロードアドレスは
0x88f00000。
ブートローダのunlockとtamperedフラグはaboot
パーティション内に保存されている。
atag情報はabootが生成する。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment