Wiki > Main > CreativeMiniFS (compare)
Difference: CreativeMiniFS (r5 vs. r4)
This page describes the "minifs" file system used in many Creative devices. All this information has been obtained by reverse engineering and could contain errors.
This file system is typically used to store system files and can be updated by upgrading the device (the upgrade being an encrypted archive, it can actually contain any file). It is suspected that there are two versions of it, and only two sizes have been observed: 20MiB and 50MiB.
The file system is organised as follows:
The super block is located in first sector of the first block (block address 0) and contains some very important information on the file system.
Although the super block gives some flexibility on the layout on the system, Creative's code make a number of assumption:
Also note that block addresses in the chains are stored on a 16-bit integer, thus limiting the total number of blocks to 65536.
The second block (block address 0) of the system has unknown used. It is apparently untouched by Creative's code.
Starting from the third block (block address 2), follows as many chains as the maximum number of files. The fields of a chain are described below. A chain does not necessarily takes a whole block. The behaviour depends on the last field of the super block: if set to true, then each chain is rounded up to take an integer count of blocks. Otherwise, they can cross block boundaries.
It should be noted that there is some redundancy: the length field gives the number of blocks and the list is 0xffff terminated. Creative's code relies on the presence of this 0xffff which seems mandatory although it is unclear what happen when a files uses exactly all blocks of the chain ! The chain size is given by
The chain bitmap describes the empty/used chains. Each bit describe the state of a chain: 1 for used and 0 for free. Chain 0 corresponds to least significant bit of the first byte, and so on.
-- AmauryPouly - 02 Jun 2013
r5 - 29 Aug 2013 - 16:51:40 - AmauryPoulyRevision r5 - 29 Aug 2013 - 16:51 - AmauryPouly
Revision r4 - 04 Jun 2013 - 17:39 - AmauryPouly
Copyright © by the contributing authors.