mirror of
https://github.com/NohamR/Tweaks.git
synced 2026-05-24 19:59:59 +00:00
Add Infuse rootless tweaks for iOS/tvOS
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -2,4 +2,4 @@
|
|||||||
/CreditAgricoleTweak
|
/CreditAgricoleTweak
|
||||||
/RMHook
|
/RMHook
|
||||||
/rootless
|
/rootless
|
||||||
Build.md
|
Build.md
|
||||||
3
Infuse/Infuse-iOS/.gitignore
vendored
Normal file
3
Infuse/Infuse-iOS/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.theos/
|
||||||
|
packages/
|
||||||
|
.DS_Store
|
||||||
7
Infuse/Infuse-iOS/Infuse.plist
Normal file
7
Infuse/Infuse-iOS/Infuse.plist
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
Filter = {
|
||||||
|
Bundles = (
|
||||||
|
"com.firecore.infuse",
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
13
Infuse/Infuse-iOS/Makefile
Normal file
13
Infuse/Infuse-iOS/Makefile
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
TARGET = iphone:latest:14.0
|
||||||
|
INSTALL_TARGET_PROCESSES = infuse
|
||||||
|
ARCHS = arm64 arm64e
|
||||||
|
|
||||||
|
include $(THEOS)/makefiles/common.mk
|
||||||
|
|
||||||
|
TWEAK_NAME = Infuse
|
||||||
|
|
||||||
|
Infuse_FILES = Tweak.x
|
||||||
|
Infuse_CFLAGS = -fobjc-arc
|
||||||
|
Infuse_FRAMEWORKS = Foundation
|
||||||
|
|
||||||
|
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||||
81
Infuse/Infuse-iOS/Tweak.x
Normal file
81
Infuse/Infuse-iOS/Tweak.x
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
// changes : FCInAppPurchaseServiceFreemium block deleted, FCTraktIAPManager block deleted, layoutSubviews -> awakeFromNib on FCVersionView, and the dead return %orig lines after return statements cleaned up (they were unreachable in the old version too)
|
||||||
|
|
||||||
|
#import <substrate.h>
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
%hook FCIAPGUIHelper
|
||||||
|
+(bool) isProAvailable {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
+(bool) isSubscriptionBought {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook FCInAppPurchaseServiceBase
|
||||||
|
- (bool)isFeaturePurchased:(long long)arg1 tillDate:(id*)arg2 {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
- (bool)isFeaturePurchased:(long long)arg1 {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook FCInAppPurchaseServiceDummy
|
||||||
|
- (bool)isFeaturePurchased:(long long)arg1 tillDate:(id*)arg2 {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// REMOVED: FCInAppPurchaseServiceFreemium (class gone from binary, replaced by SK2)
|
||||||
|
|
||||||
|
// SK2 IAP backend
|
||||||
|
%hook _TtC6infuse31InAppPurchaseServiceFreemiumSK2
|
||||||
|
- (bool)isFeaturePurchased:(long long)arg1 tillDate:(id*)arg2 {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
- (long long)iapVersionStatus {
|
||||||
|
// FCUpgradeToProViewController.featureHasBought checks iapVersionStatus > 0
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook FCProductCollectionCell
|
||||||
|
-(bool) featurePurchased {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// REMOVED: FCTraktIAPManager (class gone from binary)
|
||||||
|
|
||||||
|
%hook FCUpgradeToProViewController
|
||||||
|
-(bool) featureHasBought {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Add credits
|
||||||
|
@interface FCVersionView : UIView
|
||||||
|
@property (nonatomic, strong) UILabel *label;
|
||||||
|
@end
|
||||||
|
|
||||||
|
%hook FCVersionView
|
||||||
|
- (void)awakeFromNib {
|
||||||
|
%orig;
|
||||||
|
UILabel *label = (UILabel *)[self valueForKey:@"label"];
|
||||||
|
if ([label.text containsString:@"Infuse Pro"] && ![label.text hasPrefix:@"Infuse Team •"]) {
|
||||||
|
label.text = [NSString stringWithFormat:@"Infuse Team • %@", label.text];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// iOS 16 Crash Fix
|
||||||
|
%hook CKContainer
|
||||||
|
+ (id)defaultContainer {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
+ (id)containerWithIdentifier:(id)arg1 {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
%end
|
||||||
10
Infuse/Infuse-iOS/control
Normal file
10
Infuse/Infuse-iOS/control
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Package: io.infuseteam.infuserootless
|
||||||
|
Name: Infuse (Rootless)
|
||||||
|
Version: 2.0
|
||||||
|
Architecture: iphoneos-arm
|
||||||
|
Description: Unlock the full potential of Infuse
|
||||||
|
Maintainer: Infuse Team
|
||||||
|
Author: Infuse Team
|
||||||
|
Section: Tweaks
|
||||||
|
Depends: firmware (>= 18.3)
|
||||||
|
Conflicts: io.infuseteam.infuse, io.infuseteam.infuseroothide, io.infuseteam.infuselegacy, xyz.eshaydev.ignition, com.ippteam.infuse, com.strejda603.infuse6pro, xyz.eshaydev.infuse
|
||||||
26
Infuse/Infuse-iOS/index.md
Normal file
26
Infuse/Infuse-iOS/index.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# Infuse (iOS)
|
||||||
|
|
||||||
|
Unlock the full potential of Infuse.
|
||||||
|
|
||||||
|
- **App**: [Infuse](https://apps.apple.com/fr/app/infuse/id1136220934)
|
||||||
|
- **Tested version**: 8.4.2
|
||||||
|
- **Target**: iOS 18+ (tested on iOS 18.7.1 using LiveContainer)
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
```sh
|
||||||
|
make package FINALPACKAGE=1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Inject
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cyan -i infuse-8.4.2.ipa \
|
||||||
|
-o infuse-8.4.2_patched.ipa \
|
||||||
|
-f io.infuseteam.infuserootless_2.0_iphoneos-arm.deb \
|
||||||
|
-u
|
||||||
|
```
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|
|
||||||
|

|
||||||
3
Infuse/Infuse-tvOS/.gitignore
vendored
Normal file
3
Infuse/Infuse-tvOS/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.theos/
|
||||||
|
packages/
|
||||||
|
.DS_Store
|
||||||
7
Infuse/Infuse-tvOS/Infuse.plist
Normal file
7
Infuse/Infuse-tvOS/Infuse.plist
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
Filter = {
|
||||||
|
Bundles = (
|
||||||
|
"com.firecore.infuse",
|
||||||
|
);
|
||||||
|
};
|
||||||
|
}
|
||||||
17
Infuse/Infuse-tvOS/Makefile
Normal file
17
Infuse/Infuse-tvOS/Makefile
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
TARGET = appletv:latest:18.3
|
||||||
|
ARCHS = arm64
|
||||||
|
INSTALL_TARGET_PROCESSES = infuse
|
||||||
|
THEOS_PACKAGE_SCHEME = rootless
|
||||||
|
|
||||||
|
include $(THEOS)/makefiles/common.mk
|
||||||
|
|
||||||
|
TWEAK_NAME = Infuse
|
||||||
|
|
||||||
|
Infuse_FILES = Tweak.x
|
||||||
|
Infuse_CFLAGS = -fobjc-arc
|
||||||
|
Infuse_FRAMEWORKS = Foundation UIKit
|
||||||
|
|
||||||
|
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||||
|
test-print:
|
||||||
|
@echo "ARCH is $(THEOS_PACKAGE_ARCH)"
|
||||||
|
@echo "CONTROL is $(_THEOS_DEB_PACKAGE_CONTROL_PATH)"
|
||||||
81
Infuse/Infuse-tvOS/Tweak.x
Normal file
81
Infuse/Infuse-tvOS/Tweak.x
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
// changes : FCInAppPurchaseServiceFreemium block deleted, FCTraktIAPManager block deleted, layoutSubviews -> awakeFromNib on FCVersionView, and the dead return %orig lines after return statements cleaned up (they were unreachable in the old version too)
|
||||||
|
|
||||||
|
#import <substrate.h>
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
%hook FCIAPGUIHelper
|
||||||
|
+(bool) isProAvailable {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
+(bool) isSubscriptionBought {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook FCInAppPurchaseServiceBase
|
||||||
|
- (bool)isFeaturePurchased:(long long)arg1 tillDate:(id*)arg2 {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
- (bool)isFeaturePurchased:(long long)arg1 {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook FCInAppPurchaseServiceDummy
|
||||||
|
- (bool)isFeaturePurchased:(long long)arg1 tillDate:(id*)arg2 {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// REMOVED: FCInAppPurchaseServiceFreemium (class gone from binary, replaced by SK2)
|
||||||
|
|
||||||
|
// SK2 IAP backend
|
||||||
|
%hook _TtC6infuse31InAppPurchaseServiceFreemiumSK2
|
||||||
|
- (bool)isFeaturePurchased:(long long)arg1 tillDate:(id*)arg2 {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
- (long long)iapVersionStatus {
|
||||||
|
// FCUpgradeToProViewController.featureHasBought checks iapVersionStatus > 0
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
%hook FCProductCollectionCell
|
||||||
|
-(bool) featurePurchased {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// REMOVED: FCTraktIAPManager (class gone from binary)
|
||||||
|
|
||||||
|
%hook FCUpgradeToProViewController
|
||||||
|
-(bool) featureHasBought {
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// Add credits
|
||||||
|
@interface FCVersionView : UIView
|
||||||
|
@property (nonatomic, strong) UILabel *label;
|
||||||
|
@end
|
||||||
|
|
||||||
|
%hook FCVersionView
|
||||||
|
- (void)awakeFromNib {
|
||||||
|
%orig;
|
||||||
|
UILabel *label = (UILabel *)[self valueForKey:@"label"];
|
||||||
|
if ([label.text containsString:@"Infuse Pro"] && ![label.text hasPrefix:@"Infuse Team •"]) {
|
||||||
|
label.text = [NSString stringWithFormat:@"Infuse Team • %@", label.text];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
// iOS 16 Crash Fix
|
||||||
|
%hook CKContainer
|
||||||
|
+ (id)defaultContainer {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
+ (id)containerWithIdentifier:(id)arg1 {
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
%end
|
||||||
10
Infuse/Infuse-tvOS/control
Normal file
10
Infuse/Infuse-tvOS/control
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Package: io.infuseteam.infuserootless
|
||||||
|
Name: Infuse (Rootless)
|
||||||
|
Version: 2.0
|
||||||
|
Architecture: appletvos-arm64
|
||||||
|
Description: Unlock the full potential of Infuse
|
||||||
|
Maintainer: Infuse Team
|
||||||
|
Author: Infuse Team
|
||||||
|
Section: Tweaks
|
||||||
|
Depends: firmware
|
||||||
|
Conflicts: io.infuseteam.infuse, io.infuseteam.infuseroothide, io.infuseteam.infuselegacy, xyz.eshaydev.ignition, com.ippteam.infuse, com.strejda603.infuse6pro, xyz.eshaydev.infuse
|
||||||
26
Infuse/Infuse-tvOS/index.md
Normal file
26
Infuse/Infuse-tvOS/index.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# Infuse tvOS
|
||||||
|
|
||||||
|
Unlock pro features in Infuse.
|
||||||
|
|
||||||
|
- **App**: [Infuse](https://apps.apple.com/fr/app/infuse/id1136220934)
|
||||||
|
- **Tested version**: 8.2.4
|
||||||
|
- **Target**: tvOS 18.3 (tested on tvOS 18.3)
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
```sh
|
||||||
|
make package FINALPACKAGE=1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Inject
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cyan -i infuse-8.2.4.ipa \
|
||||||
|
-o infuse-8.2.4_patched.ipa \
|
||||||
|
-f io.infuseteam.infuserootless_2.0_tvos-arm64.deb \
|
||||||
|
-u
|
||||||
|
```
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|
|
||||||
|

|
||||||
@@ -11,6 +11,8 @@ iOS tweaks built with [Theos](https://theos.dev), injected into IPAs via [cyan](
|
|||||||
| [TextasticPro](TextasticPro/index.md) | Textastic 10.9.2 | iOS 18+ |
|
| [TextasticPro](TextasticPro/index.md) | Textastic 10.9.2 | iOS 18+ |
|
||||||
| [BusinessJB](BusinessJB/index.md) | Business 2.3.000 | iOS 15 |
|
| [BusinessJB](BusinessJB/index.md) | Business 2.3.000 | iOS 15 |
|
||||||
| [CreditAgricoleJB](CreditAgricoleJB/index.md) | Ma Banque 47.0.0 | iOS 15.8.6 |
|
| [CreditAgricoleJB](CreditAgricoleJB/index.md) | Ma Banque 47.0.0 | iOS 15.8.6 |
|
||||||
|
| [Infuse](Infuse/Infuse-tvOS/index.md) | Infuse 8.2.4 | tvOS 18.3 |
|
||||||
|
| [Infuse (iOS)](Infuse/Infuse-iOS/index.md) | Infuse 8.4.2 | iOS 18+ |
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
|
|||||||
BIN
docs/screens/Infuse/mobile.png
Normal file
BIN
docs/screens/Infuse/mobile.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 232 KiB |
BIN
docs/screens/Infuse/settings.png
Normal file
BIN
docs/screens/Infuse/settings.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Reference in New Issue
Block a user