Loading adb/adb.h +1 −1 Original line number Diff line number Diff line Loading @@ -329,7 +329,7 @@ int handle_forward_request(const char* service, transport_type ttype, char* seri #if !ADB_HOST void framebuffer_service(int fd, void *cookie); // Allow enable-verity to write to system and vendor block devices int make_system_and_vendor_block_devices_writable(); int make_block_device_writable(const char* dev); void remount_service(int fd, void *cookie); void set_verity_enabled_state_service(int fd, void* cookie); #endif Loading adb/remount_service.c +10 −43 Original line number Diff line number Diff line Loading @@ -79,14 +79,12 @@ static int hasVendorPartition() return false; } static int make_block_device_writable(const char* dir) int make_block_device_writable(const char* dev) { char *dev = 0; int fd = -1; int OFF = 0; int rc = -1; dev = find_mount(dir); if (!dev) goto errout; Loading @@ -104,36 +102,27 @@ errout: if (fd >= 0) { adb_close(fd); } if (dev) { free(dev); } return rc; } /* Init mounts /system as read only, remount to enable writes. */ static int remount(const char* dir, int* dir_ro) { char *dev; if (dir_ro == 0) { return 0; } if (make_block_device_writable(dir)) { return -1; } char *dev = 0; int rc = -1; dev = find_mount(dir); if (!dev) return -1; if (!dev || make_block_device_writable(dev)) { goto errout; } *dir_ro = mount(dev, dir, "none", MS_REMOUNT, NULL); rc = mount(dev, dir, "none", MS_REMOUNT, NULL); *dir_ro = rc; errout: free(dev); return *dir_ro; return rc; } static void write_string(int fd, const char* str) Loading @@ -141,28 +130,6 @@ static void write_string(int fd, const char* str) writex(fd, str, strlen(str)); } int make_system_and_vendor_block_devices_writable(int fd) { char buffer[200]; if (make_block_device_writable("/system")) { snprintf(buffer, sizeof(buffer), "Failed to make system block device writable %s\n", strerror(errno)); write_string(fd, buffer); return -1; } if (hasVendorPartition() && make_block_device_writable("/vendor")) { snprintf(buffer, sizeof(buffer), "Failed to make vendor block device writable: %s\n", strerror(errno)); write_string(fd, buffer); return -1; } return 0; } void remount_service(int fd, void *cookie) { char buffer[200]; Loading adb/set_verity_enable_state_service.c +7 −5 Original line number Diff line number Diff line Loading @@ -87,9 +87,15 @@ static int set_verity_enabled_state(int fd, const char *block_device, const uint32_t new_magic = enable ? VERITY_METADATA_MAGIC_NUMBER : VERITY_METADATA_MAGIC_DISABLE; uint64_t device_length; int device; int device = -1; int retval = -1; if (make_block_device_writable(block_device)) { write_console(fd, "Could not make block device %s writable (%s).\n", block_device, strerror(errno)); goto errout; } device = adb_open(block_device, O_RDWR | O_CLOEXEC); if (device == -1) { write_console(fd, "Could not open block device %s (%s).\n", Loading Loading @@ -191,10 +197,6 @@ void set_verity_enabled_state_service(int fd, void* cookie) goto errout; } if (enable && make_system_and_vendor_block_devices_writable(fd)) { goto errout; } /* Loop through entries looking for ones that vold manages */ for (i = 0; i < fstab->num_entries; i++) { if(fs_mgr_is_verified(&fstab->recs[i])) { Loading Loading
adb/adb.h +1 −1 Original line number Diff line number Diff line Loading @@ -329,7 +329,7 @@ int handle_forward_request(const char* service, transport_type ttype, char* seri #if !ADB_HOST void framebuffer_service(int fd, void *cookie); // Allow enable-verity to write to system and vendor block devices int make_system_and_vendor_block_devices_writable(); int make_block_device_writable(const char* dev); void remount_service(int fd, void *cookie); void set_verity_enabled_state_service(int fd, void* cookie); #endif Loading
adb/remount_service.c +10 −43 Original line number Diff line number Diff line Loading @@ -79,14 +79,12 @@ static int hasVendorPartition() return false; } static int make_block_device_writable(const char* dir) int make_block_device_writable(const char* dev) { char *dev = 0; int fd = -1; int OFF = 0; int rc = -1; dev = find_mount(dir); if (!dev) goto errout; Loading @@ -104,36 +102,27 @@ errout: if (fd >= 0) { adb_close(fd); } if (dev) { free(dev); } return rc; } /* Init mounts /system as read only, remount to enable writes. */ static int remount(const char* dir, int* dir_ro) { char *dev; if (dir_ro == 0) { return 0; } if (make_block_device_writable(dir)) { return -1; } char *dev = 0; int rc = -1; dev = find_mount(dir); if (!dev) return -1; if (!dev || make_block_device_writable(dev)) { goto errout; } *dir_ro = mount(dev, dir, "none", MS_REMOUNT, NULL); rc = mount(dev, dir, "none", MS_REMOUNT, NULL); *dir_ro = rc; errout: free(dev); return *dir_ro; return rc; } static void write_string(int fd, const char* str) Loading @@ -141,28 +130,6 @@ static void write_string(int fd, const char* str) writex(fd, str, strlen(str)); } int make_system_and_vendor_block_devices_writable(int fd) { char buffer[200]; if (make_block_device_writable("/system")) { snprintf(buffer, sizeof(buffer), "Failed to make system block device writable %s\n", strerror(errno)); write_string(fd, buffer); return -1; } if (hasVendorPartition() && make_block_device_writable("/vendor")) { snprintf(buffer, sizeof(buffer), "Failed to make vendor block device writable: %s\n", strerror(errno)); write_string(fd, buffer); return -1; } return 0; } void remount_service(int fd, void *cookie) { char buffer[200]; Loading
adb/set_verity_enable_state_service.c +7 −5 Original line number Diff line number Diff line Loading @@ -87,9 +87,15 @@ static int set_verity_enabled_state(int fd, const char *block_device, const uint32_t new_magic = enable ? VERITY_METADATA_MAGIC_NUMBER : VERITY_METADATA_MAGIC_DISABLE; uint64_t device_length; int device; int device = -1; int retval = -1; if (make_block_device_writable(block_device)) { write_console(fd, "Could not make block device %s writable (%s).\n", block_device, strerror(errno)); goto errout; } device = adb_open(block_device, O_RDWR | O_CLOEXEC); if (device == -1) { write_console(fd, "Could not open block device %s (%s).\n", Loading Loading @@ -191,10 +197,6 @@ void set_verity_enabled_state_service(int fd, void* cookie) goto errout; } if (enable && make_system_and_vendor_block_devices_writable(fd)) { goto errout; } /* Loop through entries looking for ones that vold manages */ for (i = 0; i < fstab->num_entries; i++) { if(fs_mgr_is_verified(&fstab->recs[i])) { Loading