From: uazo Date: Thu, 3 Feb 2022 19:48:49 +0000 Subject: Samsung Note 9 SDK27 crazylinker workaround Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../base/library_loader/LibraryLoader.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java --- a/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java +++ b/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java @@ -38,6 +38,7 @@ import org.chromium.build.annotations.MainDex; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.util.Locale; import javax.annotation.concurrent.GuardedBy; @@ -285,7 +286,21 @@ public class LibraryLoader { */ public void initInAppZygote() { assert !mInitDone; - if (useChromiumLinker() && !mainProcessIntendsToProvideRelroFd()) { + + String manufacturer = Build.MANUFACTURER.toLowerCase(Locale.US); + if (manufacturer.equals("samsung") + && Build.MODEL != null + && Build.MODEL.equals("SM-N960F")) { + // Samsung Galaxy Note 9 (on Android 8.1) - Model SM-N960F + // crashes on startup (base::MessagePumpForUI::MessagePumpForUI) due to + // some odd RELRO incompatibility in the device ROM. + // This workaround disables relocation sharing but allows device to start up. + // See also: + // * https://bugs.chromium.org/p/chromium/issues/detail?id=980304 + // * https://groups.google.com/a/chromium.org/g/chromium-dev/c/iAb7QUiNPLw + mFallbackToSystemLinker = true; + } + else if (useChromiumLinker() && !mainProcessIntendsToProvideRelroFd()) { getLinker().ensureInitialized( /* asRelroProducer= */ true, Linker.PreferAddress.FIND_RESERVED, 0); } else { -- 2.25.1