Androidのパーティション
boot: カーネルとinitramfsが入っている。通常のLinuxのようにvmlinuzファイルとして置いてあるのではなく、さらにkernel.imgとramdisk.imgというイメージファイルとして保存されている。
vendor_boot: AOSPの利用しているbootにベンダーが書き込みを加える場合(主にカスタムのramdisk.imgを追加したい場合)には、bootを改変するのではなくvendor_bootに分けるようにAndroid 12から変更された。
system: Androidコンポーネントが入っている
system_ext: systemに上書きしたいしたいベンダー固有のバイナリなどを置く。
recovery: リカバリー用のカーネルとinitramfsが入っている。A/Bパーティション方式の場合recoveryパーティションはなく、リカバリー用のinitramfsがbootに同梱されている。カーネルはbootと共有。ちなみに非A/Bパーティション方式の場合はOSとは別にアップデートを実行する仕組みが必要(なのでリカバリが起動しsystemやbootを更新していた)のでrecoveryとbootが別である必要があったが、A/Bパーティションではその必要がなくなったため統合された。
userdata: ユーザーがインストールしたアプリや設定などが入る
vendor: ベンダー固有のバイナリやドライバなどを置く。/vendorにマウントされる。
vendor_dlkm: ベンダー固有のカーネルモジュールを置く。
product: vendorパーティションに上書きしたいベンダー固有のバイナリなどを置く。多分スマホのベンダー(OEM元)と端末を発売してOSをカスタマイズしている会社が別の時、それぞれ別々のパーティションにおいた方が都合がいいからこうしてるんだと思われる。
参考: