diff --git a/core/src/main/cpp/main/include/art/runtime/runtime.h b/core/src/main/cpp/main/include/art/runtime/runtime.h index f59fb1f7..378fa9a7 100644 --- a/core/src/main/cpp/main/include/art/runtime/runtime.h +++ b/core/src/main/cpp/main/include/art/runtime/runtime.h @@ -7,15 +7,9 @@ namespace art { class Runtime : public lspd::HookedObject { - private: inline static Runtime *instance_; - CREATE_MEM_FUNC_SYMBOL_ENTRY(void, DeoptimizeBootImage, void *thiz) { - if (LIKELY(DeoptimizeBootImageSym)) - DeoptimizeBootImageSym(thiz); - } - public: Runtime(void *thiz) : HookedObject(thiz) {} @@ -25,8 +19,6 @@ namespace art { // @ApiSensitive(Level.LOW) static void Setup(void *handle, HookFunType hook_func) { - RETRIEVE_MEM_FUNC_SYMBOL(DeoptimizeBootImage, - "_ZN3art7Runtime19DeoptimizeBootImageEv"); RETRIEVE_FIELD_SYMBOL(instance, "_ZN3art7Runtime9instance_E"); void * thiz = *reinterpret_cast(instance); LOGD("_ZN3art7Runtime9instance_E = %p", thiz); diff --git a/core/src/main/cpp/main/src/config_manager.cpp b/core/src/main/cpp/main/src/config_manager.cpp index 8d336255..441ce416 100644 --- a/core/src/main/cpp/main/src/config_manager.cpp +++ b/core/src/main/cpp/main/src/config_manager.cpp @@ -134,16 +134,6 @@ namespace lspd { return {}; } - bool ConfigManager::IsAppNeedHook(const std::string &package_name) const { - if (IsInstaller(package_name)) { - return true; - } - - auto res = white_list_.count(package_name); - LOGD("should hook %s -> %s", package_name.c_str(), BoolToString(res)); - return res; - } - ConfigManager::ConfigManager(uid_t user, bool initialized) : user_(user), data_path_prefix_(fs::path("/data/user_de") / @@ -153,7 +143,6 @@ namespace lspd { installer_pkg_name_(RetrieveInstallerPkgName()), no_module_log_enabled_(path_exists(GetConfigPath("disable_modules_log"))), resources_hook_enabled_(path_exists(GetConfigPath("enable_resources"))), - white_list_(GetAppList(GetConfigPath("whitelist/"))), modules_list_(GetModuleList()), last_write_time_(GetLastWriteTime()), variant_(GetVariant(GetMiscPath() / "variant")) { @@ -162,12 +151,6 @@ namespace lspd { LOGI(" using installer package name: %s", installer_pkg_name_.c_str()); LOGI(" no module log: %s", BoolToString(no_module_log_enabled_)); LOGI(" resources hook: %s", BoolToString(resources_hook_enabled_)); - LOGI(" white list: \n %s", ([this]() { - std::ostringstream join; - std::copy(white_list_.begin(), white_list_.end(), - std::ostream_iterator(join, "\n")); - return join.str(); - })().c_str()); LOGI(" module list: \n %s", ([this]() { std::ostringstream join; std::vector module_list; diff --git a/core/src/main/cpp/main/src/config_manager.h b/core/src/main/cpp/main/src/config_manager.h index 89237759..bfc0ab52 100644 --- a/core/src/main/cpp/main/src/config_manager.h +++ b/core/src/main/cpp/main/src/config_manager.h @@ -79,8 +79,6 @@ namespace lspd { std::vector GetAppModuleList(const std::string &pkg_name) const; - bool IsAppNeedHook(const std::string &pkg_name) const; - bool NeedUpdateConfig() const { return last_write_time_ < GetLastWriteTime(); } @@ -108,8 +106,6 @@ namespace lspd { const std::filesystem::path installer_pkg_name_; const bool no_module_log_enabled_ = false; const bool resources_hook_enabled_ = false; - // snapshot at boot - const std::unordered_set white_list_; const std::unordered_map>> modules_list_; diff --git a/core/src/main/cpp/main/src/context.cpp b/core/src/main/cpp/main/src/context.cpp index 17395e76..38485f78 100644 --- a/core/src/main/cpp/main/src/context.cpp +++ b/core/src/main/cpp/main/src/context.cpp @@ -191,12 +191,15 @@ namespace lspd { } void - Context::OnNativeForkSystemServerPre(JNIEnv *env, [[maybe_unused]] jclass clazz, uid_t uid, - gid_t gid, - jintArray gids, - jint runtime_flags, jobjectArray rlimits, - jlong permitted_capabilities, - jlong effective_capabilities) { + Context::OnNativeForkSystemServerPre([[maybe_unused]] JNIEnv *env, + [[maybe_unused]] jclass clazz, + [[maybe_unused]] uid_t uid, + [[maybe_unused]] gid_t gid, + [[maybe_unused]] jintArray gids, + [[maybe_unused]] jint runtime_flags, + [[maybe_unused]] jobjectArray rlimits, + [[maybe_unused]] jlong permitted_capabilities, + [[maybe_unused]] jlong effective_capabilities) { ConfigManager::SetCurrentUser(0u); app_modules_list_ = ConfigManager::GetInstance()->GetAppModuleList( "android"); // I don't think we need this, but anyway @@ -204,10 +207,6 @@ namespace lspd { if (!ConfigManager::GetInstance()->IsInitialized()) { LOGE("skip injecting into android because configurations are not loaded properly"); } - if (!skip_ && !ConfigManager::GetInstance()->IsAppNeedHook("android")) { - skip_ = true; - LOGD("skip injecting into android because it's whitelisted/blacklisted"); - } if (!skip_ && app_modules_list_.empty()) { skip_ = true; LOGD("skip injecting into android because no module hooks it"); @@ -361,12 +360,6 @@ namespace lspd { LOGI("skip injecting into %s because it's isolated", package_name.c_str()); } - if (!skip && !ConfigManager::GetInstance()->IsAppNeedHook(package_name)) { - skip = true; - LOGD("skip injecting xposed into %s because it's whitelisted/blacklisted", - package_name.c_str()); - } - if (!skip && empty_list() && !ConfigManager::GetInstance()->IsInstaller(package_name)) { skip = true; LOGD("skip injecting xposed into %s because no module hooks it",