diff --git a/README.md b/README.md index 4c8ffce..cf7a74f 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,11 @@ iOS tweaks built with [Theos](https://theos.dev), injected into IPAs via [cyan]( ## Tweaks -| Tweak | App | Target | -| ----------------------------------------------- | ---------------- | ------- | -| [ServerCatPremium](ServerCatPremium/index.md) | ServerCat 1.30.0 | iOS 17+ | +| Tweak | App | Target | +| ------------------------------------------------------- | ---------------- | ------- | +| [ServerCatPremium](ServerCatPremium/index.md) | ServerCat 1.30.0 | iOS 17+ | | [ServerCatPremium (legacy)](ServerCatPremium_/index.md) | ServerCat 1.6.4 | iOS 15 | +| [TextasticPro](TextasticPro/index.md) | Textastic 10.9.2 | iOS 18+ | ## Build diff --git a/ServerCatPremium/Tweak.x b/ServerCatPremium/Tweak.x index 2b2e2a6..ffefe43 100644 --- a/ServerCatPremium/Tweak.x +++ b/ServerCatPremium/Tweak.x @@ -28,13 +28,10 @@ static int hook_isPremiumActive(void) { // iOS 16 Crash Fix %hook CKContainer - + (id)defaultContainer { return nil; } - -+ (id)containerWithIdentifier:(id)__unused arg1 { ++ (id)containerWithIdentifier:(id) arg1 { return nil; } - %end \ No newline at end of file diff --git a/TextasticPro/.gitignore b/TextasticPro/.gitignore new file mode 100644 index 0000000..faf8687 --- /dev/null +++ b/TextasticPro/.gitignore @@ -0,0 +1,3 @@ +.theos/ +packages/ +.DS_Store diff --git a/TextasticPro/Makefile b/TextasticPro/Makefile new file mode 100644 index 0000000..8dd847c --- /dev/null +++ b/TextasticPro/Makefile @@ -0,0 +1,13 @@ +TARGET = iphone:latest:14.0 +INSTALL_TARGET_PROCESSES = Textastic +ARCHS = arm64 arm64e + +include $(THEOS)/makefiles/common.mk + +TWEAK_NAME = TextasticPro + +TextasticPro_FILES = Tweak.x +TextasticPro_CFLAGS = -fobjc-arc +TextasticPro_FRAMEWORKS = Foundation + +include $(THEOS_MAKE_PATH)/tweak.mk diff --git a/TextasticPro/TextasticPro.plist b/TextasticPro/TextasticPro.plist new file mode 100644 index 0000000..54fc29e --- /dev/null +++ b/TextasticPro/TextasticPro.plist @@ -0,0 +1,7 @@ +{ + Filter = { + Bundles = ( + "com.textasticapp.textastic-universal", + ); + }; +} \ No newline at end of file diff --git a/TextasticPro/Tweak.x b/TextasticPro/Tweak.x new file mode 100644 index 0000000..e7e7b12 --- /dev/null +++ b/TextasticPro/Tweak.x @@ -0,0 +1,32 @@ +#import +#import +#import +#import + +%hook TextasticStore +- (bool)textasticProActive { + return TRUE; +} +- (bool)isVPPReceipt { + return FALSE; +} +- (bool)isLegacyPurchase { + return TRUE; +} +- (bool)isLegacyPurchaseOrProActive { + return TRUE; +} +- (bool)isLegacyPurchaseOrProActiveOrTestFlight { + return TRUE; +} +%end + +// iOS 16 Crash Fix +%hook CKContainer ++ (id)defaultContainer { + return nil; +} ++ (id)containerWithIdentifier:(id) arg1 { + return nil; +} +%end \ No newline at end of file diff --git a/TextasticPro/control b/TextasticPro/control new file mode 100644 index 0000000..b1a8325 --- /dev/null +++ b/TextasticPro/control @@ -0,0 +1,9 @@ +Package: xyz.nohamr.textasticpro +Name: TextasticPro +Version: 1.0.0 +Architecture: iphoneos-arm +Description: Unlocks premium features in Textastic app. +Maintainer: NohamR +Author: NohamR +Section: Tweaks +Depends: mobilesubstrate (>= 0.9.5000) diff --git a/TextasticPro/index.md b/TextasticPro/index.md new file mode 100644 index 0000000..ea68c4e --- /dev/null +++ b/TextasticPro/index.md @@ -0,0 +1,28 @@ +# TextasticPro + +Unlocks premium features in Textastic. + +- **App**: [Textastic](https://apps.apple.com/fr/app/textastic/id572491815?l=en-GB&mt=12) +- **Tested on**: Textastic 10.9.2, iOS iOS 18.3 + +## Build + +```sh +make clean && make package THEOS_PACKAGE_SCHEME=rootless DEBUG=0 +``` + +## Inject + +```sh +cyan -i com.textasticapp.textastic-universal-10.9.2.ipa \ + -o com.textasticapp.textastic-universal-10.9.2_patched.ipa \ + -f xxyz.nohamr.textasticpro_1.0.0-1_iphoneos-arm64.deb \ + -u +``` + +## Screenshots + +![../docs/screens/TextasticPro/pro.png](../docs/screens/TextasticPro/pro.png) +![../docs/screens/TextasticPro/search.png](../docs/screens/TextasticPro/search.png) +![../docs/screens/TextasticPro/shh1.png](../docs/screens/TextasticPro/ssh1.png) +![../docs/screens/TextasticPro/ssh2.png](../docs/screens/TextasticPro/ssh2.png) \ No newline at end of file diff --git a/docs/screens/TextasticPro/pro.png b/docs/screens/TextasticPro/pro.png new file mode 100644 index 0000000..0a64170 Binary files /dev/null and b/docs/screens/TextasticPro/pro.png differ diff --git a/docs/screens/TextasticPro/search.png b/docs/screens/TextasticPro/search.png new file mode 100644 index 0000000..2c02ab9 Binary files /dev/null and b/docs/screens/TextasticPro/search.png differ diff --git a/docs/screens/TextasticPro/shh1.png b/docs/screens/TextasticPro/shh1.png new file mode 100644 index 0000000..ba5877e Binary files /dev/null and b/docs/screens/TextasticPro/shh1.png differ diff --git a/docs/screens/TextasticPro/ssh2.png b/docs/screens/TextasticPro/ssh2.png new file mode 100644 index 0000000..c7fad98 Binary files /dev/null and b/docs/screens/TextasticPro/ssh2.png differ