Difference between revisions of "ACDrive"

From PhatHack Wiki
Jump to navigation Jump to search
Line 64: Line 64:
 
know. It is believed to be held by PhatNoise and not contained within the PMM
 
know. It is believed to be held by PhatNoise and not contained within the PMM
 
software.
 
software.
  +
  +
==== Other Files ====
  +
  +
mCD media also contains voice index files for voice navigation under the
  +
directories:
  +
  +
<pre>
  +
/mcd/tts/
  +
/mcd/tts/an
  +
/mcd/tts/pr
  +
</pre>
  +
  +
The files found here are reported by '''file''' to be ''Microsoft ASF''. It
  +
should be possible create these files with something like festival.
  +
  +
=== Software ===
  +
  +
Phatnoise Media Manager is the only software which currently creates mCD
  +
media. A free software alternative is in development and should be announced
  +
here soon.
  +
  +
=== Issues / Enhancements ===
  +
  +
The following forum thread mentions some current shortcomings of the ACDrive
  +
music navigations system:
  +
  +
[http://forum.phathack.com/cgi-bin/yabb2/YaBB.pl?num=1147985035]
  +
  +
Some of the criticisms include:
  +
  +
1. If you're in album mode and hit next album it takes you to the next album alphabetically, instead of the next album by the artist you're on.
  +
  +
With an understanding of the file format, the reason for this becomes obvious.
  +
Albums are sorted alphabetically so that they can be searched using the letter
  +
search function. The letter search works on an index into the album->track
  +
mapping. If it was not ordered the index would be useless.
  +
  +
There are two ways to fix this:
  +
  +
1. Sort the albums list by Artist (ie. grouped by artist). This way you could
  +
letter search an artist, then switch to album mode and use up/down to navigate
  +
between albums of that artist. This would break the letter search function
  +
completely but this might be acceptable to some users.
  +
  +
2. Another possibility is two duplicate the albums list completely (make it
  +
twice as long as the number of tracks). The first half of the list can be
  +
grouped by artist as in 1. The 'track_id' field of each track would point to
  +
this (first) album entry. The second half of the list would be sorted
  +
alphabetically. The alpha index would then point into this second half of the
  +
list. This would allow searching just like 1. but maintain direct letter
  +
search for album. This has not been tested yet, but I expect it would work!
  +
  +
Furthermore, if option 1. was chosen, the album alpha index would become
  +
unused. By swapping 'album' and 'playlist' sections in the mcd.db file, you
  +
could fix another ACDrive shortcoming (playlists not indexed), but using it to
  +
index your playlist. The disadvantage is that the headunit display would
  +
display 'playlist' while in album mode and vice-versa, though this may be
  +
acceptable for some users. (The voice index file could be swapped so that the
  +
mode announcement is correct).

Revision as of 01:56, 11 January 2007

ACDrive

ACDrive (Advanced Codec Drive) is the name used by Kenwood to describe car stereo headunits which can playback enhanced media created by PhatNoise Media Manager with many of the same searching features as PhatBox units.

This wiki page describes the ACDrive system and its hacking potential

Introduction

Kenwood ACDrive headunits can playback media created using PhatNoise Media Manager (PMM). This is often called mCD media. mCD media can include CDROM's, DVD's (for DVD capable units) and USB mass-storage devices (for USB capable devices.

When playing back mCD media you can browse by artist, album, genre and playlist. You can search alphabetically by artist, album and genre (but not playlist). Voice-prompt navigation is also possible. (non-mCD media can only be browsed by folder)

ACDrive headunits can playback mp3, wma and aac files.

Read more about ACDrive/mCD from Kenwood here: [1]

Technical Info

To allow fast navigation, mCD media contains a metadata database in an mcd directory in the root of the device. This is much like the ipod's itunesdb, though considerably simpler.

The MCD media contains (at least) the following files:

/mcd/
/mcd/mcd.db
/mcd/mcd.sig
/mcd/pkeys2.e
/mcd/pkeys2.sig

mcd.db

mcd.db is the song metadata database created by PMM. The structure has been reverse engineered, see mcd.db

pkeys2.e

This appears to be an array of RSA public keys used by the device (see below) for checking signatures of other files (such as mcd.db). pkeys2.e and pkeys2.sig are distributed with PhatNoise and never change. They can also be found on the sample cd distributed with ACDrive head units.

mcd.sig, pkeys2.sig

These are signature files for mcd.db and pkeys2.sig respectively, the signatures are generated in exactly the same way as PhatBox signatures as described in Signature except that the private signing keys are different.

The signing key for mcd.db has been extracted from PMM and can be found in mcdPrivateKey. This allows us to generate valid mcd.db/mcd.sig files for playback by the headunit!

The key used to sign pkeys2.e (and hence bless other signing keys) is not know. It is believed to be held by PhatNoise and not contained within the PMM software.

Other Files

mCD media also contains voice index files for voice navigation under the directories:

/mcd/tts/
/mcd/tts/an
/mcd/tts/pr

The files found here are reported by file to be Microsoft ASF. It should be possible create these files with something like festival.

Software

Phatnoise Media Manager is the only software which currently creates mCD media. A free software alternative is in development and should be announced here soon.

Issues / Enhancements

The following forum thread mentions some current shortcomings of the ACDrive music navigations system:

[2]

Some of the criticisms include:

1. If you're in album mode and hit next album it takes you to the next album alphabetically, instead of the next album by the artist you're on.

With an understanding of the file format, the reason for this becomes obvious. Albums are sorted alphabetically so that they can be searched using the letter search function. The letter search works on an index into the album->track mapping. If it was not ordered the index would be useless.

There are two ways to fix this:

1. Sort the albums list by Artist (ie. grouped by artist). This way you could letter search an artist, then switch to album mode and use up/down to navigate between albums of that artist. This would break the letter search function completely but this might be acceptable to some users.

2. Another possibility is two duplicate the albums list completely (make it twice as long as the number of tracks). The first half of the list can be grouped by artist as in 1. The 'track_id' field of each track would point to this (first) album entry. The second half of the list would be sorted alphabetically. The alpha index would then point into this second half of the list. This would allow searching just like 1. but maintain direct letter search for album. This has not been tested yet, but I expect it would work!

Furthermore, if option 1. was chosen, the album alpha index would become unused. By swapping 'album' and 'playlist' sections in the mcd.db file, you could fix another ACDrive shortcoming (playlists not indexed), but using it to index your playlist. The disadvantage is that the headunit display would display 'playlist' while in album mode and vice-versa, though this may be acceptable for some users. (The voice index file could be swapped so that the mode announcement is correct).