From b9254539811ce912bfd16dd1d185eba7a10cceff Mon Sep 17 00:00:00 2001
From: Markus Mayer <mmayer@mmayer.net>
Date: Wed, 7 Sep 2016 12:58:47 +0300
Subject: [PATCH] ext4_utils: 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 732afbed7..2cbf04399 100644
--- a/ext4_utils/make_ext4fs.c
+++ b/ext4_utils/make_ext4fs.c
@@ -67,6 +67,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
@@ -185,6 +187,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 f8e7b9da9..e82d43277 100644
--- a/ext4_utils/make_ext4fs_main.c
+++ b/ext4_utils/make_ext4fs_main.c
@@ -47,13 +47,15 @@ struct selabel_handle;
 extern struct fs_info info;
 
 
+extern int preserve_owner;
+
 static void usage(char *path)
 {
 	fprintf(stderr, "%s [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]\n", basename(path));
 	fprintf(stderr, "    [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]\n");
 	fprintf(stderr, "    [ -L <label> ] [ -f ] [ -a <android mountpoint> ]\n");
 	fprintf(stderr, "    [ -S file_contexts ] [ -C fs_config ] [ -T timestamp ]\n");
-	fprintf(stderr, "    [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -v ] [ -B <block_list_file> ]\n");
+	fprintf(stderr, "    [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -o ] [ -v ] [ -B <block_list_file> ]\n");
 	fprintf(stderr, "    <filename> [<directory>]\n");
 }
 
@@ -79,7 +81,7 @@ int main(int argc, char **argv)
 	struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } };
 #endif
 
-	while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctv")) != -1) {
+	while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctov")) != -1) {
 		switch (opt) {
 		case 'l':
 			info.len = parse_num(optarg);
@@ -142,6 +144,10 @@ int main(int argc, char **argv)
 			}
 #endif
 			break;
+		case 'o':
+			preserve_owner = 1;
+			printf("Warning: Enabling 'preserve ownership', this is an unofficial feature!\n");
+			break;
 		case 'v':
 			verbose = 1;
 			break;
