From 5af58eda88bb3040db628fca9c34804a930026bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=88=9A=28noham=29=C2=B2?= <100566912+NohamR@users.noreply.github.com> Date: Thu, 28 May 2026 19:17:56 +0200 Subject: [PATCH] Fix appPath (resolved decryption issue on tvOS 26.5), update README for tvOS --- README.md | 8 +++++--- TDDumpDecrypted.m | 3 +++ TDRootViewController.m | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ffdc4be..1cf0349 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # TrollDecrypt -iOS IPA Decrypter for TrollStore +tvOS IPA Decrypter for TrollStore ## How to use -1. Download and install TrollDecrypt from [here](https://github.com/donato-fiore/TrollDecrypt/releases) +1. Download and install TrollDecrypt from [here](https://github.com/NohamR/TrollDecrypt-tvOS/releases) 2. Choose app you want to decrypt. 3. Once finished decrypting, you can get the `.ipa` file from inside the app. @@ -10,12 +10,14 @@ iOS IPA Decrypter for TrollStore 1. Install [theos](https://theos.dev/docs/installation) 2. Run the commands below ``` -git clone https://github.com/donato-fiore/TrollDecrypt.git +git clone https://github.com/NohamR/TrollDecrypt-tvOS.git cd TrollDecrypt make package ``` ## Credits / Thanks +- [TrollDecrypt-tvOS](https://github.com/straight-tamago/TrollDecrypt-tvOS) by straight-tamago for the original tvOS version of TrollDecrypt +- [TrollDecrypt](https://github.com/donato-fiore/TrollDecrypt) by donato-fiore for the original version of TrollDecrypt - [TrollDecryptor](https://github.com/wh1te4ever/TrollDecryptor) by wh1te4ever - [dumpdecrypted](https://github.com/stefanesser/dumpdecrypted) by Stefan Esser - [bfdecrypt](https://github.com/BishopFox/bfdecrypt) by BishopFox diff --git a/TDDumpDecrypted.m b/TDDumpDecrypted.m index 9629254..f274d44 100644 --- a/TDDumpDecrypted.m +++ b/TDDumpDecrypted.m @@ -524,6 +524,9 @@ int find_off_cryptid(const char *filePath) { uint32_t numberOfImages = infos->infoArrayCount; mach_vm_address_t imageAddress = 0; const char *appPath = [[self appPath] UTF8String]; + if(strstr(appPath, "/private") == appPath) { + appPath += 8; + } NSLog(@"[trolldecrypt] There are %d images mapped.", numberOfImages); diff --git a/TDRootViewController.m b/TDRootViewController.m index 346a298..80af4c2 100644 --- a/TDRootViewController.m +++ b/TDRootViewController.m @@ -52,7 +52,7 @@ } - (void)about:(id)sender { - UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"TrollDecrypt" message:@"by fiore\nIcon by @super.user\nbfdecrypt by @bishopfox\ndumpdecrypted by @i0n1c\nUpdated for TrollStore by @wh1te4ever\nPorting to tvOS by @straight-tamago" preferredStyle:UIAlertControllerStyleAlert]; + UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"TrollDecrypt" message:@"by fiore\nIcon by @super.user\nbfdecrypt by @bishopfox\ndumpdecrypted by @i0n1c\nUpdated for TrollStore by @wh1te4ever\nPorting to tvOS by @straight-tamago\nFixed by NohamR" preferredStyle:UIAlertControllerStyleAlert]; [alert addAction:[UIAlertAction actionWithTitle:@"Dismiss" style:UIAlertActionStyleCancel handler:nil]]; [self presentViewController:alert animated:YES completion:nil]; }