diff options
-rw-r--r-- | init/init.cpp | 3 | ||||
-rw-r--r-- | init/property_service.cpp | 1 | ||||
-rw-r--r-- | libcutils/fs_config.cpp | 5 | ||||
-rw-r--r-- | rootdir/Android.mk | 6 | ||||
-rw-r--r-- | rootdir/etc/ld.config.txt | 14 |
5 files changed, 27 insertions, 2 deletions
diff --git a/init/init.cpp b/init/init.cpp index 6569871b8..73194bdd9 100644 --- a/init/init.cpp +++ b/init/init.cpp | |||
@@ -119,6 +119,9 @@ static void LoadBootScripts(ActionManager& action_manager, ServiceList& service_ | |||
119 | if (!parser.ParseConfig("/product/etc/init")) { | 119 | if (!parser.ParseConfig("/product/etc/init")) { |
120 | late_import_paths.emplace_back("/product/etc/init"); | 120 | late_import_paths.emplace_back("/product/etc/init"); |
121 | } | 121 | } |
122 | if (!parser.ParseConfig("/product-services/etc/init")) { | ||
123 | late_import_paths.emplace_back("/product-services/etc/init"); | ||
124 | } | ||
122 | if (!parser.ParseConfig("/odm/etc/init")) { | 125 | if (!parser.ParseConfig("/odm/etc/init")) { |
123 | late_import_paths.emplace_back("/odm/etc/init"); | 126 | late_import_paths.emplace_back("/odm/etc/init"); |
124 | } | 127 | } |
diff --git a/init/property_service.cpp b/init/property_service.cpp index d1c427dba..c0d811fc6 100644 --- a/init/property_service.cpp +++ b/init/property_service.cpp | |||
@@ -691,6 +691,7 @@ void property_load_boot_defaults() { | |||
691 | } | 691 | } |
692 | } | 692 | } |
693 | load_properties_from_file("/product/build.prop", NULL); | 693 | load_properties_from_file("/product/build.prop", NULL); |
694 | load_properties_from_file("/product-services/build.prop", NULL); | ||
694 | load_properties_from_file("/odm/default.prop", NULL); | 695 | load_properties_from_file("/odm/default.prop", NULL); |
695 | load_properties_from_file("/vendor/default.prop", NULL); | 696 | load_properties_from_file("/vendor/default.prop", NULL); |
696 | 697 | ||
diff --git a/libcutils/fs_config.cpp b/libcutils/fs_config.cpp index 267b7b356..48def6f95 100644 --- a/libcutils/fs_config.cpp +++ b/libcutils/fs_config.cpp | |||
@@ -130,7 +130,7 @@ static const char* conf[][2] = { | |||
130 | // Vendor entries should be done via a vendor or device specific config.fs. | 130 | // Vendor entries should be done via a vendor or device specific config.fs. |
131 | // See https://source.android.com/devices/tech/config/filesystem#using-file-system-capabilities | 131 | // See https://source.android.com/devices/tech/config/filesystem#using-file-system-capabilities |
132 | static const struct fs_path_config android_files[] = { | 132 | static const struct fs_path_config android_files[] = { |
133 | // clang-format off | 133 | // clang-format off |
134 | { 00644, AID_SYSTEM, AID_SYSTEM, 0, "data/app/*" }, | 134 | { 00644, AID_SYSTEM, AID_SYSTEM, 0, "data/app/*" }, |
135 | { 00644, AID_SYSTEM, AID_SYSTEM, 0, "data/app-ephemeral/*" }, | 135 | { 00644, AID_SYSTEM, AID_SYSTEM, 0, "data/app-ephemeral/*" }, |
136 | { 00644, AID_SYSTEM, AID_SYSTEM, 0, "data/app-private/*" }, | 136 | { 00644, AID_SYSTEM, AID_SYSTEM, 0, "data/app-private/*" }, |
@@ -149,6 +149,7 @@ static const struct fs_path_config android_files[] = { | |||
149 | { 00444, AID_ROOT, AID_ROOT, 0, oem_conf_dir + 1 }, | 149 | { 00444, AID_ROOT, AID_ROOT, 0, oem_conf_dir + 1 }, |
150 | { 00444, AID_ROOT, AID_ROOT, 0, oem_conf_file + 1 }, | 150 | { 00444, AID_ROOT, AID_ROOT, 0, oem_conf_file + 1 }, |
151 | { 00600, AID_ROOT, AID_ROOT, 0, "product/build.prop" }, | 151 | { 00600, AID_ROOT, AID_ROOT, 0, "product/build.prop" }, |
152 | { 00600, AID_ROOT, AID_ROOT, 0, "product-services/build.prop" }, | ||
152 | { 00750, AID_ROOT, AID_SHELL, 0, "sbin/fs_mgr" }, | 153 | { 00750, AID_ROOT, AID_SHELL, 0, "sbin/fs_mgr" }, |
153 | { 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump32" }, | 154 | { 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump32" }, |
154 | { 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump64" }, | 155 | { 00755, AID_ROOT, AID_SHELL, 0, "system/bin/crash_dump64" }, |
@@ -200,7 +201,7 @@ static const struct fs_path_config android_files[] = { | |||
200 | { 00755, AID_ROOT, AID_SHELL, 0, "vendor/bin/*" }, | 201 | { 00755, AID_ROOT, AID_SHELL, 0, "vendor/bin/*" }, |
201 | { 00755, AID_ROOT, AID_SHELL, 0, "vendor/xbin/*" }, | 202 | { 00755, AID_ROOT, AID_SHELL, 0, "vendor/xbin/*" }, |
202 | { 00644, AID_ROOT, AID_ROOT, 0, 0 }, | 203 | { 00644, AID_ROOT, AID_ROOT, 0, 0 }, |
203 | // clang-format on | 204 | // clang-format on |
204 | }; | 205 | }; |
205 | #ifndef __ANDROID_VNDK__ | 206 | #ifndef __ANDROID_VNDK__ |
206 | auto __for_testing_only__android_files = android_files; | 207 | auto __for_testing_only__android_files = android_files; |
diff --git a/rootdir/Android.mk b/rootdir/Android.mk index 478b8d094..87eb733d5 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk | |||
@@ -93,6 +93,11 @@ ifdef BOARD_USES_PRODUCTIMAGE | |||
93 | else | 93 | else |
94 | LOCAL_POST_INSTALL_CMD += ; ln -sf /system/product $(TARGET_ROOT_OUT)/product | 94 | LOCAL_POST_INSTALL_CMD += ; ln -sf /system/product $(TARGET_ROOT_OUT)/product |
95 | endif | 95 | endif |
96 | ifdef BOARD_USES_PRODUCT_SERVICES_IMAGE | ||
97 | LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/product-services | ||
98 | else | ||
99 | LOCAL_POST_INSTALL_CMD += ; ln -sf /system/product-services $(TARGET_ROOT_OUT)/product-services | ||
100 | endif | ||
96 | 101 | ||
97 | # For /odm partition. | 102 | # For /odm partition. |
98 | LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/odm | 103 | LOCAL_POST_INSTALL_CMD += ; mkdir -p $(TARGET_ROOT_OUT)/odm |
@@ -202,6 +207,7 @@ $(2): $(1) | |||
202 | $$(hide) sed -i -e 's?%SANITIZER_RUNTIME_LIBRARIES%?$$(PRIVATE_SANITIZER_RUNTIME_LIBRARIES)?g' $$@ | 207 | $$(hide) sed -i -e 's?%SANITIZER_RUNTIME_LIBRARIES%?$$(PRIVATE_SANITIZER_RUNTIME_LIBRARIES)?g' $$@ |
203 | $$(hide) sed -i -e 's?%VNDK_VER%?$$(PRIVATE_VNDK_VERSION)?g' $$@ | 208 | $$(hide) sed -i -e 's?%VNDK_VER%?$$(PRIVATE_VNDK_VERSION)?g' $$@ |
204 | $$(hide) sed -i -e 's?%PRODUCT%?$$(TARGET_COPY_OUT_PRODUCT)?g' $$@ | 209 | $$(hide) sed -i -e 's?%PRODUCT%?$$(TARGET_COPY_OUT_PRODUCT)?g' $$@ |
210 | $$(hide) sed -i -e 's?%PRODUCTSERVICES%?$$(TARGET_COPY_OUT_PRODUCTSERVICES)?g' $$@ | ||
205 | 211 | ||
206 | llndk_libraries_list := | 212 | llndk_libraries_list := |
207 | vndksp_libraries_list := | 213 | vndksp_libraries_list := |
diff --git a/rootdir/etc/ld.config.txt b/rootdir/etc/ld.config.txt index 42dc7abe7..7d22a3acc 100644 --- a/rootdir/etc/ld.config.txt +++ b/rootdir/etc/ld.config.txt | |||
@@ -8,6 +8,7 @@ | |||
8 | dir.system = /system/bin/ | 8 | dir.system = /system/bin/ |
9 | dir.system = /system/xbin/ | 9 | dir.system = /system/xbin/ |
10 | dir.system = /%PRODUCT%/bin/ | 10 | dir.system = /%PRODUCT%/bin/ |
11 | dir.system = /%PRODUCTSERVICES%/bin/ | ||
11 | 12 | ||
12 | dir.vendor = /odm/bin/ | 13 | dir.vendor = /odm/bin/ |
13 | dir.vendor = /vendor/bin/ | 14 | dir.vendor = /vendor/bin/ |
@@ -40,6 +41,7 @@ namespace.default.isolated = true | |||
40 | 41 | ||
41 | namespace.default.search.paths = /system/${LIB} | 42 | namespace.default.search.paths = /system/${LIB} |
42 | namespace.default.search.paths += /%PRODUCT%/${LIB} | 43 | namespace.default.search.paths += /%PRODUCT%/${LIB} |
44 | namespace.default.search.paths += /%PRODUCTSERVICES%/${LIB} | ||
43 | 45 | ||
44 | # We can't have entire /system/${LIB} as permitted paths because doing so | 46 | # We can't have entire /system/${LIB} as permitted paths because doing so |
45 | # makes it possible to load libs in /system/${LIB}/vndk* directories by | 47 | # makes it possible to load libs in /system/${LIB}/vndk* directories by |
@@ -52,6 +54,7 @@ namespace.default.permitted.paths = /system/${LIB}/drm | |||
52 | namespace.default.permitted.paths += /system/${LIB}/extractors | 54 | namespace.default.permitted.paths += /system/${LIB}/extractors |
53 | namespace.default.permitted.paths += /system/${LIB}/hw | 55 | namespace.default.permitted.paths += /system/${LIB}/hw |
54 | namespace.default.permitted.paths += /%PRODUCT%/${LIB} | 56 | namespace.default.permitted.paths += /%PRODUCT%/${LIB} |
57 | namespace.default.permitted.paths += /%PRODUCTSERVICES%/${LIB} | ||
55 | # These are where odex files are located. libart has to be able to dlopen the files | 58 | # These are where odex files are located. libart has to be able to dlopen the files |
56 | namespace.default.permitted.paths += /system/framework | 59 | namespace.default.permitted.paths += /system/framework |
57 | namespace.default.permitted.paths += /system/app | 60 | namespace.default.permitted.paths += /system/app |
@@ -66,6 +69,9 @@ namespace.default.permitted.paths += /oem/app | |||
66 | namespace.default.permitted.paths += /%PRODUCT%/framework | 69 | namespace.default.permitted.paths += /%PRODUCT%/framework |
67 | namespace.default.permitted.paths += /%PRODUCT%/app | 70 | namespace.default.permitted.paths += /%PRODUCT%/app |
68 | namespace.default.permitted.paths += /%PRODUCT%/priv-app | 71 | namespace.default.permitted.paths += /%PRODUCT%/priv-app |
72 | namespace.default.permitted.paths += /%PRODUCTSERVICES%/framework | ||
73 | namespace.default.permitted.paths += /%PRODUCTSERVICES%/app | ||
74 | namespace.default.permitted.paths += /%PRODUCTSERVICES%/priv-app | ||
69 | namespace.default.permitted.paths += /data | 75 | namespace.default.permitted.paths += /data |
70 | namespace.default.permitted.paths += /mnt/expand | 76 | namespace.default.permitted.paths += /mnt/expand |
71 | 77 | ||
@@ -73,6 +79,8 @@ namespace.default.asan.search.paths = /data/asan/system/${LIB} | |||
73 | namespace.default.asan.search.paths += /system/${LIB} | 79 | namespace.default.asan.search.paths += /system/${LIB} |
74 | namespace.default.asan.search.paths += /data/asan/product/${LIB} | 80 | namespace.default.asan.search.paths += /data/asan/product/${LIB} |
75 | namespace.default.asan.search.paths += /product/${LIB} | 81 | namespace.default.asan.search.paths += /product/${LIB} |
82 | namespace.default.asan.search.paths += /data/asan/product-services/${LIB} | ||
83 | namespace.default.asan.search.paths += /product-services/${LIB} | ||
76 | 84 | ||
77 | namespace.default.asan.permitted.paths = /data | 85 | namespace.default.asan.permitted.paths = /data |
78 | namespace.default.asan.permitted.paths += /system/${LIB}/drm | 86 | namespace.default.asan.permitted.paths += /system/${LIB}/drm |
@@ -92,6 +100,10 @@ namespace.default.asan.permitted.paths += /%PRODUCT%/${LIB} | |||
92 | namespace.default.asan.permitted.paths += /%PRODUCT%/framework | 100 | namespace.default.asan.permitted.paths += /%PRODUCT%/framework |
93 | namespace.default.asan.permitted.paths += /%PRODUCT%/app | 101 | namespace.default.asan.permitted.paths += /%PRODUCT%/app |
94 | namespace.default.asan.permitted.paths += /%PRODUCT%/priv-app | 102 | namespace.default.asan.permitted.paths += /%PRODUCT%/priv-app |
103 | namespace.default.asan.permitted.paths += /%PRODUCTSERVICES%/${LIB} | ||
104 | namespace.default.asan.permitted.paths += /%PRODUCTSERVICES%/framework | ||
105 | namespace.default.asan.permitted.paths += /%PRODUCTSERVICES%/app | ||
106 | namespace.default.asan.permitted.paths += /%PRODUCTSERVICES%/priv-app | ||
95 | namespace.default.asan.permitted.paths += /mnt/expand | 107 | namespace.default.asan.permitted.paths += /mnt/expand |
96 | 108 | ||
97 | ############################################################################### | 109 | ############################################################################### |
@@ -328,6 +340,7 @@ namespace.system.isolated = false | |||
328 | 340 | ||
329 | namespace.system.search.paths = /system/${LIB} | 341 | namespace.system.search.paths = /system/${LIB} |
330 | namespace.system.search.paths += /%PRODUCT%/${LIB} | 342 | namespace.system.search.paths += /%PRODUCT%/${LIB} |
343 | namespace.system.search.paths += /%PRODUCTSERVICES%/${LIB} | ||
331 | 344 | ||
332 | namespace.system.asan.search.paths = /data/asan/system/${LIB} | 345 | namespace.system.asan.search.paths = /data/asan/system/${LIB} |
333 | namespace.system.asan.search.paths += /system/${LIB} | 346 | namespace.system.asan.search.paths += /system/${LIB} |
@@ -346,3 +359,4 @@ namespace.system.asan.search.paths += /product/${LIB} | |||
346 | namespace.default.isolated = false | 359 | namespace.default.isolated = false |
347 | namespace.default.search.paths = /system/${LIB} | 360 | namespace.default.search.paths = /system/${LIB} |
348 | namespace.default.search.paths += /%PRODUCT%/${LIB} | 361 | namespace.default.search.paths += /%PRODUCT%/${LIB} |
362 | namespace.default.search.paths += /%PRODUCTSERVICES%/${LIB} | ||