diff --git a/fs_mgr/fs_mgr.c b/fs_mgr/fs_mgr.c index 6e6d69fe2..72277020b 100644 --- a/fs_mgr/fs_mgr.c +++ b/fs_mgr/fs_mgr.c @@ -701,7 +701,7 @@ int fs_mgr_mount_all(struct fstab *fstab, int mount_mode) } if ((fstab->recs[i].fs_mgr_flags & MF_VERIFY) && device_is_secure()) { - int rc = fs_mgr_setup_verity(&fstab->recs[i]); + int rc = fs_mgr_setup_verity(&fstab->recs[i], true); if (__android_log_is_debuggable() && rc == FS_MGR_SETUP_VERITY_DISABLED) { INFO("Verity disabled"); } else if (rc != FS_MGR_SETUP_VERITY_SUCCESS) { @@ -870,7 +870,7 @@ int fs_mgr_do_mount(struct fstab *fstab, char *n_name, char *n_blk_device, } if ((fstab->recs[i].fs_mgr_flags & MF_VERIFY) && device_is_secure()) { - int rc = fs_mgr_setup_verity(&fstab->recs[i]); + int rc = fs_mgr_setup_verity(&fstab->recs[i], true); if (__android_log_is_debuggable() && rc == FS_MGR_SETUP_VERITY_DISABLED) { INFO("Verity disabled"); } else if (rc != FS_MGR_SETUP_VERITY_SUCCESS) { @@ -1086,7 +1086,7 @@ int fs_mgr_get_crypt_info(struct fstab *fstab, char *key_loc, char *real_blk_dev int fs_mgr_early_setup_verity(struct fstab_rec *fstab_rec) { if ((fstab_rec->fs_mgr_flags & MF_VERIFY) && device_is_secure()) { - int rc = fs_mgr_setup_verity(fstab_rec); + int rc = fs_mgr_setup_verity(fstab_rec, false); if (__android_log_is_debuggable() && rc == FS_MGR_SETUP_VERITY_DISABLED) { INFO("Verity disabled"); return FS_MGR_EARLY_SETUP_VERITY_NO_VERITY; diff --git a/fs_mgr/fs_mgr_priv_verity.h b/fs_mgr/fs_mgr_priv_verity.h index d9e17bb54..1a6d215cb 100644 --- a/fs_mgr/fs_mgr_priv_verity.h +++ b/fs_mgr/fs_mgr_priv_verity.h @@ -22,6 +22,6 @@ __BEGIN_DECLS -int fs_mgr_setup_verity(struct fstab_rec *fstab); +int fs_mgr_setup_verity(struct fstab_rec *fstab, bool verify_dev); __END_DECLS diff --git a/fs_mgr/fs_mgr_verity.cpp b/fs_mgr/fs_mgr_verity.cpp index 031b04219..30c9731d9 100644 --- a/fs_mgr/fs_mgr_verity.cpp +++ b/fs_mgr/fs_mgr_verity.cpp @@ -892,7 +892,7 @@ static void update_verity_table_blk_device(char *blk_device, char **table) *table = strdup(result.c_str()); } -int fs_mgr_setup_verity(struct fstab_rec *fstab) +int fs_mgr_setup_verity(struct fstab_rec *fstab, bool verify_dev) { int retval = FS_MGR_SETUP_VERITY_FAIL; int fd = -1; @@ -1043,7 +1043,7 @@ loaded: verity_blk_name = 0; // make sure we've set everything up properly - if (test_access(fstab->blk_device) < 0) { + if (verify_dev && test_access(fstab->blk_device) < 0) { goto out; }