UPDATE [October 4, 2009]: I have created a utility that prevents the manual labour and can be installed via Cydia.
UPDATE [August 20, 2009]: The previous post described a method that didn’t work well. Shawn Porter pointed out the problem, so I have updated the post and now it works fine.
I have an iPhone 3G and use it in my car as a music player. I have installed an GROM audio adapter for the iPhone, so I can connect it to my Mazda 6 car stereo. The GROM adapter even allows to use the controls on the steering wheel. Everything worked just fine, until iPhone OS 3.0 came along.
iPhone OS 3.0 includes support for A2DP, which is capable of stream audio via BlueTooth to another device. Unfortunately, there is no way to disable A2DP and it will always select the A2DP source when it is available. You can switch back to the dock connector, but you need to do this each time you start your car.
Apple should make an option to select which BlueTooth profiles should be enabled for a certain connection, but this is not possible with the current firmware. I decided to jailbreak my iPhone and try to find a solution.
The interesting directory is /var/mobile/Library/Preferences, where the iPhone stores the BlueTooth settings. These settings are stored in the PLIST format, so you need a PLIST editor (Mac or PC) or you need to convert them by hand. Transfer the com.apple.MobileBluetooth.services.plist to your computer (refer to Simon’s blog to find out how to do this). You can also use iFile to edit the file on your iPhone directly (thanks to Richard van den Berg for pointing it out).
Open the com.apple.MobileBluetooth.services.plist in your PLIST editor and make sure you edit the A2DPService section and store the devices you don’t want to use A2DP in the UnauthorizeList (without the letter “d”). This dictionary will probably not exist yet, so you need to add it by hand. You need to know the MAC address, but it is probably listed already in this file.
<key>A2DPService</key>
<dict>
<key>State</key>
<true/>
<key>UnauthorizeList</key>
<dict>
<key>00:10:60:D0:91:D0</key> <!-- This is the MAC address -->
<date>2009-08-08T01:00:00Z</date> <!-- Timestamp -->
</dict>
</dict>
Transfer the PLIST file back to your iPhone and reboot the device. Once it gets back on, then the A2DP service should be disabled.