iPhone MobileMusicPlayer Accessory Attached message.. Need a Hacker!

Discussion in 'Jailbreaks and iOS Hacks' started by activea, May 4, 2008.

  1. macrumors newbie

    activea

    Joined:
    May 4, 2008
    #1
    Hello,

    when i connect my iPhone at the original VW ipod car adapter i get a Splash Screen and the iPod player of my iPhone is disabled..

    [​IMG]

    I want to hide this Splash Screen!!! in order to have full access to iPod player when iPhone is docked..

    I copied /Applications/MobileMusicPlayer.app/MobileMusicPlayer localy and tried Hex Editing...

    Also i found the .h file that didn't helped me yet..
    http://devices.natetrue.com/114headers/MobileMusicPlayer.h

    There you can see the SplashView UIWindow:

    @interface SplashView : UIWindow { UIImageView *_imageView; } - (id)init; - (void)setImageRef:(struct CGImage *)fp8; - (void)buttonBarClicked:(id)fp8; @end

    As far as i know the only way to change this functionality is to hex edit MobileMusicPlayer file... but you also need the car with the original car adapter, because this splash screen is Activated only when you attach the iPhone ....

    I have spend a few days but no luck yet...:mad:
    [​IMG]

    I need help!

    Best regard,
    ActiveA
     
  2. macrumors newbie

    Joined:
    May 10, 2008
    #2
    I feel your pain - this is soo annoying. With my old IPOD i could at least see the currently playing song on the display. Now i have the same stupid splash screen, i don't see what's playing and i have no control. Sucks!

    Maybe we can edit the function showAccessorySplash. We could try to replace some strings or change function entry pointers.

    - Klaus
     
  3. macrumors newbie

    Joined:
    May 10, 2008
    #3
    Solution

    FYI - activea and i found a solution:

    1. get a hex editor (for example HexEdit for MacOSX)
    2. copy the executable MobileMusicPlayer from /Applications/MobileMusicPlayer.app/ to your computer
    3. enable "Options - Overwrite Mode" when using HexEdit
    4. search for string _initializeSplashScreen and replace it with _tearDownSplashScreen (add 00 00 at the end to compensate for the different string lengths).
    5. search for string _suspendMainUI and replace it with _resumeMainUI
    6. save
    7. replace "MobileMusicPlayer" in "/Applications/MobileMusicPlayer.app" with your patched file

    Now you should have full control over the IPhone/IPod Touch when connected to your car stereo or other accessory.

    Activea and i do not take any responsibility for any problems you might encounter. Drive safe and let your co-driver operate the iphone/ipod!

    - Klaus
     
  4. macrumors regular

    pw1500

    Joined:
    Oct 31, 2007
    Location:
    Oxford, England
  5. macrumors newbie

    Joined:
    Jul 2, 2008
    #5
    Ok, so I thought I had it working but apparently this morning my ipod function started crashing, not sure if this is because I had hooked my iphone back up to another computer. I just want to make sure I'm understanding what needs to be done correctly. Please excuse any inaccurate terms that I may use as just my ignorance of the proper terminology.

    Anyway, I searched for the string
    _initializeSplashScreen and replaced it with _tearDownSplashScreen
    I then went into the hex (numeric portion) that was highlighted as being the equivalent of that string and added "00 00" on the end of it

    After that I searched for the string
    _suspendMainUI and replaced it with _resumeMainUI

    Saved the file and then reuploaded it and overwrote the original MobileMusicPlayer file. It seemed to work yesterday, although I currently have to get my VW ipod adapter repaired so I couldn't test that but the ipod function itself seemed to be working fine. I put some music on my iphone last night and went to use it this morning, and when I would select ipod, it seemed like it was starting and then would immediately back to the Home Screen. I reuploaded the original un-edited MobileMusicPlayer file that I had a back up of and it is working again.

    Maybe I can email or pm someone the file that knows what it's supposed to look like or someone can walk this dummy through the process :p Any help is greatly appreciated.
     
  6. macrumors newbie

    Joined:
    Jul 2, 2008
    #6
    Just an update, as a test, I re-edited the MobileMusicPlayer file and uploaded the file, tested the ipod and it was working fine. I then synched it with my computer and re-tested it, ipod function crashes. Is there something that is getting edited, the computer I was synching to doesn't even synch music or video with it only data stuff (Safari Bookmarks, iCal, and phonebook)? Any ideas? Is there possibly a particular app that may be conflicting with this? I've actually uninstalled swaptunes in hopes that it may have just been some type of conflict with that with no luck.
     
  7. macrumors newbie

    Joined:
    May 10, 2008
    #7
    I think you did it right. Just make sure you have enabled overwrite mode, i.e. the file size does does not change.

    I noticed that replacing the _suspendMainUI function cause too much problems, so for my current hacked version of MobileMusicPlayer i only replaced the _initializeSplashScreen function. The disadvantage is that the MobileMusicPlayer screen sometimes stays black, but once i reinsert the iphone in the dock everything works fine.

    Hope that helps,
    Klaus
     
  8. macrumors newbie

    Joined:
    Jul 2, 2008
    #8
    Klaus, thanks so much for the info. Seems to be working now. I see what you mean about the screen going black, but it's a small price to pay for such great control over the iphone.


    I was just wondering if anyone has upgraded to the 2.0 firmware for the iphone and if this will change the mobilemusicplayer file back to it's original code or overwrite the edited one I have on there. I actually wanted to check out the 2.0 upgrade and don't mind not having installer right off the bat, but don't want to go back to the way my ipod function was and not be able to edit it since I won't be able to SSH to the phone again without jumping through hoops to downgrade back to 1.1.4
     
  9. macrumors newbie

    Joined:
    Jul 16, 2008
    #9
    Hi can anyone help I'm having the same problems as you with the splash screen appearing and i want to get rid of it.

    how do i extract the file i need to change i've been trying for days now can anyone give me a step by step guide so i can alter the file on my pc then drop it back on the iphone.

    any suggestions would be helpful
     
  10. macrumors newbie

    Joined:
    Jul 2, 2008
    #10
    Well looks like a jailbreak of the 2.0 firmware is now available, so just wondering if anyone has done it yet. The MobilMusicPlayer file size has changed. I've tried to edit it the way it was done in the previous version and doesn't seem to be working. If anyone has any ideas please post them. If needed I can send the new MobileMusicPlayer file to someone for review.
     
  11. macrumors newbie

    Joined:
    Jul 20, 2008
    #11
    Hey,
    Came across this thread by searching google. I just got an iPod touch yesterday, and have no idea how to get to MobileMusicPlayer or how to open the files using the HexEditor... completely different than the old 5G I had.

    I'm using vista in this case too... don't judge me ;)
     
  12. macrumors newbie

    Joined:
    May 10, 2008
    #12
    IPhone 2.0 Hack

    Same hack also works for 2.0 firmware. However, additionally to the 1.x firmware hack you have to sign the patched executable.

    Signing Code works like this (from the Cydia FAQ):
    $ apt-get install ldid
    $ gcc -o program program.c
    $ ldid -S program
    $ ./program

    So this is what i did:
    - copied MobileMusicPlayer to Mac.
    - backupped MobileMusicPlayer (just in case i need to patch the original executable again or want to go back)
    - replaced _initializeSplashScreen with _tearDownSplashScreen using HexEdit
    - copied MobileMusicPlayer back to IPhone
    - Installed Ericas Utilities on the iphone (launch utility)
    - Executed the following commands on the Iphone
    $ apt-get install ldid
    $ ldid -S /usr/bin/launch
    $ ldid -S /Applications/MobileMusicPlayer.app/MobileMusicPlayer

    Black screen problem still exists, however reinserting IPhone into dock gives full control.

    - Klaus
     
  13. macrumors newbie

    Joined:
    Jul 2, 2008
    #13
    Just to save time for others in the thread, I'll explain to the best of my knowledge what MobileMusicPlayer is and what is trying to be accomplished in this thread.

    The differnce between the iphone/ipodtouch and previous ipods is that it uses a software based player called MobileMusicPlayer.app. You actually already have it.

    The purpose of this thread is for owners of direct ipod connections in their cars that are plagued by the inability to actually control their music from their iphone/Ipodtouch directly (ie with the VW ipod adapter pictured above), also to restore the actual album art showing up on the phone vs. the "Accesory Attached" image which is utterly useless.

    In order to accomplish all of this you must first unlock and activate your Iphone/Itouch so that you can ssh to the actual file structure of the phone, once that is done you can get the file off of your phone and hexedit it (at least that's how it was done prior to the 2.0 firmware update).

    I recently used pwnage to unlock and activate the 2.0 firmware on my iphone and have tried the previously listed hexedits with no luck and am searching for someone who might be able to assist in getting this up and running on the 2.0 firmware.

    Chances are your phone is already upgraded to the 2.0 firmware either out of the box or you did it during your initial set up. (If you have appstore then you definitely have the new firmware). You can find info about changing your firmware in many places on the internet, but this thread isn't really for explaining that process. Also, something that might want to be noted is that there is currently no process to create a custom firmware hack for Windows, only Mac.

    Hope that answers your question
     
  14. macrumors newbie

    Joined:
    Jul 2, 2008
    #14
    Klaus thanks once again for the help, I'll give it a shot now and see how I fair. You are a true hero, thanks in advance.
     
  15. macrumors newbie

    Joined:
    Jul 2, 2008
    #15
    Klaus, I really want to thank you for doing the leg work on this one. Worked perfectly. It's people like you that make this community a pleasure to deal with.
     
  16. macrumors newbie

    Joined:
    May 10, 2008
    #16
    jreb13: Compared to the work of the iphone dev team this is just peanuts ;)
    Thanks for the thanks, anyway. Glad i could help ...

    And Apple, please remove this stupid splash screen. I understand that there might be legal issues involved in allowing iphone/ipod interaction in a car. But why am i allowed to use other iphone/ipod functionality and not the music player?
    At least, switch interaction off by default and let us change the behaviour in the settings menu. Maybe after showing a big warning disclamer.
    Or at least please, let us see album art, artist and title.
     
  17. macrumors newbie

    Joined:
    Jul 24, 2008
    #17
    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!
     
  18. macrumors newbie

    Joined:
    May 10, 2008
    #18
    ElBrooklyn: In step 18 make sure that you terminator the string "_tearDownSplashScreen" with hex 00 00, not with two ascii 0s (strings must be terminated with hex 00, not ascii character 0). Since "_tearDownSplashScreen" is two character shorter than the original string "_initializesplashscreen" you have to terminate the string with hex 00 00.

    - Then copy the patched file back to the iphone ...
    - reboot

    Hope that helps.

    - Klaus
     
  19. macrumors newbie

    Joined:
    Jul 24, 2008
    #19
    So I restored and re-pwned to get clean software.

    Did everything totally clean again. And this time put in the hex 00 00 to create the dots in the text field.

    Rebooted and iPod mode worked fine. (Yay!) But then I plugged it into the car and, first of all, the Accessory Attached screen was still there. Plus, the iPod started bouncing back to the home page again. Doesn't work at all now.

    Urgh. Maybe I wasn't born to hack.

    I really appreciate your quick response, Klaus.
     
  20. macrumors newbie

    Joined:
    May 10, 2008
    #20
    ElBrooklyn: If you follow all the steps properly it should work. It worked for jreb13, activea and me.

    Did the ldid command (code signing) succeed (i had problems with code signing before i installed Ericas Utilities and code signed launch) ?
    Did you enable overwrite mode in hexedit, i.e. are you sure the file size did not change ?
    Did you reboot ?

    Klaus
     
  21. macrumors newbie

    Joined:
    Jul 24, 2008
    #21
    Success!

    Figured out what the problem was. I updated my phone early on 2.0 day, grabbing a copy of the firmware from the New Zealand crowd. Later, we all realized that 1,2 ipsw was for 3G phones -- mine's a 2G. Firmware worked just fine, but when it came to running this patch, it was a no go.

    I restored to the 1,1 ipsw, re-pwned and -- wham-bang-thank-you-maam -- it worked.

    Thanks again, Klaus.
     
  22. macrumors newbie

    Joined:
    Jul 24, 2008
    #22
    One more thing: I've discovered that the black screen effect can also be overcome by simply turning off the head unit and switching it back on again. So you don't have to unplug the dock connector and put it back in to get full iPod access.
     
  23. thread starter macrumors newbie

    activea

    Joined:
    May 4, 2008
    #23
    Concerning Klaus Jul 21, 2008, 10:37 message, i have to add the following two things to his research:

    1)Replace string _suspendMainUI with _resumeMainUI (check attached photo).. and the blank screen is dissapeared!!

    [​IMG]

    2)If you have problems with returning to Main Menu after the above hack.. just... double-tap the iphone home button when you are in the song player screen..(e.g select a song from the list and tap to play it, then double-tap the iphone home button!)..
    [​IMG]

    ...an iPod pop-up appears. There are two buttons: "close" & "iPod"... by choosing the "iPod" button you return to the main menu screen...
    [​IMG]

    ActiveA
     
  24. macrumors newbie

    Joined:
    Jul 2, 2008
    #24

    Hmm, i'm just curious if this means that this doesn't work on the 3g iphone? Can anyone confirm or deny if this works on a 3g, was considering upgrading to one, but wouldn't want to lose this functionality.
     
  25. macrumors newbie

    Joined:
    Aug 21, 2008
    #25
    i'm trying to format my ipod so i don't get that frustrating splash screen.

    i tried following some of these steps but cydia was being weird on my ipod touch. will that work only with the iPhone? can anyone help explain to me better how to do this on an iPod touch?

    thanks
     

Share This Page