From 4cbbed127f44697cbea04da07931ca0d9c1a0916 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Mon, 17 Feb 2020 10:50:19 +0900 Subject: mark AIBinder_Class_setHandleShellCommand as weak. This symbol is not present on Q builds. This breaks installing mainline modules on Q builds. Bug: 149077229 Test: TARGET_BUILD_APPS=com.android.resolv vendor/google/build/build_unbundled_mainline_module.sh com.android.resolv && adb install --staged --enable-rollback out/dist/mainline_modules_arm64/com.android.resolv.apex && adb reboot Change-Id: I4fae98f2ad3051d758707658ec489f0d855cd4b6 --- libs/binder/ndk/include_ndk/android/binder_interface_utils.h | 4 +++- libs/binder/ndk/include_platform/android/binder_shell.h | 5 ++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h index e6b743ba3c..33e4586137 100644 --- a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h +++ b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h @@ -238,7 +238,9 @@ AIBinder_Class* ICInterface::defineClass(const char* interfaceDescriptor, // ourselves. The defaults are harmless. AIBinder_Class_setOnDump(clazz, ICInterfaceData::onDump); #ifdef HAS_BINDER_SHELL_COMMAND - AIBinder_Class_setHandleShellCommand(clazz, ICInterfaceData::handleShellCommand); + if (AIBinder_Class_setHandleShellCommand != nullptr) { + AIBinder_Class_setHandleShellCommand(clazz, ICInterfaceData::handleShellCommand); + } #endif return clazz; } diff --git a/libs/binder/ndk/include_platform/android/binder_shell.h b/libs/binder/ndk/include_platform/android/binder_shell.h index 17b38b0dae..07d89e67fc 100644 --- a/libs/binder/ndk/include_platform/android/binder_shell.h +++ b/libs/binder/ndk/include_platform/android/binder_shell.h @@ -48,8 +48,7 @@ typedef binder_status_t (*AIBinder_handleShellCommand)(AIBinder* binder, int in, * \param handleShellCommand function to call when a shell transaction is * received */ -void AIBinder_Class_setHandleShellCommand(AIBinder_Class* clazz, - AIBinder_handleShellCommand handleShellCommand) - __INTRODUCED_IN(30); +__attribute__((weak)) void AIBinder_Class_setHandleShellCommand( + AIBinder_Class* clazz, AIBinder_handleShellCommand handleShellCommand) __INTRODUCED_IN(30); __END_DECLS -- cgit v1.2.3-59-g8ed1b