blob: 127d880995f1585a7b8aac50e978cc410c7a9141 [file] [log] [blame]
Jackeagled3ba2282018-11-17 20:49:22 -07001From fe2320fb75d4b04720641632c8009d0bcb4ee3c6 Mon Sep 17 00:00:00 2001
Jon West013ef582018-08-21 20:45:26 -04002From: Pierre-Hugues Husson <phh@phh.me>
3Date: Tue, 1 May 2018 17:47:36 +0200
Jackeagle0cc335a2018-10-19 00:06:49 -04004Subject: [PATCH 05/26] Also scan /system/overlay
Jon West013ef582018-08-21 20:45:26 -04005
6Change-Id: Ib0223560606b80cdaaa986b159b34b4db0154589
7---
8 core/jni/android_util_AssetManager.cpp | 6 +++++-
9 core/jni/fd_utils.cpp | 3 ++-
10 2 files changed, 7 insertions(+), 2 deletions(-)
11
12diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
Jackeagled3ba2282018-11-17 20:49:22 -070013index fa9f44557d3..1d3bf73eebb 100644
Jon West013ef582018-08-21 20:45:26 -040014--- a/core/jni/android_util_AssetManager.cpp
15+++ b/core/jni/android_util_AssetManager.cpp
16@@ -149,7 +149,7 @@ static void NativeVerifySystemIdmaps(JNIEnv* /*env*/, jclass /*clazz*/) {
17 }
18
19 // Generic idmap parameters
20- const char* argv[8];
21+ const char* argv[9];
22 int argc = 0;
23 struct stat st;
24
25@@ -179,6 +179,10 @@ static void NativeVerifySystemIdmaps(JNIEnv* /*env*/, jclass /*clazz*/) {
26 argv[argc++] = AssetManager::PRODUCT_OVERLAY_DIR;
27 }
28
29+ if(stat("/system/overlay", &st) == 0) {
30+ argv[argc++] = "/system/overlay";
31+ }
32+
33 // Finally, invoke idmap (if any overlay directory exists)
34 if (argc > 5) {
35 execv(AssetManager::IDMAP_BIN, (char* const*)argv);
36diff --git a/core/jni/fd_utils.cpp b/core/jni/fd_utils.cpp
Jackeagled3ba2282018-11-17 20:49:22 -070037index c5904e0e9e5..6548215772a 100644
Jon West013ef582018-08-21 20:45:26 -040038--- a/core/jni/fd_utils.cpp
39+++ b/core/jni/fd_utils.cpp
40@@ -93,7 +93,8 @@ bool FileDescriptorWhitelist::IsAllowed(const std::string& path) const {
41 || android::base::StartsWith(path, kOverlaySubdir)
42 || android::base::StartsWith(path, kVendorOverlayDir)
43 || android::base::StartsWith(path, kSystemProductOverlayDir)
44- || android::base::StartsWith(path, kProductOverlayDir))
45+ || android::base::StartsWith(path, kProductOverlayDir)
46+ || android::base::StartsWith(path, "/system/overlay"))
47 && android::base::EndsWith(path, kApkSuffix)
48 && path.find("/../") == std::string::npos) {
49 return true;
50--
Jackeagled3ba2282018-11-17 20:49:22 -0700512.17.1
Jon West013ef582018-08-21 20:45:26 -040052