Fix SafetyNet verdicts and slight refactor

This commit is contained in:
Chris Renshaw
2024-07-23 12:22:07 -03:00
committed by Wang Han
parent 8f6c2b5dc8
commit b124f81f9b

View File

@@ -111,11 +111,24 @@ public:
auto app_data_dir = env_->GetStringUTFChars(args->app_data_dir, nullptr);
auto nice_name = env_->GetStringUTFChars(args->nice_name, nullptr);
std::string_view process(nice_name);
std::string_view dir(app_data_dir);
std::string_view process(nice_name);
bool isGms = false, isGmsUnstable = false;
isGms = dir.ends_with("/com.google.android.gms");
isGmsUnstable = process == "com.google.android.gms.unstable";
env_->ReleaseStringUTFChars(args->app_data_dir, app_data_dir);
env_->ReleaseStringUTFChars(args->nice_name, nice_name);
if (!isGms) {
return;
}
api_->setOption(zygisk::FORCE_DENYLIST_UNMOUNT);
if (!isGmsUnstable) {
return;
}
if (dir.ends_with("/com.google.android.gms") &&
process == "com.google.android.gms.unstable") {
int enabled = 0;
SpoofConfig spoofConfig{};
auto fd = api_->connectCompanion();
@@ -152,10 +165,6 @@ public:
}
}
env_->ReleaseStringUTFChars(args->nice_name, nice_name);
env_->ReleaseStringUTFChars(args->app_data_dir, app_data_dir);
}
void preServerSpecialize(ServerSpecializeArgs *args) override {
api_->setOption(zygisk::DLCLOSE_MODULE_LIBRARY);
}