From 25195daaca079e048e47b38b83fc41527a89ccb0 Mon Sep 17 00:00:00 2001 From: Inseob Kim Date: Thu, 31 May 2018 13:03:58 +0900 Subject: [PATCH] Support /product/bin Bug: 80422611 Test: m -j succeeded and permissions of files under /product/bin are set correctly Change-Id: I83377d809c47c92da6b226d2853ea6a7462fb127 --- libcutils/fs_config.cpp | 7 +++++-- rootdir/etc/ld.config.txt | 1 + rootdir/etc/ld.config.vndk_lite.txt | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libcutils/fs_config.cpp b/libcutils/fs_config.cpp index 0f2b46075..6169324cb 100644 --- a/libcutils/fs_config.cpp +++ b/libcutils/fs_config.cpp @@ -80,6 +80,7 @@ static const struct fs_path_config android_dirs[] = { { 00775, AID_ROOT, AID_ROOT, 0, "data/preloads" }, { 00771, AID_SYSTEM, AID_SYSTEM, 0, "data" }, { 00755, AID_ROOT, AID_SYSTEM, 0, "mnt" }, + { 00755, AID_ROOT, AID_SHELL, 0, "product/bin" }, { 00750, AID_ROOT, AID_SHELL, 0, "sbin" }, { 00777, AID_ROOT, AID_ROOT, 0, "sdcard" }, { 00751, AID_ROOT, AID_SDCARD_R, 0, "storage" }, @@ -195,6 +196,7 @@ static const struct fs_path_config android_files[] = { { 00755, AID_ROOT, AID_ROOT, 0, "bin/*" }, { 00640, AID_ROOT, AID_SHELL, 0, "fstab.*" }, { 00750, AID_ROOT, AID_SHELL, 0, "init*" }, + { 00755, AID_ROOT, AID_SHELL, 0, "product/bin/*" }, { 00750, AID_ROOT, AID_SHELL, 0, "sbin/*" }, { 00755, AID_ROOT, AID_SHELL, 0, "system/bin/*" }, { 00755, AID_ROOT, AID_ROOT, 0, "system/lib/valgrind/*" }, @@ -237,9 +239,10 @@ static int fs_config_open(int dir, int which, const char* target_out_path) { return fd; } -// if path is "vendor/", "oem/" or "odm/" +// if path is "odm/", "oem/", "product/" or +// "vendor/" static bool is_partition(const char* path, size_t len) { - static const char* partitions[] = {"vendor/", "oem/", "odm/"}; + static const char* partitions[] = {"odm/", "oem/", "product/", "vendor/"}; for (size_t i = 0; i < (sizeof(partitions) / sizeof(partitions[0])); ++i) { size_t plen = strlen(partitions[i]); if (len <= plen) continue; diff --git a/rootdir/etc/ld.config.txt b/rootdir/etc/ld.config.txt index 51e3f9efc..a0b1996ad 100644 --- a/rootdir/etc/ld.config.txt +++ b/rootdir/etc/ld.config.txt @@ -7,6 +7,7 @@ # absolute path of an executable is selected. dir.system = /system/bin/ dir.system = /system/xbin/ +dir.system = /product/bin/ dir.vendor = /odm/bin/ dir.vendor = /vendor/bin/ diff --git a/rootdir/etc/ld.config.vndk_lite.txt b/rootdir/etc/ld.config.vndk_lite.txt index ab0375539..db65c14fc 100644 --- a/rootdir/etc/ld.config.vndk_lite.txt +++ b/rootdir/etc/ld.config.vndk_lite.txt @@ -7,6 +7,7 @@ # absolute path of an executable is selected. dir.system = /system/bin/ dir.system = /system/xbin/ +dir.system = /product/bin/ dir.vendor = /odm/bin/ dir.vendor = /vendor/bin/