summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch71
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb2
2 files changed, 41 insertions, 32 deletions
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch b/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
index 85af81f0f9..5c90397194 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
@@ -1,19 +1,50 @@
1From aa669312a380611d280d126cb509fa282080707e Mon Sep 17 00:00:00 2001
2From: Markus Mayer <mmayer@mmayer.net>
3Date: Wed, 7 Sep 2016 12:58:47 +0300
4Subject: [PATCH] android-tools: add recipe from AOSP tag android-5.1.1_r37
5
1Description: add -o argument to preserve ownership 6Description: add -o argument to preserve ownership
2Author: Markus Mayer <mmayer@mmayer.net>
3 7
4See also https://android-review.googlesource.com/#/c/100312/ 8See also https://android-review.googlesource.com/#/c/100312/
5 9
6Upstream-Status: Inappropriate 10Upstream-Status: Inappropriate
11
7--- 12---
8 system/extras/ext4_utils/make_ext4fs.c | 6 ++++++ 13 ext4_utils/make_ext4fs.c | 6 ++++++
9 system/extras/ext4_utils/make_ext4fs_main.c | 10 ++++++++-- 14 ext4_utils/make_ext4fs_main.c | 10 ++++++++--
10 2 files changed, 14 insertions(+), 2 deletions(-) 15 2 files changed, 14 insertions(+), 2 deletions(-)
11 16
12--- a/system/extras/ext4_utils/make_ext4fs_main.c 17diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
13+++ b/system/extras/ext4_utils/make_ext4fs_main.c 18index 2f89ae8a..cc41d623 100644
14@@ -49,13 +49,15 @@ extern struct fs_info info; 19--- a/ext4_utils/make_ext4fs.c
20+++ b/ext4_utils/make_ext4fs.c
21@@ -68,6 +68,8 @@
22
23 #endif
24
25+int preserve_owner = 0;
26+
27 /* TODO: Not implemented:
28 Allocating blocks in the same block group as the file inode
29 Hash or binary tree directories
30@@ -186,6 +188,10 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path
31 } else {
32 dentries[i].mtime = fixed_time;
33 }
34+ if (preserve_owner) {
35+ dentries[i].uid = stat.st_uid;
36+ dentries[i].gid = stat.st_gid;
37+ }
38 uint64_t capabilities;
39 if (fs_config_func != NULL) {
40 #ifdef ANDROID
41diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
42index a6c5f616..7af0dddf 100644
43--- a/ext4_utils/make_ext4fs_main.c
44+++ b/ext4_utils/make_ext4fs_main.c
45@@ -48,13 +48,15 @@ struct selabel_handle;
46 extern struct fs_info info;
15 47
16 extern struct selabel_handle* selinux_android_file_context_handle(void);
17 48
18+extern int preserve_owner; 49+extern int preserve_owner;
19+ 50+
@@ -28,7 +59,7 @@ Upstream-Status: Inappropriate
28 fprintf(stderr, " <filename> [<directory>]\n"); 59 fprintf(stderr, " <filename> [<directory>]\n");
29 } 60 }
30 61
31@@ -81,7 +83,7 @@ int main(int argc, char **argv) 62@@ -80,7 +82,7 @@ int main(int argc, char **argv)
32 struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } }; 63 struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } };
33 #endif 64 #endif
34 65
@@ -37,7 +68,7 @@ Upstream-Status: Inappropriate
37 switch (opt) { 68 switch (opt) {
38 case 'l': 69 case 'l':
39 info.len = parse_num(optarg); 70 info.len = parse_num(optarg);
40@@ -144,6 +146,10 @@ int main(int argc, char **argv) 71@@ -143,6 +145,10 @@ int main(int argc, char **argv)
41 } 72 }
42 #endif 73 #endif
43 break; 74 break;
@@ -48,25 +79,3 @@ Upstream-Status: Inappropriate
48 case 'v': 79 case 'v':
49 verbose = 1; 80 verbose = 1;
50 break; 81 break;
51--- a/system/extras/ext4_utils/make_ext4fs.c
52+++ b/system/extras/ext4_utils/make_ext4fs.c
53@@ -67,6 +67,8 @@
54
55 #endif
56
57+int preserve_owner = 0;
58+
59 /* TODO: Not implemented:
60 Allocating blocks in the same block group as the file inode
61 Hash or binary tree directories
62@@ -185,6 +187,10 @@ static u32 build_directory_structure(con
63 } else {
64 dentries[i].mtime = fixed_time;
65 }
66+ if (preserve_owner) {
67+ dentries[i].uid = stat.st_uid;
68+ dentries[i].gid = stat.st_gid;
69+ }
70 uint64_t capabilities;
71 if (fs_config_func != NULL) {
72 #ifdef ANDROID
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
index d3ccd1d064..5d8f8a8435 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
+++ b/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
@@ -26,7 +26,7 @@ SRC_URI = " \
26 file://remove-selinux-android.patch \ 26 file://remove-selinux-android.patch \
27 file://use-capability.patch \ 27 file://use-capability.patch \
28 file://use-local-socket.patch \ 28 file://use-local-socket.patch \
29 file://preserve-ownership.patch \ 29 file://preserve-ownership.patch;patchdir=system/extras \
30 file://mkbootimg-Add-dt-parameter-to-specify-DT-image.patch \ 30 file://mkbootimg-Add-dt-parameter-to-specify-DT-image.patch \
31 file://remove-bionic-android.patch \ 31 file://remove-bionic-android.patch \
32 file://define-shell-command.patch \ 32 file://define-shell-command.patch \