From 253fddfcea96064d85edf1fe462ac2bbf17ea09c Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Sun, 14 Jun 2026 09:41:57 +0700 Subject: [PATCH] Fix DDI mounting again --- BypassMarketplace.x | 3 +- BypassMirroringUnlock.x | 3 +- FixDDI.x | 15 ++++-- FixNonUI.x | 2 +- LiquidGlassDynamicIsland.x | 103 +++++++++++++++++++++++++++++++++++++ Makefile | 2 +- NineteenPatches.x | 1 + filter.plist | 2 +- 8 files changed, 121 insertions(+), 10 deletions(-) create mode 100644 LiquidGlassDynamicIsland.x diff --git a/BypassMarketplace.x b/BypassMarketplace.x index 2557aa7..a4f38d1 100644 --- a/BypassMarketplace.x +++ b/BypassMarketplace.x @@ -1,4 +1,5 @@ @import Foundation; +#include typedef CF_ENUM(uint64_t, EligibilityDomainType) { /// Install marketplace-distributed apps @@ -100,7 +101,7 @@ int os_eligibility_get_domain_answer(EligibilityDomainType domain, EligibilityAn %end %ctor { - NSString *processName = NSProcessInfo.processInfo.processName; + NSString *processName = @(basename(argv[0])); if ([processName isEqualToString:@"managedappdistributiond"] || [processName isEqualToString:@"installd"]) { %init(Hook_os_eligibility_get_domain_answer); } else if ([processName isEqualToString:@"appstorecomponentsd"]) { diff --git a/BypassMirroringUnlock.x b/BypassMirroringUnlock.x index 7f80d0d..8b38f3f 100644 --- a/BypassMirroringUnlock.x +++ b/BypassMirroringUnlock.x @@ -1,6 +1,7 @@ @import Foundation; @import QuartzCore; @import UIKit; +#include @interface SBContinuitySessionSystemEventMonitor : NSObject - (BOOL)isUILocked; @@ -43,7 +44,7 @@ %end %ctor { - NSString *processName = NSProcessInfo.processInfo.processName; + NSString *processName = @(basename(argv[0])); if (@available(iOS 18.0, *)) { if ([processName isEqualToString:@"SpringBoard"]) { %init(Hook_SpringBoard_iOS18); diff --git a/FixDDI.x b/FixDDI.x index ad00619..2e380e8 100644 --- a/FixDDI.x +++ b/FixDDI.x @@ -105,17 +105,22 @@ BOOL gCalledImg4Execute = NO; // Fix boardID = 9 %hookf(errno_t, img4_chip_instantiate, const img4_chip_t *chip, img4_chip_instance_t *chip_instance) { errno_t result = %orig; - if(!result && chip_instance->chid_bord == 9) { - chip_instance->chid_bord = 10; - chip_instance->chid_chip = 0x8101; - chip_instance->chid_ecid = 0; + // && + if(!result) { + if (chip_instance->chid_bord == 9) { + chip_instance->chid_bord = 0x20; + chip_instance->chid_chip = 0xfe00; + chip_instance->chid_ecid = 0; + } + chip_instance->chid_cpro = chip_instance->chid_epro = 1; + chip_instance->chid_csec = chip_instance->chid_esec = 1; } return result; } %end %ctor { - NSString *processName = NSProcessInfo.processInfo.processName; + NSString *processName = @(basename(argv[0])); if ([processName isEqualToString:@"MobileStorageMounter"]) { %init(Hook_MobileStorageMounter); } diff --git a/FixNonUI.x b/FixNonUI.x index c79bb4f..294a864 100644 --- a/FixNonUI.x +++ b/FixNonUI.x @@ -19,7 +19,7 @@ Boolean SMJobSubmit(CFStringRef domain, CFDictionaryRef job, id auth, CFErrorRef %end %ctor { - NSString *processName = NSProcessInfo.processInfo.processName; + NSString *processName = @(basename(argv[0])); if ([processName isEqualToString:@"hidd.nonui"]) { %init(Hook_NonUI); } else if ([processName isEqualToString:@"SwitchBoard"]) { diff --git a/LiquidGlassDynamicIsland.x b/LiquidGlassDynamicIsland.x new file mode 100644 index 0000000..182fe21 --- /dev/null +++ b/LiquidGlassDynamicIsland.x @@ -0,0 +1,103 @@ +@import Foundation; +@import QuartzCore; +@import UIKit; +#include + +%group Hook_SpringBoard_GlassDynamicIsland +@interface CALayer(Private) +@property(atomic, assign) unsigned int disableUpdateMask; +@end +@interface CAGainMapLayer : CALayer +@end +@interface UIView(Private) +- (void)sbh_applyClearGlass; +@end +@interface _SBGainMapView : UIView +@end +@interface SBSystemApertureContainerView : UIView +@end + +%hook CAGainMapLayer +- (void)setDisableUpdateMask:(uint32_t)mode { + if (mode == 0xffffffff) { + %orig(0); + } else { + %orig(mode|0xffff); + } +} +%end + +@interface SBSystemApertureViewController : UIViewController +@end +%hook SBSystemApertureViewController +- (void)viewDidAppear:(BOOL)animated { + %orig; + + static BOOL changed; + if (changed) return; + changed = YES; + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + // Make background transparent + NSArray *bgParentSubviews = [[self valueForKey:@"_containerBackgroundParent"] subviews]; + if (bgParentSubviews.count < 2) return; + UIView *bgParentView = bgParentSubviews[1]; + bgParentView.clipsToBounds = NO; + UIView *bgView = bgParentView.subviews[0]; + bgView.backgroundColor = nil; + changed = YES; + + // add invisible gain map layer + _SBGainMapView *gainMapView = [[NSClassFromString(@"_SBGainMapView") alloc] initWithFrame:CGRectMake(0,0,1,1)]; + gainMapView.layer.disableUpdateMask = 0xffffffff; + [self.view addSubview:gainMapView]; + }); +} +%end + +static UIView *lightBkgKeyLineView, *darkBkgKeyLineView; +%hook SBSystemApertureContainerView +- (void)_updateShadowStyleIfNeeded { + %orig; + + static BOOL changed; + if (changed) return; + changed = YES; + + // Apply Clear Glass effect + if (!lightBkgKeyLineView || !darkBkgKeyLineView) { + Ivar lightIvar = class_getInstanceVariable(self.class, "_lightBkgKeyLineView"); + Ivar darkIvar = class_getInstanceVariable(self.class, "_darkBkgKeyLineView"); + lightBkgKeyLineView = object_getIvar(self, lightIvar); + darkBkgKeyLineView = object_getIvar(self, darkIvar); + } + [lightBkgKeyLineView sbh_applyClearGlass]; + [darkBkgKeyLineView sbh_applyClearGlass]; +} + +- (void)setKeyLineMode:(int64_t)mode { + // idk this doesnt work if I put it in constructor + static BOOL changed; + if (!changed) { + changed = YES; + MSImageRef image = MSGetImageByName("/System/Library/PrivateFrameworks/SpringBoard.framework/SpringBoard"); + CGFloat *opacity = MSFindSymbol(image, "_SBSystemApertureKeyLineDarkBkgEnabledOpacity"); + *opacity = 1; + } + %orig(mode); + if (mode == 2) { + darkBkgKeyLineView.backgroundColor = [darkBkgKeyLineView.backgroundColor colorWithAlphaComponent:0.345]; + } +} +%end +%end + +extern CGFloat SBSystemApertureKeyLineDarkBkgEnabledOpacity; +%ctor { + NSString *processName = @(basename(argv[0])); + if (@available(iOS 26.0, *)) { + if ([processName isEqualToString:@"SpringBoard"]) { + %init(Hook_SpringBoard_GlassDynamicIsland); + } + } +} diff --git a/Makefile b/Makefile index 94490be..dcc78c7 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ include $(THEOS)/makefiles/common.mk TWEAK_NAME = aintuitweaks -aintuitweaks_FILES = BypassMarketplace.x BypassMirroringUnlock.x FixDDI.x NineteenPatches.x FixNonUI.x +aintuitweaks_FILES = BypassMarketplace.x BypassMirroringUnlock.x FixDDI.x NineteenPatches.x FixNonUI.x LiquidGlassDynamicIsland.x aintuitweaks_CFLAGS = -fobjc-arc aintuitweaks_FRAMEWORKS = IOKit aintuitweaks_PRIVATE_FRAMEWORKS = ServiceManagement diff --git a/NineteenPatches.x b/NineteenPatches.x index d1c651f..f0abfb3 100644 --- a/NineteenPatches.x +++ b/NineteenPatches.x @@ -2,6 +2,7 @@ %ctor { MSImageRef image = MSGetImageByName("/usr/lib/swift/libswiftCore.dylib"); + if (!image) return; uint32_t *symbol = MSFindSymbol(image, "__ZNSt3__110__function6__funcIZL27_checkWitnessTableIsolationPKN5swift14TargetMetadataINS2_9InProcessEEEPKNS2_18TargetWitnessTableIS4_EEN7__swift9__runtime4llvm8ArrayRefIPKvEERNS2_27ConformanceExecutionContextEE3$_0NS_9allocatorISL_EEFSH_jjEED1Ev"); uint32_t xpacd_x0 = 0xdac147e0; uint32_t ret = 0xd65f03c0; diff --git a/filter.plist b/filter.plist index 678deca..149f58c 100644 --- a/filter.plist +++ b/filter.plist @@ -14,4 +14,4 @@ MobileStorageMounter, ); }; -} +} \ No newline at end of file