Skip to content

iDrive Backup Format Specification

Chris Read edited this page Nov 24, 2020 · 9 revisions

Backup versions

As of writing this page, only a single version of the iDrive backup has been observed. This version has been tagged by iDrive as:

  • NBTV2

This documentation has a 100% byte coverage of the files encountered in this version of the backup.

Folder hierarchy

The base structure of the backups dictates that the following folders and files are mandatory (according to NBTV2)

BMWData (folder)
+ BMWBackup.ver (file)
+ Music (folder)
  + data_1 (file)
  + data_1_count (file)
  + info (file)

The Music folder contains a list of USB drive names that the iDrive system has collected over time. They will appear like USB1 and USB or sometimes the actual name of the drive if it was set, like LaCie.

Playlists are stored in the system in a folder called _Playlists at the Music folder level. This folder typically contains .BMWP extension files. The playlist section below details the contents of each file.

Metadata formats

There are several files that are important for a backup to be recognised as a backup. In the root folder there is a single file called BMWBackup.ver that contains the version string of the backup itself. In our case, the string is NBTV2 with no carriage return or line feed following.

In the Music folder there are three files.

data_1

This file contains a list of all the USB drives that the iDrive system has seen over a period of time. The file contains a mount-point, name of the drive, a UNIX timestamp of the last time the drive was imported and the number of times the drive has been imported. The values are tab separated.

/USB1/	USB1	1606189131	1
/USB2/	USB2	1606189174	1
/USB3/	USB3	1606189195	1

Lines are ended with just a carriage return with the exception of the last line.

data_1_count

This file contains a count of the number of drives listed in the data_1 file. In the the previous section, the associated data_1_count file would contain just the number 3 with no carriage return following.

info

This is the file that contains the most information about the backup itself. There are 6 lines in total. These may vary in different versions of the backups, but this is what has been observed in version NBTV2. All lines with the exception of the last line end with carriage returns.

  • Line 1: A blank line containing just a carriage return (we have only observed a blank line so far in our backups)
  • Line 2: A file count of all files in the backup that have a file extension beginning with .BR
  • Line 3: A sum of all the character code values found in the data_1 file (more on this below)
  • Line 4: A byte sum of all the files in the backup that have a file extension beginning with .BR
  • Line 5: The date that the backup was made in the format YYYY-MM-DD HH:MM:SS like 2020-11-24 13:47:20
  • Line 5: The version number of the iDrive software used to make the backup, like NBTevo_E15413A

Line 3 - data_1 character code sum

Each character 8-bit ordinal value in the data_1 file is added together and placed in line 3. Values include all white-space characters too.

Playlists

Playlists are simple lists of media files using the drive names as the prefix of each path. Path dividers are in UNIX format. Paths are defined from the Music folder downwards.

/USB1/CAKE - Pressure Chief/01 - CAKE - Wheels.mp3
/USB1/CAKE - Pressure Chief/02 - CAKE - No Phone.mp3
/USB1/CAKE - Pressure Chief/03 - CAKE - Take It All Away.mp3
/USB1/CAKE - Pressure Chief/04 - CAKE - Dime.mp3
/USB1/CAKE - Pressure Chief/05 - CAKE - Carbon Monoxide.mp3
/USB1/CAKE - Pressure Chief/06 - CAKE - The Guitar Man.mp3
/USB1/CAKE - Pressure Chief/07 - CAKE - Waiting.mp3
/USB1/CAKE - Pressure Chief/08 - CAKE - Baskets.mp3
/USB1/CAKE - Pressure Chief/09 - CAKE - End of the Movie.mp3
/USB1/CAKE - Pressure Chief/10 - CAKE - Palm of Your Hand.mp3
/USB1/CAKE - Pressure Chief/11 - CAKE - Tougher Than It Is.mp3

DRM implementation

To call this DRM is being generous. The format of the DRM'd files really consists of a bit inversion of either the entire file or just the first 217 bytes (131,072 bytes). The choice of files that this applies to seems to meet the requirement of where it will prevent playback in a music player. The list of file types, their DRM'd extensions (there seem to be older extensions and newer extensions for some files) and if the file is completely inverted or only partially is:

  • MP3 - BR4, BR28 - Full inversion
  • MP4 - BR3, BR27 - Partial inversion
  • WMA - BR5, BR29 - Partial inversion
  • AAC - BR25 - Full inversion
  • FLAC - BR48 - Partial inversion
  • BMWP - BR30 - Full inversion
  • JPG - BR67 - Full inversion

Trailing un-converted bytes

For files that are fully inverted, some of the bytes at the end of the file are left un-touched. The inversion process only inverts bytes up to the nearest byte count factor of 4 and then leaves the last 1 to 3 bytes un-converted.

So if the file is 22 bytes long, only the first 20 bytes are inverted and the last 2 bytes remain the same. However a file with 24 bytes is fully inverted.