diff options
-rw-r--r-- | adb/client/commandline.cpp | 18 | ||||
-rw-r--r-- | rootdir/etc/ld.config.txt | 21 |
2 files changed, 31 insertions, 8 deletions
diff --git a/adb/client/commandline.cpp b/adb/client/commandline.cpp index e2a17c553..8dd85d7b0 100644 --- a/adb/client/commandline.cpp +++ b/adb/client/commandline.cpp @@ -1668,17 +1668,29 @@ int adb_commandline(int argc, const char** argv) { return 0; } } else if (!strcmp(argv[0], "rescue")) { + // adb rescue getprop // adb rescue getprop <prop> // adb rescue install <filename> // adb rescue wipe userdata - if (argc != 3) error_exit("rescue requires two arguments"); + if (argc < 2) error_exit("rescue requires at least one argument"); if (!strcmp(argv[1], "getprop")) { - return adb_connect_command(android::base::StringPrintf("rescue-getprop:%s", argv[2])); + if (argc == 2) { + return adb_connect_command("rescue-getprop:"); + } + if (argc == 3) { + return adb_connect_command( + android::base::StringPrintf("rescue-getprop:%s", argv[2])); + } + error_exit("invalid rescue getprop arguments"); } else if (!strcmp(argv[1], "install")) { + if (argc != 3) error_exit("rescue install requires two arguments"); if (adb_sideload_install(argv[2], true /* rescue_mode */) != 0) { return 1; } - } else if (!strcmp(argv[1], "wipe") && !strcmp(argv[2], "userdata")) { + } else if (!strcmp(argv[1], "wipe")) { + if (argc != 3 || strcmp(argv[2], "userdata") != 0) { + error_exit("invalid rescue wipe arguments"); + } return adb_wipe_devices(); } else { error_exit("invalid rescue argument"); diff --git a/rootdir/etc/ld.config.txt b/rootdir/etc/ld.config.txt index 84b308d0e..320b0a682 100644 --- a/rootdir/etc/ld.config.txt +++ b/rootdir/etc/ld.config.txt @@ -143,6 +143,7 @@ namespace.default.link.runtime.shared_libs += libandroidicu.so # TODO(b/122876336): Remove libpac.so once it's migrated to Webview namespace.default.link.runtime.shared_libs += libpac.so +namespace.default.link.runtime.shared_libs += %SANITIZER_RUNTIME_LIBRARIES% # When libnetd_resolv.so can't be found in the default namespace, search for it # in the resolv namespace. Don't allow any other libraries from the resolv namespace @@ -363,7 +364,7 @@ namespace.vndk.asan.permitted.paths += /system/${LIB}/vndk-sp%VNDK_VER # The "vndk" namespace links to "default" namespace for LLNDK libs and links to # "sphal" namespace for vendor libs. The ordering matters. The "default" # namespace has higher priority than the "sphal" namespace. -namespace.vndk.links = default,sphal +namespace.vndk.links = default,sphal,runtime # When these NDK libs are required inside this namespace, then it is redirected # to the default namespace. This is possible since their ABI is stable across @@ -371,6 +372,8 @@ namespace.vndk.links = default,sphal namespace.vndk.link.default.shared_libs = %LLNDK_LIBRARIES% namespace.vndk.link.default.shared_libs += %SANITIZER_RUNTIME_LIBRARIES% +namespace.vndk.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES% + # Allow VNDK-SP extensions to use vendor libraries namespace.vndk.link.sphal.allow_all_shared_libs = true @@ -423,8 +426,10 @@ namespace.default.asan.permitted.paths += /odm namespace.default.asan.permitted.paths += /data/asan/vendor namespace.default.asan.permitted.paths += /vendor -namespace.default.links = system,vndk%VNDK_IN_SYSTEM_NS% -namespace.default.link.system.shared_libs = %LLNDK_LIBRARIES% +namespace.default.links = system,vndk%VNDK_IN_SYSTEM_NS%,runtime +namespace.default.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES% +namespace.default.link.system.shared_libs = %LLNDK_LIBRARIES% +namespace.default.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES% namespace.default.link.vndk_in_system.shared_libs = %VNDK_USING_CORE_VARIANT_LIBRARIES% namespace.default.link.vndk.shared_libs = %VNDK_SAMEPROCESS_LIBRARIES% namespace.default.link.vndk.shared_libs += %VNDK_CORE_LIBRARIES% @@ -477,13 +482,15 @@ namespace.vndk.asan.search.paths += /system/${LIB}/vndk%VNDK_VER% # Android releases. The links here should be identical to that of the # 'vndk_in_system' namespace, except for the link between 'vndk' and # 'vndk_in_system'. -namespace.vndk.links = system,default%VNDK_IN_SYSTEM_NS% +namespace.vndk.links = system,default%VNDK_IN_SYSTEM_NS%,runtime namespace.vndk.link.system.shared_libs = %LLNDK_LIBRARIES% namespace.vndk.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES% namespace.vndk.link.default.allow_all_shared_libs = true +namespace.vndk.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES% + namespace.vndk.link.vndk_in_system.shared_libs = %VNDK_USING_CORE_VARIANT_LIBRARIES% ############################################################################### @@ -515,6 +522,7 @@ namespace.system.link.runtime.shared_libs += libnativehelper.so namespace.system.link.runtime.shared_libs += libnativeloader.so # Workaround for b/124772622 namespace.system.link.runtime.shared_libs += libandroidicu.so +namespace.system.link.runtime.shared_libs += %SANITIZER_RUNTIME_LIBRARIES% ############################################################################### # "vndk_in_system" namespace @@ -553,7 +561,8 @@ namespace.vndk_in_system.whitelisted = %VNDK_USING_CORE_VARIANT_LIBRARIES% # 1. 'vndk_in_system' needs to be freely linked back to 'vndk'. # 2. 'vndk_in_system' does not need to link to 'default', as any library that # requires anything vendor would not be a vndk_in_system library. -namespace.vndk_in_system.links = vndk,system +namespace.vndk_in_system.links = vndk,system,runtime +namespace.vndk_in_system.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES% namespace.vndk_in_system.link.system.shared_libs = %LLNDK_LIBRARIES% namespace.vndk_in_system.link.system.shared_libs += %SANITIZER_RUNTIME_LIBRARIES% @@ -684,3 +693,5 @@ namespace.default.isolated = false namespace.default.search.paths = /system/${LIB} namespace.default.search.paths += /%PRODUCT%/${LIB} namespace.default.search.paths += /%PRODUCT_SERVICES%/${LIB} + +namespace.default.link.runtime.shared_libs = %SANITIZER_RUNTIME_LIBRARIES% |