summaryrefslogtreecommitdiff
path: root/libnativeloader/native_loader.cpp
diff options
context:
space:
mode:
author Jiakai Zhang <jiakaiz@google.com> 2024-08-02 14:20:16 +0000
committer Jiakai Zhang <jiakaiz@google.com> 2024-08-02 18:45:19 +0000
commit83fda9b80f4da6794ef612fc3fa5fe663c36a154 (patch)
tree80b93711b75bce67b7fc63b68e0a176a7fc8392a /libnativeloader/native_loader.cpp
parent04bba053caaf822c39a211910ef1f73e344f483e (diff)
Also bypass loading libwalkstack.so for b/349878424.
Bug: 349878424 Change-Id: I0a5f851dc7e54cd151f372d3e3eed0488ce64006
Diffstat (limited to 'libnativeloader/native_loader.cpp')
-rw-r--r--libnativeloader/native_loader.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/libnativeloader/native_loader.cpp b/libnativeloader/native_loader.cpp
index 231b3c5aea..3d24c3da14 100644
--- a/libnativeloader/native_loader.cpp
+++ b/libnativeloader/native_loader.cpp
@@ -272,9 +272,10 @@ jstring CreateClassLoaderNamespace(JNIEnv* env,
}
#if defined(ART_TARGET_ANDROID)
-static bool ShouldBypassLoadingLibSoBridge() {
+static bool ShouldBypassLoadingForB349878424() {
struct stat st;
- if (stat("/system/lib64/libsobridge.so", &st) != 0) {
+ if (stat("/system/lib64/libsobridge.so", &st) != 0 &&
+ stat("/system/lib64/libwalkstack.so", &st) != 0) {
return false;
}
std::string property = android::base::GetProperty("ro.product.build.fingerprint", "");
@@ -334,12 +335,13 @@ void* OpenNativeLibrary(JNIEnv* env,
}
// Handle issue b/349878424.
- static bool bypass_loading_libsobridge = ShouldBypassLoadingLibSoBridge();
+ static bool bypass_loading_for_b349878424 = ShouldBypassLoadingForB349878424();
- if (bypass_loading_libsobridge && strcmp("libsobridge.so", path) == 0) {
+ if (bypass_loading_for_b349878424 &&
+ (strcmp("libsobridge.so", path) == 0 || strcmp("libwalkstack.so", path) == 0)) {
// Load a different library to pretend the loading was successful. This
// allows the device to boot.
- ALOGD("Loading libbase.so instead of libsobridge.so due to b/349878424");
+ ALOGD("Loading libbase.so instead of %s due to b/349878424", path);
path = "libbase.so";
}