Release v16.6

This commit is contained in:
chiteroman 2024-07-21 01:05:59 +02:00
parent 1c29473294
commit 5d42e12b7a
7 changed files with 33 additions and 31 deletions

View File

@ -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" )
} }
} }
} }

View File

@ -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()) {

View File

@ -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);
} }

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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"
} }