summaryrefslogtreecommitdiff
path: root/libartbase/base/file_utils.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libartbase/base/file_utils.cc')
-rw-r--r--libartbase/base/file_utils.cc11
1 files changed, 9 insertions, 2 deletions
diff --git a/libartbase/base/file_utils.cc b/libartbase/base/file_utils.cc
index 2436e4528a..9e49d05c7e 100644
--- a/libartbase/base/file_utils.cc
+++ b/libartbase/base/file_utils.cc
@@ -65,6 +65,9 @@ namespace art {
using android::base::StringPrintf;
static constexpr const char* kClassesDex = "classes.dex";
+static constexpr const char* kApexDefaultPath = "/apex/";
+static constexpr const char* kRuntimeApexEnvVar = "ANDROID_RUNTIME_ROOT";
+static constexpr const char* kRuntimeApexDefaultPath = "/apex/com.android.runtime";
bool ReadFileToString(const std::string& file_name, std::string* result) {
File file(file_name, O_RDONLY, false);
@@ -284,8 +287,8 @@ std::string ReplaceFileExtension(const std::string& filename, const std::string&
bool LocationIsOnRuntimeModule(const char* full_path) {
std::string error_msg;
- const char* runtime_path = GetAndroidDirSafe("ANDROID_RUNTIME_ROOT",
- "/apex/com.android.runtime",
+ const char* runtime_path = GetAndroidDirSafe(kRuntimeApexEnvVar,
+ kRuntimeApexDefaultPath,
&error_msg);
if (runtime_path == nullptr) {
return false;
@@ -293,6 +296,10 @@ bool LocationIsOnRuntimeModule(const char* full_path) {
return android::base::StartsWith(full_path, runtime_path);
}
+bool LocationIsOnApex(const char* full_path) {
+ return android::base::StartsWith(full_path, kApexDefaultPath);
+}
+
bool LocationIsOnSystem(const char* path) {
#ifdef _WIN32
UNUSED(path);