Need A Bit More Help on This Hack
KlausE --
So glad you worked on this problem. It's been plaguing me for over a year now. I have a VW factory iPod adapter and it gives me the splash screen, too.
I'm pretty much a noob when it comes to writing code or hacking stuff, so it's no surprise that I haven't been able to quite make this work. Wonder if you could help me troubleshoot what I'm doing wrong.
Also, this is a step-by-step guide for other folk like me who've never broken into the guts of the iPhone.
Here's what I did.
1. Pwn the phone. (I'd never done it before.)
2. Open Cydia installer and install Open SSH
3. Install Erica's Utilities with Cydia
4. In iPhone Settings, General turn Auto-Lock to Never (so the phone doesn't shut off and terminate the connection).
5. On my MacBook Pro, download and install Hex Edit for Mac. (This lets you rewrite the underlying code in the iPhone.)
6. On the MacBook, download and install Transmit (This lets you see the files on the phone. Much easier than Terminal unless you're used to using Linux commands.)
7. On my MacBook Pro, open Terminal and log into the iPhone. At the prompt, enter: ssh root@<ipaddress> (The phone's IP address is listed in Settings, Wi-fi. Just click the arrow on whichever network the phone is using. And don't put the carats in there -- just the address.)
8. Password: alpine (You'll want to change the password later.)
9. On the MacBook, open Transmit and Connect to the iPhone using SFTP mode. (Use the same root@<ipaddress> you used in Terminal. You'll see the file directory pop up in the browser.)
10. Switch the browser from "Root" to "/"
11. Click on MobileMusicPlayer.app folder.
12. Scroll down to the MobileMusicPlayer executable file.
13. Drag the MMP file into the MacBook's browser. (You may want to set to your desktop.)
14. Copy the MMP file. (So you can revert to it if things get screwy. It'll say MobileMusicPlayer Copy.)
15. On the MacBook, Open Hex Edit. In Options, check Overwrite mode.
16. In Hex Edit, Open MMP file from the desktop. (You are looking at THE CODE, baby!)
17. Do a Cmd-F search for _initializesplashscreen. (This is the string we're going to replace.)
18. There's the offending line. Move cursor to the first letter and type in the new string: _tearDownSplashScreen
18a. Because "tearDownSplashScreen" is two characters shorter than "initializeSplashScreen," you need to zero out the remaining spaces. Move over to the hex code (the numbers on the left), and put your cursor on the number that follows the code for "tearDownSplashScreen." The last "n" should be represented by "6E." You may have to toggle you last letter "n" with another letter so you can see the code change and find your place. In the two spaces after the "6E" enter 00 00. You should see two periods enter the text code so that it now reads _tearDownSplashScreen...
19. Save. Close file.
20. In Transmit, double-click the patched MMP file. (It'll ask if you want to replace the file on the phone. Yes.)
21. In Terminal, type: apt-get install ldid (This installs the ldid program.)
22. In Terminal, type: ldid -S /usr/bin/launch (I don't know what this does, but KlausE says to do it.)
23. In Terminal, type: ldid -S /Applications/MobileMusicPlayer.app/MobileMusicPlayer
24. You're done. Go out to the car and plug it in. You'll get the "this accessory is not designed for the iPhone" dialog. Ignore it. Now in iPod mode, you should get a black screen instead of the "Accessory attached" screen. Just turn off your head unit, wait a second, then turn it back on. The black screen of death should be gone. If that doesn't work, just unplug the phone and plug it back in again. Should be fine after that.
25. You may want to load Boss Prefs from Cydia. It allows you to turn off your SSH connection. Because if you haven't changed the password from "alpine," anybody on your Wi-Fi network could potentially hack into your phone. Unlikely, but could get really ugly if it you're the unlucky bum who winds up on a public network with a jerk.
These steps worked for me!