From 304539b120f61c5207016ec78bf295295f61992f Mon Sep 17 00:00:00 2001 From: NinjaCheetah <58050615+NinjaCheetah@users.noreply.github.com> Date: Mon, 29 Jul 2024 17:18:24 -0400 Subject: [PATCH] Allow fakesigning a file in place via fakesign command WADs patched with iospatch are also now fakesigned by default when exported. --- modules/title/fakesign.py | 5 ++++- modules/title/iospatcher.py | 1 + wiipy.py | 5 +++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/title/fakesign.py b/modules/title/fakesign.py index a5f3b08..15b3879 100644 --- a/modules/title/fakesign.py +++ b/modules/title/fakesign.py @@ -7,7 +7,10 @@ import libWiiPy def handle_fakesign(args): input_path = pathlib.Path(args.input) - output_path = pathlib.Path(args.output) + if args.output is not None: + output_path = pathlib.Path(args.output) + else: + output_path = pathlib.Path(args.input) if not input_path.exists(): raise FileNotFoundError(input_path) diff --git a/modules/title/iospatcher.py b/modules/title/iospatcher.py index 9060502..63be8c5 100644 --- a/modules/title/iospatcher.py +++ b/modules/title/iospatcher.py @@ -93,6 +93,7 @@ def handle_iospatch(args): " compatible with this IOS.") if patch_count > 0 or args.version is not None or args.slot is not None: + ios_patcher.title.fakesign() # Signature is broken anyway, so fakesign for maximum installation openings if args.output is not None: output_path = pathlib.Path(args.output) output_file = open(output_path, "wb") diff --git a/wiipy.py b/wiipy.py index f581958..62fa348 100644 --- a/wiipy.py +++ b/wiipy.py @@ -52,10 +52,11 @@ if __name__ == "__main__": # Argument parser for the fakesign subcommand. fakesign_parser = subparsers.add_parser("fakesign", help="fakesign a TMD, Ticket, or WAD (trucha bug)", - description="fakesign a TMD, Ticket, or WAD (trucha bug)") + description="fakesign a TMD, Ticket, or WAD (trucha bug); by default, this " + "will overwrite the input file if no output file is specified") fakesign_parser.set_defaults(func=handle_fakesign) fakesign_parser.add_argument("input", metavar="IN", type=str, help="input file") - fakesign_parser.add_argument("output", metavar="OUT", type=str, help="output file") + fakesign_parser.add_argument("-o", "--output", metavar="OUT", type=str, help="output file (optional)") # Argument parser for the iospatch command. iospatch_parser = subparsers.add_parser("iospatch", help="patch IOS WADs to re-enable exploits",