From aa669312a380611d280d126cb509fa282080707e Mon Sep 17 00:00:00 2001
From: Markus Mayer <mmayer@mmayer.net>
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 <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");
 }
 
@@ -80,7 +82,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);
@@ -143,6 +145,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;
