Loading adb/file_sync_service.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ static int mkdirs(char *name) if(x == 0) return 0; *x = 0; if (should_use_fs_config(name)) { fs_config(name, 1, &uid, &gid, &mode, &cap); fs_config(name, 1, NULL, &uid, &gid, &mode, &cap); } ret = adb_mkdir(name, mode); if((ret < 0) && (errno != EEXIST)) { Loading Loading @@ -366,7 +366,7 @@ static int do_send(int s, char *path, char *buffer) tmp++; } if (should_use_fs_config(path)) { fs_config(tmp, 0, &uid, &gid, &mode, &cap); fs_config(tmp, 0, NULL, &uid, &gid, &mode, &cap); } return handle_send_file(s, path, uid, gid, mode, buffer, do_unlink); } Loading cpio/mkbootfs.c +9 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ struct fs_config_entry { }; static struct fs_config_entry* canned_config = NULL; static char *target_out_path = NULL; /* Each line in the canned file should be a path plus three ints (uid, * gid, mode). */ Loading Loading @@ -79,7 +80,8 @@ static void fix_stat(const char *path, struct stat *s) } else { // Use the compiled-in fs_config() function. unsigned st_mode = s->st_mode; fs_config(path, S_ISDIR(s->st_mode), &s->st_uid, &s->st_gid, &st_mode, &capabilities); fs_config(path, S_ISDIR(s->st_mode), target_out_path, &s->st_uid, &s->st_gid, &st_mode, &capabilities); s->st_mode = (typeof(s->st_mode)) st_mode; } } Loading Loading @@ -328,6 +330,12 @@ int main(int argc, char *argv[]) argc--; argv++; if (argc > 1 && strcmp(argv[0], "-d") == 0) { target_out_path = argv[1]; argc -= 2; argv += 2; } if (argc > 1 && strcmp(argv[0], "-f") == 0) { read_canned_config(argv[1]); argc -= 2; Loading fs_mgr/fs_mgr_format.c +1 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ static int format_ext4(char *fs_blkdev, char *fs_mnt_point) info.len = ((off64_t)nr_sec * 512); /* Use make_ext4fs_internal to avoid wiping an already-wiped partition. */ rc = make_ext4fs_internal(fd, NULL, fs_mnt_point, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL); rc = make_ext4fs_internal(fd, NULL, NULL, fs_mnt_point, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL); if (rc) { ERROR("make_ext4fs returned %d.\n", rc); } Loading fs_mgr/fs_mgr_verity.c +24 −1 Original line number Diff line number Diff line Loading @@ -767,8 +767,24 @@ static int get_verity_state_offset(struct fstab_rec *fstab, off64_t *offset) static int load_verity_state(struct fstab_rec *fstab, int *mode) { off64_t offset = 0; char propbuf[PROPERTY_VALUE_MAX]; int match = 0; off64_t offset = 0; /* use the kernel parameter if set */ property_get("ro.boot.veritymode", propbuf, ""); if (*propbuf != '\0') { if (!strcmp(propbuf, "enforcing")) { *mode = VERITY_MODE_DEFAULT; return 0; } else if (!strcmp(propbuf, "logging")) { *mode = VERITY_MODE_LOGGING; return 0; } else { INFO("Unknown value %s for veritymode; ignoring", propbuf); } } if (get_verity_state_offset(fstab, &offset) < 0) { /* fall back to stateless behavior */ Loading Loading @@ -855,6 +871,13 @@ int fs_mgr_update_verity_state(fs_mgr_verity_state_callback callback) struct dm_ioctl *io = (struct dm_ioctl *) buffer; struct fstab *fstab = NULL; /* check if we need to store the state */ property_get("ro.boot.veritymode", propbuf, ""); if (*propbuf != '\0') { return 0; /* state is kept by the bootloader */ } fd = TEMP_FAILURE_RETRY(open("/dev/device-mapper", O_RDWR | O_CLOEXEC)); if (fd == -1) { Loading include/private/android_filesystem_config.h +2 −2 Original line number Diff line number Diff line Loading @@ -206,13 +206,13 @@ __BEGIN_DECLS * Used in: * build/tools/fs_config/fs_config.c * build/tools/fs_get_stats/fs_get_stats.c * external/genext2fs/genext2fs.c * system/extras/ext4_utils/make_ext4fs_main.c * external/squashfs-tools/squashfs-tools/android.c * system/core/cpio/mkbootfs.c * system/core/adb/file_sync_service.cpp * system/extras/ext4_utils/canned_fs_config.c */ void fs_config(const char *path, int dir, void fs_config(const char *path, int dir, const char *target_out_path, unsigned *uid, unsigned *gid, unsigned *mode, uint64_t *capabilities); ssize_t fs_config_generate(char *buffer, size_t length, const struct fs_path_config *pc); Loading Loading
adb/file_sync_service.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ static int mkdirs(char *name) if(x == 0) return 0; *x = 0; if (should_use_fs_config(name)) { fs_config(name, 1, &uid, &gid, &mode, &cap); fs_config(name, 1, NULL, &uid, &gid, &mode, &cap); } ret = adb_mkdir(name, mode); if((ret < 0) && (errno != EEXIST)) { Loading Loading @@ -366,7 +366,7 @@ static int do_send(int s, char *path, char *buffer) tmp++; } if (should_use_fs_config(path)) { fs_config(tmp, 0, &uid, &gid, &mode, &cap); fs_config(tmp, 0, NULL, &uid, &gid, &mode, &cap); } return handle_send_file(s, path, uid, gid, mode, buffer, do_unlink); } Loading
cpio/mkbootfs.c +9 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ struct fs_config_entry { }; static struct fs_config_entry* canned_config = NULL; static char *target_out_path = NULL; /* Each line in the canned file should be a path plus three ints (uid, * gid, mode). */ Loading Loading @@ -79,7 +80,8 @@ static void fix_stat(const char *path, struct stat *s) } else { // Use the compiled-in fs_config() function. unsigned st_mode = s->st_mode; fs_config(path, S_ISDIR(s->st_mode), &s->st_uid, &s->st_gid, &st_mode, &capabilities); fs_config(path, S_ISDIR(s->st_mode), target_out_path, &s->st_uid, &s->st_gid, &st_mode, &capabilities); s->st_mode = (typeof(s->st_mode)) st_mode; } } Loading Loading @@ -328,6 +330,12 @@ int main(int argc, char *argv[]) argc--; argv++; if (argc > 1 && strcmp(argv[0], "-d") == 0) { target_out_path = argv[1]; argc -= 2; argv += 2; } if (argc > 1 && strcmp(argv[0], "-f") == 0) { read_canned_config(argv[1]); argc -= 2; Loading
fs_mgr/fs_mgr_format.c +1 −1 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ static int format_ext4(char *fs_blkdev, char *fs_mnt_point) info.len = ((off64_t)nr_sec * 512); /* Use make_ext4fs_internal to avoid wiping an already-wiped partition. */ rc = make_ext4fs_internal(fd, NULL, fs_mnt_point, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL); rc = make_ext4fs_internal(fd, NULL, NULL, fs_mnt_point, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL); if (rc) { ERROR("make_ext4fs returned %d.\n", rc); } Loading
fs_mgr/fs_mgr_verity.c +24 −1 Original line number Diff line number Diff line Loading @@ -767,8 +767,24 @@ static int get_verity_state_offset(struct fstab_rec *fstab, off64_t *offset) static int load_verity_state(struct fstab_rec *fstab, int *mode) { off64_t offset = 0; char propbuf[PROPERTY_VALUE_MAX]; int match = 0; off64_t offset = 0; /* use the kernel parameter if set */ property_get("ro.boot.veritymode", propbuf, ""); if (*propbuf != '\0') { if (!strcmp(propbuf, "enforcing")) { *mode = VERITY_MODE_DEFAULT; return 0; } else if (!strcmp(propbuf, "logging")) { *mode = VERITY_MODE_LOGGING; return 0; } else { INFO("Unknown value %s for veritymode; ignoring", propbuf); } } if (get_verity_state_offset(fstab, &offset) < 0) { /* fall back to stateless behavior */ Loading Loading @@ -855,6 +871,13 @@ int fs_mgr_update_verity_state(fs_mgr_verity_state_callback callback) struct dm_ioctl *io = (struct dm_ioctl *) buffer; struct fstab *fstab = NULL; /* check if we need to store the state */ property_get("ro.boot.veritymode", propbuf, ""); if (*propbuf != '\0') { return 0; /* state is kept by the bootloader */ } fd = TEMP_FAILURE_RETRY(open("/dev/device-mapper", O_RDWR | O_CLOEXEC)); if (fd == -1) { Loading
include/private/android_filesystem_config.h +2 −2 Original line number Diff line number Diff line Loading @@ -206,13 +206,13 @@ __BEGIN_DECLS * Used in: * build/tools/fs_config/fs_config.c * build/tools/fs_get_stats/fs_get_stats.c * external/genext2fs/genext2fs.c * system/extras/ext4_utils/make_ext4fs_main.c * external/squashfs-tools/squashfs-tools/android.c * system/core/cpio/mkbootfs.c * system/core/adb/file_sync_service.cpp * system/extras/ext4_utils/canned_fs_config.c */ void fs_config(const char *path, int dir, void fs_config(const char *path, int dir, const char *target_out_path, unsigned *uid, unsigned *gid, unsigned *mode, uint64_t *capabilities); ssize_t fs_config_generate(char *buffer, size_t length, const struct fs_path_config *pc); Loading