Slashdot Mirror


The iPhone Serial Port Hack

An anonymous reader writes "The iPhone's little known secret, a hidden serial port, is revealed. 'The real benefit in all of this is that there are so many console packages for iPhone in Cydia now that you can have a fully functional computer, as useful as a Linux box, but without carrying around a laptop.'"

59 of 217 comments (clear)

  1. If u want linux in your smartphone by Anonymous Coward · · Score: 5, Insightful

    Get a Nokia N900 or Android.

  2. ipad by Anonymous Coward · · Score: 3, Funny

    i want to know why everytime i plug in my ipad the pc asks what kind of camera it is

    1. Re:ipad by AndrewNeo · · Score: 3, Informative

      That's because it's exposed as a PTP (Picture Transfer Protocol) device over USB. All iPhone/iPod Touch/iPads do this.

    2. Re:ipad by CannonballHead · · Score: 5, Funny

      You're plugging it in wrong.

    3. Re:ipad by Anonymous Coward · · Score: 2, Funny

      You're plugging it in wrong.

      My girlfriend used to tell me that. Now she likes it that way.

    4. Re:ipad by shutdown+-p+now · · Score: 4, Funny

      You're plugging it in wrong.

      To be more specific, you forgot to plug a Mac to the other end of the cable.

  3. Most embedded devices have a serial port by FranTaylor · · Score: 3, Informative

    I'm reminded of Linksys WRT-54G routers and such.

    You might need to do some surface mount soldering to get to the required connections.

    Very handy for booting up a Sun server.

    1. Re:Most embedded devices have a serial port by AJ+Mexico · · Score: 2, Insightful

      How last century! What are we going to see next -- how to interface your iPhone to a paper tape reader/punch? Instead of this -- cut the cable, and get an RS-232 - to Bluetooth adapter, similar to this. They are cheaper than the parts for this hack. The iPhone is a wireless device.

      --
      Computers obey me.
    2. Re:Most embedded devices have a serial port by Miamicanes · · Score: 4, Informative

      The Samsung Galaxy S family appears to have (among other things) a UART hidden on its USB port via the Fairchild FSA9480 chip.

      This thread at xda-developers ( http://forum.xda-developers.com/showthread.php?p=8834946 ) suggests that if you put a 150k resistor (1% tolerance) between pins 4 and 5 and power up the phone, the two pins normally used for USB data will be repurposed as a serial console for the bootloader.

      You can also explicitly toggle the FSA9480's mode via software (though not necessarily without root and your own kernel extensions).

      Note that it's not using USB as serial... it's acting as an electronic crossbar, disconnecting the D+ and D- pins from the USB circuit, and connecting them to pins elsewhere that are a real UART. Think: old-fashioned telephone switchboard with patch cables and jacks that dynamically establish and tear down circuits as needed so a few physical pins can be put to occasional niche uses that wouldn't merit full-time pins of their own.

      Personally, I suspect two pins on the headphone jack can be nudged into acting as a UART as well. Sigh. What the mod community really needs is for someone to raise the cash to pay a company that does intelligence reports for consumer electronic devices to tear down the Epic4G (or some other variant) and draw up a schematic showing which externally-accessible pins are connected to what (and how) inside the phone. There's a lot of good stuff inside of these phones that's undocumented publicly or via the official kernel source. Lots 'o happy bitbanging ahead! :-)

    3. Re:Most embedded devices have a serial port by Miamicanes · · Score: 2, Interesting

      > How last century! (...snip...) cut the cable, and get an RS-232 - to Bluetooth adapter

      Spoken by someone who's either a glutton for punishment, or has never experienced the joys of interacting with some piece of embedded hardware at low level through a bitchy, finicky translation layer like Bluetooth that was designed to fail rather than accidentally work without authentication and authorization.

      Remember, people use the phone's serial port to do things that are almost by definition unsupported, undocumented, and might induce Steve Jobs angrily kill newborn kittens in a fit of rage. Under those circumstances, the LAST thing you need is a finicky, brittle abstraction layer standing between you and the bare metal to introduce even MORE opportunities for it to not work.

  4. Not a secret by m2pc · · Score: 5, Informative

    This isn't a "secret"... it's been in the iPhone (and iPod for that matter) for quite a long time. This same serial port is how 3rd party docks and cables control the device from the outside: http://www.adriangame.co.uk/ipod-acc-pro.html

    1. Re:Not a secret by unts · · Score: 2, Informative

      THANK YOU!

      This is so far from a secret it's not even funny. Imagine if we'd only just discovered what those two pins on the connector did?

      Hell, even the breakout board the guy (who's original, non full page ad-encumbered article can be found here) bought has the bloody serial pins labelled.

      It's not remotely surprising that an embedded device has a UART on it. It's even less surprising that a device designed to interface with very simple dock devices has a UART exposed via its peripheral connector.

      What is surprising is that the combination of breakout board and RS232 line driver somehow managed to be bigger than the phone.

  5. More interesting if iPad also has it ... by Anonymous Coward · · Score: 2, Interesting

    The iPhone's little known secret, a hidden serial port, is revealed. 'The real benefit in all of this is that there are so many console packages for iPhone in Cydia now that you can have a fully functional computer, as useful as a Linux box, but without carrying around a laptop.'

    Personally I think it would be far more practical and useful to use an iPad. The iPhone screen is just too small for practical use, however in an emergency the iPhone could be quite useful. But for somewhat frequent normal use, I have doubts.

  6. Computer-Phone=Serial port? by Kenja · · Score: 4, Funny

    Could have sworn there was more to these computer things then that.

    --

    "Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
    1. Re:Computer-Phone=Serial port? by $RANDOMLUSER · · Score: 4, Funny
      Reminds me of the story from The Zen of Programming:

      A novice went into the master's cubicle and saw a new computer sitting upon the master's desk. "What is that computer?" asked the novice. The master placed his hand upon a small box that was connected to the computer by a wire. "Behold," said the master, "This device controls what we see on the screen. The screen simulates a desk. For example, here is a filing cabinet and a trash depository. Here also is a typewriter and a calculator." "This is a wonderful invention," whispered the novice in awe. "It is not as wonderful as it seems," said the master. "Can you see the two desks?" The novice nodded. "One is on the floor, the other is on the screen," he remarked. "Just so. Now, is there something missing on one of the two desks?" The novice pondered for a moment. "One of the desks does not have a computer on it," he said. The master shook his head. "Neither of the desks has a computer on it."

      --
      No folly is more costly than the folly of intolerant idealism. - Winston Churchill
    2. Re:Computer-Phone=Serial port? by hardie · · Score: 4, Funny

      Even more existentially, one of the desks has windows on it.

    3. Re:Computer-Phone=Serial port? by Nadaka · · Score: 2, Funny

      Even worse... MS BOB.

    4. Re:Computer-Phone=Serial port? by Saint+Stephen · · Score: 4, Insightful

      I really, really hate these Zen/internet/GNU Koans from the hackers dictionary.. They all sound like they were written by Renaissance Faire types and don't really impart anything to me except the mindset of people who thought Unix workstations were AWESOME and then proceeded to infight with 114 mutually different flavors of unix.

  7. If You'd Rather Read the Article by kat_skan · · Score: 4, Informative

    If you'd like to read the article instead of Computer World's stupid-ass slide show, it's at http://resolvehax.blogspot.com/2010/10/iphone-serial-port.html

    1. Re:If You'd Rather Read the Article by kat_skan · · Score: 4, Informative

      Looking at it a little closer, CW just plagiarized the entire thing photos and all, and added a paragraph here and there to make it look like the article was about how they built one using his design. Classy.

  8. Linux box? by Anonymous Coward · · Score: 2, Insightful

    Just get a Nokia N900. Nothing hidden there.

  9. Re:Fully functional computer? by idontgno · · Score: 4, Funny

    How are you going to attach the tape reader/punch for the program tape without a serial port?

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
  10. Re:Or by Anonymous Coward · · Score: 2, Insightful

    "Don't jailbreak your iPhone, that's stupid. You shouldn't have to do anything to run the software you want. Instead, get an Android phone. Yeah you have to root it to run the software you want, but that's totally different".

  11. Re:No, thank you by radarsat1 · · Score: 4, Insightful

    And yet, you are posting on Slashdot.

  12. Re:Fully functional computer? by Anonymous Coward · · Score: 2, Funny

    Wirelessly?

  13. Re:Or by Pojut · · Score: 2, Insightful

    Yeah you have to root it to run the software you want, but that's totally different

    You're right, it is. Unless you Jailbreak your iPhone, you're stuck with the App store. I can install programs from wherever I want to on an Android phone by selecting an option built into the OS.

  14. Re:Or by Joce640k · · Score: 5, Insightful

    Or, I dunno, a small netbook and a USB-to-serial cable. They're hardly massive.

    It's not like you don't know in advance when you're going to need a terminal. If you can remember to bring that massive dongle thing along you can remember a netbook.

    --
    No sig today...
  15. Cease and Desist by BabyDuckHat · · Score: 2, Informative

    Please don't use the hardware you purchased and is now yours for non-Apple authorized activities. Apple reserves the right to REMOVE and/or RESTRICT functionality in order to support our business model as we see fit.

    Apple

    1. Re:Cease and Desist by Shadow+Wrought · · Score: 4, Insightful

      Please don't use the hardware you purchased and is now yours for non-Apple authorized activities.

      How soon until you're just licensing that iPhone?

      --
      If brevity is the soul of wit, then how does one explain Twitter?
    2. Re:Cease and Desist by idontgno · · Score: 4, Insightful

      Never. There's no need. You can own the hardware. You just can't use any of the software included until you agree to the license, and thereby agree to Apple's restrictions on how you use the hardware.

      That's the cleverness, really. They don't control your ownership of the hardware. So to a naive observer, you're completely in charge. But the moment you actually try to use any functionality embodied in the included software (i.e., anything capability beside "crappy doorstop" and "blender fodder"), Apple owns you. As long as your path coincides with Apple's decisions, you're golden. But try to do anything they don't want you to do... "You get nothing! you lose! Good day, Sir!"

      --
      Welcome to the Panopticon. Used to be a prison, now it's your home.
  16. Re:Or by Pojut · · Score: 3, Informative

    And yes, I'm aware you have to root the phone to install a custom ROM...but you can still install apps from anywhere without having to void your warranty or hacking the phone.

  17. Re:obviously meant for low-level debugging by idontgno · · Score: 2, Informative

    Alas, this hack won't do it:

    To operate the serial port, we need to run an RS232 to TTL converter. Fortunately, there's a 3.3v output on the bottom of the phone that'll power our unit. Not useful if you want to get into the phone's serial console, since it only provides power once booted.

    In other words, this design is powered with a power source that isn't even available until the iPhone/iPod is booted up.

    I guess you could fix that with an appropriate external power supply; a little wall-wart and some appropriate voltage regulation.

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
  18. yet another appleboy article... by Kynde · · Score: 3, Funny

    as useful as a Linux box

    Sure.

    What next? They'll discover a hidden parallel port and what? It's supposed to stop world hunger?

    --
    1 Earth is warming, 2 It's us, 3 it's royally bad, 4 we need to take action NOW
    1. Re:yet another appleboy article... by jiteo · · Score: 4, Funny

      What next? They'll discover a hidden parallel port and what? It's supposed to stop world hunger?

      Damn right, it'll feed people cereal in parallel.

    2. Re:yet another appleboy article... by Ksevio · · Score: 2, Funny

      Then I can hook up my HP Laserjet III and print stuff off my iPod!

    3. Re:yet another appleboy article... by selven · · Score: 2, Funny

      Resistance is futile... or at least reduced by a factor of n assuming all the ports parallel to each other are exactly the same.

  19. Oh Christ No!!!! by OzPeter · · Score: 5, Insightful

    <sobbing level="softly">I don't want to go back to carrying gender changes, null modems, 9/15 pin changers as well as worrrying about DCE/DTE and handshaking ..... </sobbing>

    --
    I am Slashdot. Are you Slashdot as well?
    1. Re:Oh Christ No!!!! by clone53421 · · Score: 2, Funny

      Pff. I’m still fiddling with gender changers, null modems, 9/15 pin changers, RS232 and RJ45 cables... oh, and this ancient boxy thing called a 1747-PIC...

      --
      Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
  20. I may be missing something, but... by quarkoid · · Score: 4, Informative

    ...given that you can buy ipod breakout boards on ebay with the serial connectors clearly marked, it doesn't seem to be a particularly well kept secret.

    See http://cgi.ebay.co.uk/Enhanced-Breakout-Board-Ipod-Iphone-Ipad-/370447835814?pt=UK_CE_MP3Access_RL&hash=item56406962a6 for an example.

    1. Re:I may be missing something, but... by BitZtream · · Score: 5, Informative

      Yea, its rather well documented on Apple's website actually. Its how third party vendors can control the iPod/iPhone.

      When you plug you iPod/iPhone into a car and start using your radio or steering wheel controls to change songs or whatever ... thats done through the serial port.

      Its all documented on Apples website for registered developers, including the control protocol. You can also find the information elsewhere on the web by those people who reverse engineered it to avoid being bound to Apples rules.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    2. Re:I may be missing something, but... by Anonymous Coward · · Score: 2, Interesting

      The person who "discovered" the serial port in the article was even using such a break-out board.

  21. Re:No, thank you by Anonymous Coward · · Score: 2, Funny

    My time is worth too much to play with hidden features that the manufacturer won't even tell me about, much less support.

    And yet, you are posting on Slashdot.

    FUCK! I had no clue that /. had hidden features... I am guessing that's where all the good submissions end up?

  22. Old News by stokessd · · Score: 5, Informative

    This serial port has been around forever. All those cars with iPod integration use it for control and data. I've controlled the iPod functionality on every iPod I've had (since 3rd gen) as well as three iPhones using an Atmega controller. I year or so I shared some controller code for Arduino based atmega microconrollers.

    Here's how you control your iPhone or iPod music with an Arduino, easy peasy:

    Sheldon

    * /* Control iPod/iPhones from Arduino
    Sheldon Stokes
    Jan 3, 2009

    Standing on the shoulders of ipodLinux.org
    http://ipodlinux.org/wiki/Apple_Accessory_Protocol

    This send comands to the iPod as though it were a remote.
    These are the simple 2 byte commands that should work on all
    Apple iPods and iPhones starting with the 3rd Generation iPod

    *********** Commands (array index, command value, command description) **************
    0 0x00 Button Release
    1 0x01 Play/Pause
    2 0x02 Vol+
    3 0x04 Vol-
    4 0x08 Skip >
    5 0x10 Skip
    6 0x20 Next Album
    7 0x40 Prev Album
    8 0x80 Stop
    */

    int commandBytes[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
    int checkSum;

    int playPin = 2;
    int stopPin = 3;
    int fwdPin = 4;
    int backPin = 5;

    int playVal, stopVal, fwdVal, backVal;

    void setup()
    {
    Serial.begin(19200);

    pinMode(playPin, INPUT);
    pinMode(stopPin, INPUT);
    pinMode(fwdPin, INPUT);
    pinMode(backPin, INPUT);

    }

    void loop()
    {

    playVal = digitalRead(playPin); // read play button
    stopVal = digitalRead(stopPin); // read stop button
    fwdVal = digitalRead(fwdPin); // read fwd button
    backVal = digitalRead(backPin); // read back button

    if (playVal == LOW)
    {
    sendRequest(commandBytes[1]); // send play command
    sendRequest(commandBytes[0]); // send button release
    }
    else if (stopVal == LOW)
    {
    sendRequest(commandBytes[8]); // send stop command
    sendRequest(commandBytes[0]); // send button release
    }
    else if (fwdVal == LOW)
    {
    sendRequest(commandBytes[4]); // send stop command
    sendRequest(commandBytes[0]); // send button release
    }
    else if (backVal == LOW)
    {
    sendRequest(commandBytes[5]); // send stop command
    sendRequest(commandBytes[0]); // send button release
    }

    delay(100);
    }

    void sendRequest(int val) {
    checkSum = 0x100 - ((0x03 + 0x02 + val + 0) & 0xFF);
    int request[] = {0xFF, 0x55, 0x03, 0x02, 0x00, val, checkSum};

  23. Next they'll discover the JTAG port by Animats · · Score: 4, Informative

    Yeah, it's got a serial port, with TTL levels, at its external connector. Big deal.

    It's also possible to attach USB devices, which is somewhat more useful today. For example, you can plug a real keyboard into an iPad.

    1. Re:Next they'll discover the JTAG port by multipartmixed · · Score: 2, Funny

      Yeah, it's got a serial port, with TTL levels, at its external connector. Big deal.

      You mock, but it IS a big deal.

      This means I can plug my iPhone into my Vic-20!

      --

      Do daemons dream of electric sleep()?
    2. Re:Next they'll discover the JTAG port by Animats · · Score: 4, Informative

      Seriously, a whole lot of embedded devices - sensors, microcontrollers, machinery, vehicles, booths - use RS232 (as simple, universal and VASTLY easier to program than USB)

      Yes, when you do embedded work, you often find yourself going back 20 years in technology. There's progress, though. The trend in the embedded world is to put sensors and controllers on 10baseT. The traditional alternatives were either huge numbers of serial ports, or nonstandard proprietary networks. Both suck. 10baseT is quite robust electrically; it's noise-immune, balanced, and AC-coupled. This matters when you have heavy machinery around.

      USB is making some headway in the embedded world, but there's a problem - the standard USB connector has no retention mechanism. Ethernet cables latch in place, but USB connectors do not. There are now "high retention" USB connectors (they're orange) for industrial use, and at least three incompatible latching mechanisms. This is not happy-making for embedded system designers, who would like to use USB more, but can't tolerate plugs falling out.

  24. Re:Or by anethema · · Score: 3, Interesting

    I still think the iPhone is much more of a hackers platform than any android phone.

    It is kind of long but I'm going to recycle a recent comment:

    ---

    What's funny is, iOS jailbroken is actually a nerd's paradise. Much more so than android actually.

    On the iPhone, you have a full apt package system, a terminal running bash, OpenSSH/OpenSSL tools, server, client, etc. a full GCC dev environement, etc.

    A lot of this stuff is stuff you just don't get on Android at any level. You get a terminal out of the box with android, but what do you get? Busybox. Guh. Want SSH? You get Dropbear. The package system sucks compared to APT. I've never tried getting GCC running on the phone but I don't imagine it is easy, if at all possible.

    With the iPhone I really feel like I have a full computer running in my pocket. I asked several android hackers why you are limited with these crappy tools on the phone itself, and they replied it was an embedded device so you get embedded tools. I'm sorry but something with 1-2 cores at >1GHz, a GPU that far outstrips anything on my earlier computers, and 32 gigs of NV storage is -not- an embedded device, I don't care how small it is.

    You get all this, PLUS a UI that (only IMO I understand) is far more fluid and nicer to use than Android.

    Don't get my wrong I'm not just yelling across the fence. I had a Nexus one for a good few months. I tried hard to like it, but in the end when the i4 came out, I jumped ship like it was on fire.

    There is of course, hassle. I don't like to restore from backup so Every time there is a major firmware update I actually wipe my phone clean, then sync all my apps over fresh. But thanks to several tools out there it isn't a total restart.

    There is hassle but for me, android has a LONG way to go, especially on the hacker front to be anywhere near the iPhone in terms of UI -AND- geekery.

    ---

    --


    It's easier to fight for one's principles than to live up to them.
  25. Re:Or by Nyder · · Score: 2, Insightful

    But you need a 3G data card in the netbook if you want to just leave it in situ and ssh in to it; the iphone and this box can juat be plugged in and left there -- (for as long as the battery lasts) -- you can be wherever you like.

    So your saying you can leave it somewhere running on it's battery for about an hour?

    --
    Be seeing you...
  26. Be careful which Android phone you get by rsborg · · Score: 4, Informative

    More recent ones have anti-tamper (Droid X) or auto-reflash (G2), making it a pain to root.

    I honestly think Google is very disingenuous to say Android is open when many currently-selling actual devices are locked tighter than the iPhone.

    Perhaps Google is just happy that Android is "open to the carriers".

    You want a sure bet for an open system, go with the N900.

    --
    Make sure everyone's vote counts: Verified Voting
  27. Re:Vagina by opus7600 · · Score: 4, Funny

    Love how you classed that right up by adding a smiley.

  28. Re:No, thank you by mcgrew · · Score: 2, Informative

    Did you see the masthead? "News for nerds". This is what we do. This is our recreation. I personally found the article fascinating, even though I don't have an iPhone.

    You say your time is worth too much to play with hidden features, but I'll bet it isn't worth too much time to watch a NASCAR race or a football game or a movie, now is it?

  29. Re:Wonderful by fotbr · · Score: 2, Insightful

    Because hardware "is hard". The bulk of the arduino crowd doesn't really want to play with hardware, they want to buy kits and write some glue code for premade libraries and pretend like they know microcontrollers.

    Means to an end, and all that. They're more concerned with what they can do with it than how they accomplish it.

  30. Re:Or by TeknoHog · · Score: 3, Insightful

    So a jailbroken A is more open than a B in its original, closed state? Fascinating.

    --
    Escher was the first MC and Giger invented the HR department.
  31. Re:obviously meant for low-level debugging by Gollum · · Score: 2, Insightful

    Alas, this hack won't do it:

    In other words, this design is powered with a power source that isn't even available until the iPhone/iPod is booted up.

    I guess you could fix that with an appropriate external power supply; a little wall-wart and some appropriate voltage regulation.

    A USB-serial adapter like the CA-42 (powered from the PC on the other end) would be perfect for that purpose. Check out all the OpenWRT or similar "serial console" articles.

  32. N900 purchase links by rsborg · · Score: 2, Informative

    Dude, it's selling right now from major retailers. Ships today.
    I got this after 5 seconds of googling:
    Google Shopping

    Amazon

    --
    Make sure everyone's vote counts: Verified Voting
  33. Re:Or by anethema · · Score: 2, Insightful

    Fantastic. So to get a usable device, I have to install a different operating system.

    It is cool, nice to be able to do, etc, but not quite the same thing.

    --


    It's easier to fight for one's principles than to live up to them.
  34. Re:Or by cbhacking · · Score: 5, Informative

    Meh... or you could get a N900 that comes with those tools *ALREADY INCLUDED* in the base OS.

    Package manager? Maemo is a modified Debian, and uses Apt.
    Shell? Default is Busybox, but the full system is in the repos.
    Build toolchain, including GCC? In the repos.
    OpenSSH and sshd? In the repos (also dropbear, if you prefer).
    Anything that's available as source and compiles on ARM? Go to town. You can even pull directly to the device using Subversion and other mackage managers.

    Seriously, arguing over whether iOS or Android is more open is like arguing over whether a Prius or a sports car is better for off-road driving. You're both doing it wrong. Get the right tool for the job.

    --
    There's no place I could be, since I've found Serenity...
  35. Re:No, thank you by Walt+Dismal · · Score: 3, Funny

    Few people remember when the iPhone serial port was used to hack into a flying saucer and inject a virus into an alien space fleet, saving the Earth. And the President himself led the attack against the mothership. It seems like only yesterday, before these stupid people locked me up in here.