From aa669312a380611d280d126cb509fa282080707e Mon Sep 17 00:00:00 2001 From: Markus Mayer Date: Wed, 7 Sep 2016 12:58:47 +0300 Subject: [PATCH] android-tools: add recipe from AOSP tag android-5.1.1_r37 Description: add -o argument to preserve ownership See also https://android-review.googlesource.com/#/c/100312/ Upstream-Status: Inappropriate --- ext4_utils/make_ext4fs.c | 6 ++++++ ext4_utils/make_ext4fs_main.c | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c index 2f89ae8a..cc41d623 100644 --- a/ext4_utils/make_ext4fs.c +++ b/ext4_utils/make_ext4fs.c @@ -68,6 +68,8 @@ #endif +int preserve_owner = 0; + /* TODO: Not implemented: Allocating blocks in the same block group as the file inode Hash or binary tree directories @@ -186,6 +188,10 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path } else { dentries[i].mtime = fixed_time; } + if (preserve_owner) { + dentries[i].uid = stat.st_uid; + dentries[i].gid = stat.st_gid; + } uint64_t capabilities; if (fs_config_func != NULL) { #ifdef ANDROID diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c index a6c5f616..7af0dddf 100644 --- a/ext4_utils/make_ext4fs_main.c +++ b/ext4_utils/make_ext4fs_main.c @@ -48,13 +48,15 @@ struct selabel_handle; extern struct fs_info info; +extern int preserve_owner; + static void usage(char *path) { fprintf(stderr, "%s [ -l ] [ -j ] [ -b ]\n", basename(path)); fprintf(stderr, " [ -g ] [ -i ] [ -I ]\n"); fprintf(stderr, " [ -L