diff options
Diffstat (limited to 'libartbase/base/file_utils.cc')
-rw-r--r-- | libartbase/base/file_utils.cc | 11 |
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); |