This commit is contained in:
chiteroman 2023-12-01 14:46:57 +01:00
parent 59ff2abd77
commit fa15834c71
No known key found for this signature in database
GPG Key ID: 19171A27D600CC72
5 changed files with 25 additions and 19 deletions

View File

@ -18,32 +18,34 @@ static std::string FIRST_API_LEVEL, SECURITY_PATCH;
typedef void (*T_Callback)(void *, const char *, const char *, uint32_t); typedef void (*T_Callback)(void *, const char *, const char *, uint32_t);
static volatile T_Callback o_callback = nullptr; static std::map<void *, T_Callback> callbacks;
static void modify_callback(void *cookie, const char *name, const char *value, uint32_t serial) { 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); std::string_view prop(name);
if (prop.ends_with("api_level")) { if (prop.ends_with("api_level")) {
if (FIRST_API_LEVEL.empty()) { if (FIRST_API_LEVEL.empty()) {
LOGD("[%s]: %s -> %s", name, value, DEFAULT_FIRST_API_LEVEL); 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 { } else {
LOGD("[%s]: %s -> %s", name, value, FIRST_API_LEVEL.c_str()); 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 (prop.ends_with("security_patch")) {
if (!SECURITY_PATCH.empty()) { if (!SECURITY_PATCH.empty()) {
LOGD("[%s]: %s -> %s", name, value, SECURITY_PATCH.c_str()); 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 *); 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) { if (pi == nullptr || callback == nullptr || cookie == nullptr) {
return o_system_property_read_callback(pi, callback, cookie); 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); return o_system_property_read_callback(pi, modify_callback, cookie);
} }
@ -119,6 +121,9 @@ public:
return; 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); dexVector.resize(dexSize);
read(fd, dexVector.data(), dexSize); read(fd, dexVector.data(), dexSize);
@ -127,9 +132,6 @@ public:
close(fd); 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()); std::string data(jsonVector.cbegin(), jsonVector.cend());
json = nlohmann::json::parse(data, nullptr, false, true); json = nlohmann::json::parse(data, nullptr, false, true);

View File

@ -2,6 +2,10 @@ We have a Telegram channel!
If you want to share your knowledge join: If you want to share your knowledge join:
https://t.me/playintegrityfix https://t.me/playintegrityfix
# v13.9 # v14.0
Google banned v13.8 fingerprint. 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.

View File

@ -1,7 +1,7 @@
id=playintegrityfix id=playintegrityfix
name=Play Integrity Fix name=Play Integrity Fix
version=v14.0-BETA-2 version=v14.0
versionCode=139 versionCode=14000
author=chiteroman author=chiteroman
description=Fix CTS profile (SafetyNet) and DEVICE verdict (Play Integrity). description=Fix CTS profile (SafetyNet) and DEVICE verdict (Play Integrity).
updateJson=https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/update.json updateJson=https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/update.json

View File

@ -1,7 +1,7 @@
id=playintegrityfix id=playintegrityfix
name=Play Integrity Fix (resetprop) name=Play Integrity Fix (resetprop)
version=v14.0-resetprop-BETA-2 version=v14.0-resetprop
versionCode=139 versionCode=14000
author=chiteroman author=chiteroman
description=Fix CTS profile (SafetyNet) and DEVICE verdict (Play Integrity). description=Fix CTS profile (SafetyNet) and DEVICE verdict (Play Integrity).
updateJson=https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/update.json updateJson=https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/update.json

View File

@ -1,6 +1,6 @@
{ {
"version": "v13.9", "version": "v14.0",
"versionCode": 139, "versionCode": 14000,
"zipUrl": "https://github.com/chiteroman/PlayIntegrityFix/releases/download/v13.9/PlayIntegrityFix_v13.9.zip", "zipUrl": "https://github.com/chiteroman/PlayIntegrityFix/releases/download/v14.0/PlayIntegrityFix_v14.0.zip",
"changelog": "https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/changelog.md" "changelog": "https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/changelog.md"
} }