From 17f248d2e4847943ccc52bd2eb01b49310e68701 Mon Sep 17 00:00:00 2001 From: Prashant Malani Date: Fri, 11 Nov 2016 15:20:10 -0800 Subject: [PATCH] fs_mgr: Fix disable-verity for verifyatboot partitions This allows a remount to be performed on partitions which have been verified at boot, without causing the verity service to complain of "corrupted" blocks that could have been modified as a result of a remount (while the verity checksum remained unchanged). (cherry picked from commit dd78ae75ff91f19106a4c3944fe3170602ac2334) Bug: 32638755 Test: Compile Change-Id: I77cf7dd20ee5c5f5dac80f73f292e32583fe5906 --- fs_mgr/fs_mgr_verity.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/fs_mgr/fs_mgr_verity.cpp b/fs_mgr/fs_mgr_verity.cpp index efe3fd629..d43c75699 100644 --- a/fs_mgr/fs_mgr_verity.cpp +++ b/fs_mgr/fs_mgr_verity.cpp @@ -825,7 +825,7 @@ int fs_mgr_update_verity_state(fs_mgr_verity_state_callback callback) char fstab_filename[PROPERTY_VALUE_MAX + sizeof(FSTAB_PREFIX)]; const char *mount_point; char propbuf[PROPERTY_VALUE_MAX]; - char *status; + const char *status; int fd = -1; int i; int mode; @@ -875,9 +875,13 @@ int fs_mgr_update_verity_state(fs_mgr_verity_state_callback callback) verity_ioctl_init(io, mount_point, 0); if (ioctl(fd, DM_TABLE_STATUS, io)) { - ERROR("Failed to query DM_TABLE_STATUS for %s (%s)\n", mount_point, - strerror(errno)); - continue; + if (fstab->recs[i].fs_mgr_flags & MF_VERIFYATBOOT) { + status = "V"; + } else { + ERROR("Failed to query DM_TABLE_STATUS for %s (%s)\n", mount_point, + strerror(errno)); + continue; + } } status = &buffer[io->data_start + sizeof(struct dm_target_spec)];