dm-verity
LinuxのDevice Mapper機能の一つ。ブロックデバイスに対して、ディスクが変更されていないかを確認できる。
Androidでは標準で利用されている。
仕組み
ブロックのハッシュ値を葉としたハッシュツリー ( マークルツリー ) を作成し、マークルルートを保管することで、ディスクの改ざんを検知する。基本的にめったに更新しないブロックデバイスに対して、暗号化せずとも完全性を保つ目的として使われる。見た感じ、計算負荷は結構高そうなので普段遣いには向かない気がする。
Androidでの立場
boot.imgにsystem.imgのdm-verity有効情報が入っている。つまり、dm-verityをオフにしない限りsystem.imgに対応するboot.imgが書き込んでいないとdm-verityに失敗する。これによってsystem.img改変が防がれる。
ちなみにMagiskはsystem.imgではなくboot.imgを書き換えているのでdm-verityには引っかからない。