Add EU Marketplace region bypass, split tweaks to separate dylibs

This commit is contained in:
khanhduytran0
2025-12-27 19:17:40 +07:00
parent 8e258c5dea
commit ddb5c87fce
10 changed files with 69 additions and 12 deletions
@@ -0,0 +1,7 @@
{
Filter = {
Executables = (
"managedappdistributiond",
);
};
}
+12
View File
@@ -0,0 +1,12 @@
TARGET := iphone:clang:latest:15.0
INSTALL_TARGET_PROCESSES = managedappdistributiond
include $(THEOS)/makefiles/common.mk
TWEAK_NAME = BypassMarketplace
BypassMarketplace_FILES = Tweak.x
BypassMarketplace_CFLAGS = -fobjc-arc
BypassMarketplace_CODESIGN_FLAGS = -Cadhoc -S
include $(THEOS_MAKE_PATH)/tweak.mk
+24
View File
@@ -0,0 +1,24 @@
// "Not bypassing eligibility for com.apple.mobilesafari:personal (isProfileValidated: false isUPPValidated:false isBeta:false"
// Used in managedappdistributiond. Pseudocode of a validate function in OSEligbility.framework:
#if 0
LSBundleRecord *bundleRecord = ...;
BOOL isProfileValidated = bundleRecord.isProfileValidated;
BOOL isUPPValidated = bundleRecord.isUPPValidated;
BOOL isBeta = bundleRecord.isBeta;
if ( (isProfileValidated == NO) || (isUPPValidated == YES) || (isBeta == YES) ) {
log("Not bypassing eligibility for %s:%s (isProfileValidated: %{bool}d isUPPValidated:%{bool}d isBeta:%{bool}d", bundleRecord.bundleIdentifier.UTF8String, somethingThatSaysPersonal, isProfileValidated, isUPPValidated, isBeta);
}
#endif
// So we just force the three functions to return values that will bypass eligibility
%hook LSBundleRecord
- (BOOL)isProfileValidated {
return YES;
}
- (BOOL)isUPPValidated {
return NO;
}
- (BOOL)isBeta {
return NO;
}
%end
+14
View File
@@ -0,0 +1,14 @@
TARGET := iphone:clang:latest:15.0
INSTALL_TARGET_PROCESSES = MobileStorageMounter
include $(THEOS)/makefiles/common.mk
TWEAK_NAME = FixDDI
FixDDI_FILES = Tweak.x
FixDDI_CFLAGS = -fobjc-arc
FixDDI_FRAMEWORKS = IOKit
FixDDI_LIBRARIES = image4
FixDDI_CODESIGN_FLAGS = -Cadhoc -S
include $(THEOS_MAKE_PATH)/tweak.mk
+1 -1
View File
@@ -33,7 +33,7 @@ int img4_firmware_execute(void* fw, const void *chip, const void *nonce);
memcpy((char *)n->i4n_nonce, fakeNonce, IMG4_NONCE_MAX_LENGTH);
n->i4n_length = strlen(fakeNonce);
// Create our fake im4m
// Provide our pre-signed im4m
const char *groupPath = container_system_group_path_for_identifier(0, "systemgroup.com.apple.mobilestorageproxy", NULL);
assert(groupPath != NULL);
+3 -9
View File
@@ -1,15 +1,9 @@
TARGET := iphone:clang:latest:15.0
INSTALL_TARGET_PROCESSES = SpringBoard
THEOS_PACKAGE_SCHEME := rootless
include $(THEOS)/makefiles/common.mk
TWEAK_NAME = aintuitweaks
aintuitweaks_FILES = Tweak.x
aintuitweaks_CFLAGS = -fobjc-arc
aintuitweaks_FRAMEWORKS = IOKit
aintuitweaks_LIBRARIES = image4
aintuitweaks_CODESIGN_FLAGS = -Cadhoc -S
include $(THEOS_MAKE_PATH)/tweak.mk
SUBPROJECTS += BypassMarketplace
SUBPROJECTS += FixDDI
include $(THEOS_MAKE_PATH)/aggregate.mk
+2 -2
View File
@@ -9,5 +9,5 @@ Requires [my Dopamine fork](https://github.com/khanhduytran0/Dopamine/tree/2.x-a
## 🚧 Fixing `com.apple.MobileAsset.SystemApp` server
Stock apps are provided via an internal server which is inaccessible outside of *the falling fruit*. This tweak will redirect the links to use public server instead.
## 🚧 Bypassing EU/Japan Marketplace checks
The old method of using [eligibility plist](https://github.com/Lrdsnow/EUEnabler) no longer works. This tweak will bypass the checks to allow accessing EU Marketplace apps on "AI" devices.
## Bypassing EU/Japan Marketplace checks
The old method of using [eligibility plist](https://github.com/Lrdsnow/EUEnabler) no longer works. This tweak bypasses the checks to allow accessing EU Marketplace apps on "AI" devices.
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
# managedappdistributiond does not honor SIGTERM
killall -KILL managedappdistributiond
+3
View File
@@ -0,0 +1,3 @@
#!/bin/sh
# managedappdistributiond does not honor SIGTERM
killall -KILL managedappdistributiond