Skip to content

Commit

Permalink
chore: add support for .tipa
Browse files Browse the repository at this point in the history
  • Loading branch information
asdfzxcvbn committed Oct 15, 2024
1 parent 4e05892 commit 5f37ab3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
4 changes: 1 addition & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ you can open an issue to request a feature :D !! also see my [recommended flags]
- remove UISupportedDevices
- remove watch app
- change the app icon
- fakesign the output ipa/app
- fakesign the output ipa/tipa/app
- add custom entitlements to the main executable
- thin all binaries to arm64, it can LARGELY reduce app size sometimes!
- remove all app extensions (or just encrypted ones!)
Expand Down Expand Up @@ -48,8 +48,6 @@ the `zip` and `unzip` commands are *optional* dependencies, they may [fix issues
</ol>
</details>

note: if you installed cyan before v1.1.3 using `pip`, make sure you `pip uninstall cyan`, then verify you have the latest version with `cyan --version`

## making cyan files

cyan comes bundled with the `cgen` command, which lets you generate `.cyan` files to pass to `-z`/`--cyan` !
Expand Down
13 changes: 9 additions & 4 deletions cyan/logic.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,12 @@ def main(parser: ArgumentParser) -> None:

if args.output is not None:
args.o = os.path.normpath(args.output)
if not (args.o.endswith(".app") or args.o.endswith(".ipa")):
print("[?] output's file extension not specified; will create ipa")
if not (
args.o.endswith(".app")
or args.o.endswith(".ipa")
or args.o.endswith(".tipa")
):
print("[?] valid file extension not found; will create ipa")
args.o += ".ipa"
else:
args.o = args.i
Expand All @@ -25,8 +29,9 @@ def main(parser: ArgumentParser) -> None:
if arg_err is not None:
parser.error(arg_err)

INPUT_IS_IPA = True if args.i.endswith(".ipa") else False
OUTPUT_IS_IPA = True if args.o.endswith(".ipa") else False
# mfw when "True if True else False" HAHAHAH
INPUT_IS_IPA = args.i.endswith(".ipa") or args.i.endswith(".tipa")
OUTPUT_IS_IPA = args.o.endswith(".ipa") or args.o.endswith(".tipa")

with TemporaryDirectory() as tmpdir, tbhtypes.LeavingCM():
app_path = tbhutils.get_app(args.i, tmpdir, INPUT_IS_IPA)
Expand Down
7 changes: 4 additions & 3 deletions cyan/tbhutils.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@

def validate_inputs(args: Namespace) -> Optional[str]:
if not (
args.i.endswith(".ipa")
or args.i.endswith(".app")
args.i.endswith(".app")
or args.i.endswith(".ipa")
or args.i.endswith(".tipa")
):
return "the input file must be an ipa/app"
return "the input file must be an ipa/tipa/app"

if not os.path.exists(args.i):
return f"{args.i} does not exist"
Expand Down

0 comments on commit 5f37ab3

Please sign in to comment.