From 7acaea6770021889d1745b8fb54b57b7cf10585a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Wed, 19 Jul 2023 01:13:15 +0000 Subject: [PATCH] init.rc: stop calling 'fsverity_init --load-verified-keys' Since Android 14, Android does not use fsverity builtin signatures. (fsverity remains supported, but signatures are verified in userspace, or fsverity is used for integrity-only use cases.) Therefore, the only reason to still run 'fsverity_init --load-verified-keys' at boot time is to ensure that old files can still be opened, if: - They were created by Android 13 or earlier, with an fsverity builtin signature by a key in /{system,product}/etc/security/fsverity/. - *And*, the kernel still has CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y. However, it appears that this isn't actually needed anymore. Only two features could potentially be affected: APK verity and updatable fonts. APK verity wasn't widely rolled out before being disabled, and updatable fonts have recovery logic in place for when the files cannot be opened. And in any case, disabling CONFIG_FS_VERITY_BUILTIN_SIGNATURES in the kernel is recommended and would avoid any problem. Bug: 290064770 Test: presubmit Change-Id: I3376c3f0b4b9bd4ba2fd614259522be0c1daafb6 --- rootdir/Android.bp | 5 +---- rootdir/init.rc | 3 --- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/rootdir/Android.bp b/rootdir/Android.bp index e98733ada..65865a65b 100644 --- a/rootdir/Android.bp +++ b/rootdir/Android.bp @@ -20,10 +20,7 @@ prebuilt_etc { name: "init.rc", src: "init.rc", sub_dir: "init/hw", - required: [ - "fsverity_init", - "platform-bootclasspath", - ], + required: ["platform-bootclasspath"], } prebuilt_etc { diff --git a/rootdir/init.rc b/rootdir/init.rc index d2499ef38..dec763ac1 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -629,9 +629,6 @@ on late-fs # HALs required before storage encryption can get unlocked (FBE) class_start early_hal - # Load trusted keys from dm-verity protected partitions - exec -- /system/bin/fsverity_init --load-verified-keys - # Only enable the bootreceiver tracing instance for kernels 5.10 and above. on late-fs && property:ro.kernel.version=4.9 setprop bootreceiver.enable 0