Skip to main content

iDrive tools for packing and unpacking BMW backups

Project description

iDriveTools

Tools for managing BMW iDrive music backups. There are two tools included in this package.

This tool requires Python 3.7+

Installation

These utilities can be installed using pip. pip can be installed following the instruction here

pip install idrivetools

Eventually, this will have standalone executables for Windows and Mac. But for now, pip will also install on the same operating systems.

bmwunpack

This takes a BMW backup and converts everything to regular media files.

Typical arguments contain the source and destination folders.

Usage

bmwunpack BMWData unpacked

bmwpack

This is the opposite of bmwunpack in that it will take a hierarchy of folders and create a BMW backup that can be restored back into the iDrive system

Usage

bmwpack unpacked BMWData

bmwcreatenewbackup

This command is used to create an empty backup folder structure. This folder structure can be populated with media files and then packed later.

Usage

bmwcreatenewbackup new_backup

bmwconvert

This command takes a folder full of media files and converts it to a backup structure.

Usage

bmwconvert media_folder new_backup

Notes

A typical BMW backup has a single BMWData top folder, a Music sub-folder, USB drive name sub-folders below that and then the actual media files themselves.

There are several metadata files that are required by the backup. These files are calculated by bmwpack and added automatically. Without these metadata files, the backup will not be recognised by the iDrive system.

An example backup file structure.

BMWData
+ Music
  + USB1
    + Media folder 1
      + file1.mp3
      + file2.mp3
      + file3.mp3
      + ...
    + Media folder 2
      + file4.mp3
      + file5.mp3
      + ...
  + USB2
    + Media folder 1
      + file1.mp3
      + file2.mp3
      + file3.mp3
      + ...
    + Media folder 2
      + file4.mp3
      + file5.mp3
      + ...
  + data_1
  + data_1_count
  + info
+ BMWBackup.ver

There are several file types that are supported by this script. I suspect there are more file types that are supported by the iDrive system. These are the ones I have come across so far and their “encrypted” extensions:

Media files

  • MP3 (BR4, BR28)

  • MP4 (BR3, BR27)

  • AAC (BR25)

  • FLAC (BR48)

  • WMA (BR5, BR29)

  • JPG (BR67)

  • BMWP (BR30) - A playlist file

Playlist Support

The BMWP playlist file is a plain text file that contains a list of absolute paths located on the iDrive system itself. They start from the USB drive name going forwards with a UNIX file format name (forward slashes). They typically look like this:

/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

These can be edited to keep the same absolute path. They are included in the _Playlists folder.

How Do I Give Feedback

This code lives at this repo and there is a section at the top for reporting issues and giving feedback. I’m pretty friendly and keen on making this better, so make suggestions.

What’s Planned

There is scope here to provide some more functionality:

  • Generate playlists from folders

  • Generate an empty backup structure ready for filling

  • Better command line feedback, like a progress bar

  • An in-place editing mode, where you can edit files without having to unpack

  • Expose core functionality as modules/packages so it can integrated into other projects

  • Maybe some kind of GUI later down the track.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

idrivetools-0.1.28.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

idrivetools-0.1.28-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

Details for the file idrivetools-0.1.28.tar.gz.

File metadata

  • Download URL: idrivetools-0.1.28.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.8.5 Linux/5.4.0-54-generic

File hashes

Hashes for idrivetools-0.1.28.tar.gz
Algorithm Hash digest
SHA256 6ff3e2cade2320592e5314f842d31a05c833d28d46080c42b56f48a4f30d8d72
MD5 1aaec952ace07922179966a6b1b0464e
BLAKE2b-256 a8ce25e52464ddaabd52d60df20012e99b82508716be7ed013fce352c029f950

See more details on using hashes here.

File details

Details for the file idrivetools-0.1.28-py3-none-any.whl.

File metadata

  • Download URL: idrivetools-0.1.28-py3-none-any.whl
  • Upload date:
  • Size: 11.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.9 CPython/3.8.5 Linux/5.4.0-54-generic

File hashes

Hashes for idrivetools-0.1.28-py3-none-any.whl
Algorithm Hash digest
SHA256 3a284656e541f0c25c2f2bf2e1bce5b4295042d1de55140f8bf273d47c23dc47
MD5 36c428ab4494774c7cf52eff778ef5ef
BLAKE2b-256 1de7d86d6cf3fbe8f98fde393de8af673c9bd5563f65b9c9b9167aa1bd7b5ee2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page