mirror of
https://github.com/NinjaCheetah/WiiPy.git
synced 2026-03-10 12:08:00 -04:00
Compare commits
3 Commits
v1.5.0
...
935f5eb7df
| Author | SHA1 | Date | |
|---|---|---|---|
|
935f5eb7df
|
|||
|
dfb527388c
|
|||
|
46784f126e
|
@@ -78,7 +78,8 @@ def handle_emunand_info(args):
|
||||
else:
|
||||
print(f" IOS{int(ios[-2:], 16)} ({ios.upper()})")
|
||||
tmd = emunand.get_title_tmd(ios)
|
||||
print(f" Version: {tmd.title_version} ({tmd.title_version_converted})")
|
||||
print(f" Version: {tmd.title_version} "
|
||||
f"({libWiiPy.title.title_ver_dec_to_standard(tmd.title_version, tmd.title_id, bool(tmd.vwii))})")
|
||||
print("")
|
||||
|
||||
print(f"Installed Titles:")
|
||||
@@ -180,8 +181,13 @@ def handle_emunand_install_missing(args):
|
||||
print(f"\nAll missing IOSes have been installed!")
|
||||
|
||||
|
||||
def _emunand_logger(log):
|
||||
print(log)
|
||||
|
||||
|
||||
def handle_emunand_title(args):
|
||||
emunand = libWiiPy.nand.EmuNAND(args.emunand)
|
||||
logger = _emunand_logger if args.verbose else lambda _: None
|
||||
emunand = libWiiPy.nand.EmuNAND(args.emunand, logger)
|
||||
if args.skip_hash:
|
||||
skip_hash = True
|
||||
else:
|
||||
|
||||
@@ -22,11 +22,12 @@ def _print_tmd_info(tmd: libWiiPy.title.TMD, signing_cert=None):
|
||||
else:
|
||||
print(f" Title ID: {tmd.title_id.upper()}")
|
||||
# This type of version number really only applies to the System Menu and IOS.
|
||||
title_version_converted = libWiiPy.title.title_ver_dec_to_standard(tmd.title_version, tmd.title_id, bool(tmd.vwii))
|
||||
if tmd.title_id.startswith("00000001"):
|
||||
if tmd.title_id == "0000000100000001":
|
||||
print(f" Title Version: {tmd.title_version} (boot2v{tmd.title_version})")
|
||||
else:
|
||||
print(f" Title Version: {tmd.title_version} ({tmd.title_version_converted})")
|
||||
print(f" Title Version: {tmd.title_version} ({title_version_converted})")
|
||||
else:
|
||||
print(f" Title Version: {tmd.title_version}")
|
||||
print(f" TMD Version: {tmd.tmd_version}")
|
||||
@@ -52,7 +53,7 @@ def _print_tmd_info(tmd: libWiiPy.title.TMD, signing_cert=None):
|
||||
else:
|
||||
print(f" Certificate Info: {tmd.signature_issuer} (Unknown)")
|
||||
if tmd.title_id == "0000000100000002":
|
||||
match tmd.title_version_converted[-1:]:
|
||||
match title_version_converted[-1:]:
|
||||
case "U":
|
||||
region = "USA"
|
||||
case "E":
|
||||
@@ -106,14 +107,14 @@ def _print_ticket_info(ticket: libWiiPy.title.Ticket, signing_cert=None):
|
||||
print(f"Ticket Info")
|
||||
ascii_tid = ""
|
||||
try:
|
||||
ascii_tid = str(bytes.fromhex(ticket.title_id.decode()[8:].replace("00", "30")).decode("ascii"))
|
||||
ascii_tid = str(bytes.fromhex(binascii.hexlify(ticket.title_id).decode()[8:].replace("00", "30")).decode("ascii"))
|
||||
except UnicodeDecodeError or binascii.Error:
|
||||
pass
|
||||
pattern = r"^[a-z0-9!@#$%^&*]{4}$"
|
||||
if re.fullmatch(pattern, ascii_tid, re.IGNORECASE):
|
||||
print(f" Title ID: {ticket.title_id.decode().upper()} ({ascii_tid})")
|
||||
print(f" Title ID: {binascii.hexlify(ticket.title_id).decode().upper()} ({ascii_tid})")
|
||||
else:
|
||||
print(f" Title ID: {ticket.title_id.decode().upper()}")
|
||||
print(f" Title ID: {binascii.hexlify(ticket.title_id).decode().upper()}")
|
||||
# This type of version number really only applies to the System Menu and IOS.
|
||||
if ticket.title_id.decode().startswith("00000001"):
|
||||
if ticket.title_id.decode() == "0000000100000001":
|
||||
|
||||
4
wiipy.py
4
wiipy.py
@@ -18,7 +18,7 @@ from commands.title.nus import *
|
||||
from commands.title.tmd import *
|
||||
from commands.title.wad import *
|
||||
|
||||
wiipy_ver = "1.5.0"
|
||||
wiipy_ver = "1.5.1"
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Main argument parser.
|
||||
@@ -111,6 +111,8 @@ if __name__ == "__main__":
|
||||
"accepts a WAD file to read the TID from)")
|
||||
emunand_title_parser.add_argument("-s", "--skip-hash", help="skips validating the hashes of decrypted "
|
||||
"content (install only)", action="store_true")
|
||||
emunand_title_parser.add_argument("-v", "--verbose", action="store_true",
|
||||
help="show verbose installation/uninstallation details")
|
||||
|
||||
# Argument parser for the fakesign subcommand.
|
||||
fakesign_parser = subparsers.add_parser("fakesign", help="fakesign a TMD, Ticket, or WAD (trucha bug)",
|
||||
|
||||
Reference in New Issue
Block a user