XADMaster icon indicating copy to clipboard operation
XADMaster copied to clipboard

Wanted: support for Mac OS 7/8/9 installer "tome" file

Open ci-macpaw opened this issue 8 years ago • 9 comments

Jason Duerstock (evilmoo):

There was an archive format used by the Mac OS installer before OS X known as a "tome". The majority of tomes I've come across are There are still copies of the Installer SDK available and there is a packer and unpacker utility therein. What is the best way to go about analyzing this file format and adding support for it to The Unarchiver?

ci-macpaw avatar Jan 09 '17 19:01 ci-macpaw

Jason Duerstock (evilmoo):

I have the Installer SDK (the code is known as "InstaCompOne") and I disassembled the m68k version of the decompressor. Would either of these help?

ci-macpaw avatar Feb 20 '17 13:02 ci-macpaw

Kevin Wojniak (kainjow):

I wrote some code several years ago that read the metadata from Tome files, but I wasn't able to get the decompression to work. Seems like it does use an Apple private library that appears to be long gone. I just uploaded the code if it helps anyone: https://github.com/kainjow/TomeViewerX

First time I ran the code in a while. Still worked with the attached files.

ci-macpaw avatar Feb 20 '17 05:02 ci-macpaw

Dag Ågren (DagAgren):

The more obscure formats I have usually tried to decipher partly by inspecting files in a hex editor to find the high-level file format, and then by disassembling unpacking tools to reverse engineer the algorithm. It is quite challenging but also fun work.

To add support for a format to The Unarchiver basically involves creating a XADArchiveParser subclass to read the file format, and a CSHandle subclass to handle the decompression.

ci-macpaw avatar Jan 12 '17 21:01 ci-macpaw

Jason Duerstock (evilmoo):

This .zip file contains several tome files that use some sort of compression algorithm. According to some bits in the installer, I think the compression algorithm is named "InstaCompOne".

ci-macpaw avatar Jan 10 '17 11:01 ci-macpaw

I think recent versions of Pacifist can extract tomes, but they're all in a flat directory.

MaddTheSane avatar Sep 13 '18 15:09 MaddTheSane

FYI, I just committed an initial Python implementation of the InstaCompOne decompressor, see https://github.com/maximumspatium/ResDecompress/blob/master/InstaCompOne.py

This implementation can be easily extended to decompress tomes as well. IIRC, the original algorithm is based on LZ77 and has two encoding modes: with or without Huffman coding.

maximumspatium avatar Dec 18 '18 00:12 maximumspatium

@maximumspatium Where one can find files compressed with InstaCompOne ?

PaulTaykalo avatar Dec 19 '18 18:12 PaulTaykalo

Where one can find files compressed with InstaCompOne

Mac OS 8/9 installation packages as well as System resources

maximumspatium avatar Dec 19 '18 20:12 maximumspatium

Someone has written a (seemingly incomplete) tome viewer here: https://github.com/kainjow/TomeViewerX

jduerstock avatar Oct 08 '22 00:10 jduerstock