mirror of
https://github.com/chiteroman/PlayIntegrityFix.git
synced 2025-02-07 19:59:48 +08:00
Release v16.6
This commit is contained in:
parent
1c29473294
commit
5d42e12b7a
@ -16,7 +16,7 @@ android {
|
|||||||
applicationId = "es.chiteroman.playintegrityfix"
|
applicationId = "es.chiteroman.playintegrityfix"
|
||||||
minSdk = 26
|
minSdk = 26
|
||||||
targetSdk = 35
|
targetSdk = 35
|
||||||
versionCode = 16500
|
versionCode = 16600
|
||||||
versionName = "v16.6"
|
versionName = "v16.6"
|
||||||
multiDexEnabled = false
|
multiDexEnabled = false
|
||||||
|
|
||||||
@ -31,17 +31,17 @@ android {
|
|||||||
|
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
cmake {
|
cmake {
|
||||||
arguments += "-DANDROID_STL=none"
|
arguments += arrayOf(
|
||||||
arguments += "-DCMAKE_BUILD_TYPE=MinSizeRel"
|
"-DANDROID_STL=none",
|
||||||
|
"-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON",
|
||||||
cFlags += "-w"
|
"-DANDROID_CPP_FEATURES=no-rtti no-exceptions",
|
||||||
cppFlags += "-w"
|
"-DCMAKE_BUILD_TYPE=MinSizeRel",
|
||||||
|
"-DCMAKE_CXX_STANDARD=23",
|
||||||
cppFlags += "-std=c++2c"
|
"-DCMAKE_C_STANDARD=23",
|
||||||
cppFlags += "-fno-exceptions"
|
"-DCMAKE_VISIBILITY_INLINES_HIDDEN=ON",
|
||||||
cppFlags += "-fno-rtti"
|
"-DCMAKE_CXX_VISIBILITY_PRESET=hidden",
|
||||||
cppFlags += "-fvisibility=hidden"
|
"-DCMAKE_C_VISIBILITY_PRESET=hidden",
|
||||||
cppFlags += "-fvisibility-inlines-hidden"
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,11 +60,12 @@ static void (*o_system_property_read_callback)(const prop_info *, T_Callback, vo
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
my_system_property_read_callback(const prop_info *pi, T_Callback callback, void *cookie) {
|
my_system_property_read_callback(const prop_info *pi, T_Callback callback, void *cookie) {
|
||||||
if (callback && cookie) callbacks[cookie] = callback;
|
if (pi && callback && cookie) callbacks[cookie] = callback;
|
||||||
return o_system_property_read_callback(pi, modify_callback, cookie);
|
return o_system_property_read_callback(pi, modify_callback, cookie);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void doHook() {
|
static void doHook() {
|
||||||
|
LOGD("JSON contains DEVICE_INITIAL_SDK_INT key. Hooking native prop symbol");
|
||||||
void *handle = DobbySymbolResolver(nullptr, "__system_property_read_callback");
|
void *handle = DobbySymbolResolver(nullptr, "__system_property_read_callback");
|
||||||
if (!handle) {
|
if (!handle) {
|
||||||
LOGE("error resolving __system_property_read_callback symbol!");
|
LOGE("error resolving __system_property_read_callback symbol!");
|
||||||
@ -154,9 +155,10 @@ public:
|
|||||||
void postAppSpecialize(const zygisk::AppSpecializeArgs *args) override {
|
void postAppSpecialize(const zygisk::AppSpecializeArgs *args) override {
|
||||||
if (dexVector.empty()) return;
|
if (dexVector.empty()) return;
|
||||||
|
|
||||||
parseJSON();
|
if (!json.empty()) parseJSON();
|
||||||
|
|
||||||
doHook();
|
if (enableHook) doHook();
|
||||||
|
else api->setOption(zygisk::DLCLOSE_MODULE_LIBRARY);
|
||||||
|
|
||||||
injectDex();
|
injectDex();
|
||||||
}
|
}
|
||||||
@ -170,11 +172,11 @@ private:
|
|||||||
JNIEnv *env = nullptr;
|
JNIEnv *env = nullptr;
|
||||||
std::vector<uint8_t> dexVector;
|
std::vector<uint8_t> dexVector;
|
||||||
nlohmann::json json;
|
nlohmann::json json;
|
||||||
|
bool enableHook = false;
|
||||||
|
|
||||||
void parseJSON() {
|
void parseJSON() {
|
||||||
if (json.empty()) return;
|
|
||||||
|
|
||||||
if (json.contains("DEVICE_INITIAL_SDK_INT")) {
|
if (json.contains("DEVICE_INITIAL_SDK_INT")) {
|
||||||
|
enableHook = true;
|
||||||
if (json["DEVICE_INITIAL_SDK_INT"].is_string()) {
|
if (json["DEVICE_INITIAL_SDK_INT"].is_string()) {
|
||||||
DEVICE_INITIAL_SDK_INT = json["DEVICE_INITIAL_SDK_INT"].get<std::string>();
|
DEVICE_INITIAL_SDK_INT = json["DEVICE_INITIAL_SDK_INT"].get<std::string>();
|
||||||
} else if (json["DEVICE_INITIAL_SDK_INT"].is_number_integer()) {
|
} else if (json["DEVICE_INITIAL_SDK_INT"].is_number_integer()) {
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package es.chiteroman.playintegrityfix;
|
package es.chiteroman.playintegrityfix;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
@ -10,7 +12,6 @@ import java.security.NoSuchAlgorithmException;
|
|||||||
import java.security.UnrecoverableKeyException;
|
import java.security.UnrecoverableKeyException;
|
||||||
import java.security.cert.Certificate;
|
import java.security.cert.Certificate;
|
||||||
import java.security.cert.CertificateException;
|
import java.security.cert.CertificateException;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
@ -25,8 +26,11 @@ public final class CustomKeyStoreSpi extends KeyStoreSpi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Certificate[] engineGetCertificateChain(String alias) {
|
public Certificate[] engineGetCertificateChain(String alias) {
|
||||||
if (Arrays.stream(Thread.currentThread().getStackTrace()).anyMatch(e -> e.getClassName().toLowerCase(Locale.US).contains("droidguard"))) {
|
for (StackTraceElement stackTraceElement : Thread.currentThread().getStackTrace()) {
|
||||||
throw new UnsupportedOperationException();
|
if (stackTraceElement.getClassName().toLowerCase(Locale.US).contains("droidguard")) {
|
||||||
|
Log.w(EntryPoint.TAG, "DroidGuard invoke engineGetCertificateChain! Throwing exception...");
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return keyStoreSpi.engineGetCertificateChain(alias);
|
return keyStoreSpi.engineGetCertificateChain(alias);
|
||||||
}
|
}
|
||||||
|
@ -49,8 +49,6 @@ public final class EntryPoint {
|
|||||||
|
|
||||||
jsonObject.keys().forEachRemaining(s -> {
|
jsonObject.keys().forEachRemaining(s -> {
|
||||||
try {
|
try {
|
||||||
if ("DEVICE_INITIAL_SDK_INT".equals(s)) return;
|
|
||||||
|
|
||||||
String value = jsonObject.getString(s);
|
String value = jsonObject.getString(s);
|
||||||
|
|
||||||
if (TextUtils.isEmpty(value)) return;
|
if (TextUtils.isEmpty(value)) return;
|
||||||
|
@ -7,9 +7,7 @@ If not, try removing /data/adb/pif.json file.
|
|||||||
Donations:
|
Donations:
|
||||||
https://www.paypal.com/paypalme/chiteroman
|
https://www.paypal.com/paypalme/chiteroman
|
||||||
|
|
||||||
# v16.5
|
# v16.6
|
||||||
|
|
||||||
- Update hook framework: [Dobby](https://github.com/chiteroman/Dobby.git)
|
- Change fingerprint to fix RCS
|
||||||
- Fix Device not passing in few devices
|
- Misc improvements
|
||||||
- Improve code
|
|
||||||
- Reduce Zygisk libs size
|
|
@ -1,7 +1,7 @@
|
|||||||
id=playintegrityfix
|
id=playintegrityfix
|
||||||
name=Play Integrity Fix
|
name=Play Integrity Fix
|
||||||
version=v16.6
|
version=v16.6
|
||||||
versionCode=16500
|
versionCode=16600
|
||||||
author=chiteroman
|
author=chiteroman
|
||||||
description=Universal modular fix for Play Integrity (and SafetyNet) on devices running Android 8-15
|
description=Universal modular fix for Play Integrity (and SafetyNet) on devices running Android 8-15
|
||||||
updateJson=https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/update.json
|
updateJson=https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/update.json
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version": "v16.5",
|
"version": "v16.6",
|
||||||
"versionCode": 16500,
|
"versionCode": 16600,
|
||||||
"zipUrl": "https://github.com/chiteroman/PlayIntegrityFix/releases/download/v16.5/PlayIntegrityFix_v16.5.zip",
|
"zipUrl": "https://github.com/chiteroman/PlayIntegrityFix/releases/download/v16.6/PlayIntegrityFix_v16.6.zip",
|
||||||
"changelog": "https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/changelog.md"
|
"changelog": "https://raw.githubusercontent.com/chiteroman/PlayIntegrityFix/main/changelog.md"
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user