From fa15834c71c841d75efb1a523d4905cbe6ab0ed3 Mon Sep 17 00:00:00 2001 From: chiteroman <98092901+chiteroman@users.noreply.github.com> Date: Fri, 1 Dec 2023 14:46:57 +0100 Subject: [PATCH] v14.0 --- app/src/main/cpp/main.cpp | 22 ++++++++++++---------- changelog.md | 8 ++++++-- module/module.prop | 4 ++-- module_resetprop/module.prop | 4 ++-- update.json | 6 +++--- 5 files changed, 25 insertions(+), 19 deletions(-) diff --git a/app/src/main/cpp/main.cpp b/app/src/main/cpp/main.cpp index 037b8bc..55f5d87 100644 --- a/app/src/main/cpp/main.cpp +++ b/app/src/main/cpp/main.cpp @@ -18,32 +18,34 @@ static std::string FIRST_API_LEVEL, SECURITY_PATCH; typedef void (*T_Callback)(void *, const char *, const char *, uint32_t); -static volatile T_Callback o_callback = nullptr; +static std::map callbacks; static void modify_callback(void *cookie, const char *name, const char *value, uint32_t serial) { - if (cookie == nullptr || name == nullptr || value == nullptr || o_callback == nullptr) return; + if (cookie == nullptr || name == nullptr || value == nullptr || + !callbacks.contains(cookie)) + return; std::string_view prop(name); if (prop.ends_with("api_level")) { if (FIRST_API_LEVEL.empty()) { LOGD("[%s]: %s -> %s", name, value, DEFAULT_FIRST_API_LEVEL); - return o_callback(cookie, name, DEFAULT_FIRST_API_LEVEL, serial); + return callbacks[cookie](cookie, name, DEFAULT_FIRST_API_LEVEL, serial); } else { LOGD("[%s]: %s -> %s", name, value, FIRST_API_LEVEL.c_str()); - return o_callback(cookie, name, FIRST_API_LEVEL.c_str(), serial); + return callbacks[cookie](cookie, name, FIRST_API_LEVEL.c_str(), serial); } } if (prop.ends_with("security_patch")) { if (!SECURITY_PATCH.empty()) { LOGD("[%s]: %s -> %s", name, value, SECURITY_PATCH.c_str()); - return o_callback(cookie, name, SECURITY_PATCH.c_str(), serial); + return callbacks[cookie](cookie, name, SECURITY_PATCH.c_str(), serial); } } - return o_callback(cookie, name, value, serial); + return callbacks[cookie](cookie, name, value, serial); } static void (*o_system_property_read_callback)(const prop_info *, T_Callback, void *); @@ -53,7 +55,7 @@ my_system_property_read_callback(const prop_info *pi, T_Callback callback, void if (pi == nullptr || callback == nullptr || cookie == nullptr) { return o_system_property_read_callback(pi, callback, cookie); } - o_callback = callback; + callbacks[cookie] = callback; return o_system_property_read_callback(pi, modify_callback, cookie); } @@ -119,6 +121,9 @@ public: return; } + LOGD("Read from file descriptor file 'classes.dex' -> %ld bytes", dexSize); + LOGD("Read from file descriptor file 'pif.json' -> %ld bytes", jsonSize); + dexVector.resize(dexSize); read(fd, dexVector.data(), dexSize); @@ -127,9 +132,6 @@ public: close(fd); - LOGD("Read from file descriptor file 'classes.dex' -> %ld bytes", dexSize); - LOGD("Read from file descriptor file 'pif.json' -> %ld bytes", jsonSize); - std::string data(jsonVector.cbegin(), jsonVector.cend()); json = nlohmann::json::parse(data, nullptr, false, true); diff --git a/changelog.md b/changelog.md index 8e6ce2b..8636dbc 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,10 @@ We have a Telegram channel! If you want to share your knowledge join: https://t.me/playintegrityfix -# v13.9 +# v14.0 -Google banned v13.8 fingerprint. \ No newline at end of file +Google banned v13.9 fingerprint. + +Now you must search a valid fingerprint, you must modify /data/adb/pif.json file to spoof a valid certified device. + +Good luck. \ No newline at end of file diff --git a/module/module.prop b/module/module.prop index 543a78d..9a840ec 100644 --- a/module/module.prop +++ b/module/module.prop @@ -1,7 +1,7 @@ id=playintegrityfix name=Play Integrity Fix -version=v14.0-BETA-2 -versionCode=139 +version=v14.0 +versionCode=14000 author=chiteroman description=Fix CTS profile (SafetyNet) and DEVICE verdict (Play Integrity). updateJson=https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/update.json diff --git a/module_resetprop/module.prop b/module_resetprop/module.prop index b2b6142..5bb2a77 100644 --- a/module_resetprop/module.prop +++ b/module_resetprop/module.prop @@ -1,7 +1,7 @@ id=playintegrityfix name=Play Integrity Fix (resetprop) -version=v14.0-resetprop-BETA-2 -versionCode=139 +version=v14.0-resetprop +versionCode=14000 author=chiteroman description=Fix CTS profile (SafetyNet) and DEVICE verdict (Play Integrity). updateJson=https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/update.json diff --git a/update.json b/update.json index 88f584c..bb4dede 100644 --- a/update.json +++ b/update.json @@ -1,6 +1,6 @@ { - "version": "v13.9", - "versionCode": 139, - "zipUrl": "https://github.com/chiteroman/PlayIntegrityFix/releases/download/v13.9/PlayIntegrityFix_v13.9.zip", + "version": "v14.0", + "versionCode": 14000, + "zipUrl": "https://github.com/chiteroman/PlayIntegrityFix/releases/download/v14.0/PlayIntegrityFix_v14.0.zip", "changelog": "https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/changelog.md" } \ No newline at end of file