mktiupgrade - Build Texas Instruments calculator OS upgrades from ROM dumps
Linux, Mac, etc.:
$ make
# make install # as root
Windows
Install cygwin with scdoc, gcc, and make. Then, follow the Linux instructions.
'mktiupgrade' [options] infile outfile [pages...]
Builds (and optionally signs) upgrade files to be sent to TI calculators from ROM dumps. infile should be a ROM dump with the OS, and outfile is the 73u, 8xu, or 8cu file to write the resulting upgrade to. Each page (specified in hexadecimal) will be extracted from the ROM dump and included with the upgrade. Additional pages may be automatically included if needed.
-d, --device :: Specifies the target device type. If omitted, it will be inferred by the size of the ROM dump. The following options are valid:
* TI-73
* TI-83+
* TI-83+SE
* TI-84+
* TI-84+SE
* TI-84+CSE
-k, --key :: Specify the key file to sign the upgrade with. If omitted (and -s is not specified), the upgrade will be unsigned.
-n, --key-name :: Specify the name of the key, to be written to the OS header, in hexadecimal. If not included, it will be inferred from the key file name (i.e. "0A.key"). Specify this option after the key file.
-p, --print:: Prints information about the upgrade before writing it.
-r, --hw-revision :: Specify the maximum hardware revision. The default is 5.
-s, --signature :: Instead of calculating the signature while writing the upgrade file, instead use this signature file. This option overrides -k. You should specify -n manually. The default value is 0A if you choose not to.
-v, --version :: The upgrade version, in the format "major.minor". Each part can be between 0 and 255, inclusive. The default is "1.0".
The following Texas Instruments calculators are supported:
- TI-73
- TI-83+
- TI-83+ Silver Edition
- TI-84+
- TI-84+ Silver Edition
- TI-84+ Color Silver Edition
The Texas Instruments cryptographic signing keys may be found at http://brandonw.net/calculators/keys/. These keys do not work on all calculators, and you may need to use an additional exploit to load your operating system on newer models. An example of this process can be found in KnightOS, availble at https://github.com/KnightOS/KnightOS.
mktiupgrade input.rom output.8xu 00 01 02 03 4F:: Makes an upgrade from pages 00-03 and 4F of input.rom, then writes it to output.8xu, unsigned.
mktiupgrade -k 0A.key -v 2.3 input.rom output.8xu 00 01 02 03 4F:: Builds and signs an upgrade with the 0A key, and marks it as version "2.3".
mktiupgrade -s exploit.sig -n 0F input.rom output.8cu 00 01 02 03:: Builds an upgrade and uses the contents of exploit.sig as the signature, and indicates that the key is the 0F key. The result is written to output.8cu.
Maintained by Drew DeVault sir@cmpwn.com, who is assisted by other open source contributors. For more information about mktiupgrade development, see https://github.com/KnightOS/mktiupgrade.
If you need help with KnightOS, want to keep up with progress, chat with developers, or ask any other questions about KnightOS, you can hang out in the IRC channel: #knightos on irc.libera.chat.
To report bugs, please create a GitHub issue or contact us on IRC.
If you'd like to contribute to the project, please see the contribution guidelines.