Rube Goldberg Smartphones



  •  So, I recently got hold of a new smartphone. After the general installation, I took a few photos and plugged the phone into my computer via the included USB cable to download the photos. This started the following installation process (the computer was running windows XP) :

    • At first, the phone registers as a standard windows CD rom drive, which contained a setup for the ctual drivers. A CD rom drive and not a mass storange device so the  installer can be started via autorun without virus scanners getting upset.
    • The installer registers a few proprietary USB endpoint drivers, among those a virtual network card.
    • After all drivers are installed, the installers sends a signal back to the phone, causing it to unregister the fake CD rom. Instead it will now register as a network card, assign me an IP via DHCP and start up an internal web server.
    • The installer (which is still running) waits until I have an IP assigned and then opens a browser, pointing me to the phone's web interface and finally quits.
    • On the web interface, I can now finally choose which photos I want to download.
    • During all of this I didn't have to press a single key.
    On the one hand I'm amazed at the ingenuity. On the other hand I kept thinking "WTF". I still can't decide...



  • Perhaps the real wtf is that the phone implements USB cdrom but chooses the rest of that insanity to expose your pictures, rather than just have them appear to be on the CD.



  •  I'm just grateful that all my portable hardware, when plugged in, says to the computer: "Hey. I'm a drive. Figure it out."


  • Discourse touched me in a no-no place

    @dhromed said:

     I'm just grateful that all my portable hardware, when plugged in, says to the computer: "Hey. I'm a drive. Figure it out."

    I don't think, given the OP, running non-Windows counts (or you're very selective about external hardware if you do.)



    Which leads me to the question: What does said [OP] hardware present on non Windows systems? If anything, of course.



    { This hardware requires Wine or VirtualBox. Please install these from <URL&gt]... }



    (Of course, allowing autorun on anything claiming to be a CD is probably TRWTF here. I deal with modems as part of our product at work and a not insubstantial number of them profess to be (and only) a CD when powered up. With little in the way of anything useful on them to non-Windows systems. They need to be gently (FSVO gently for some of them) prodded and poked before they decide to be a modem on anything else.)



  • Crapton of cheapo MP3 players also does this "CD with drivers in autorun" shit. Makes me want to lobotomize the authors of the software with an old, rusty butterknife.

    Or, like Raymond Chen would say, "Someone surely got a raise for that feature."

    (*sigh* Of course, no one would notice any difference after the lobotomy...)



  • @PJH said:

    Which leads me to the question: What does said [OP] hardware present on non Windows systems? If anything, of course.

    Which in turn makles me think: what would the right way to do that for OS-independent hardware?



  • Wasn't the Open Firmware stardard SUPPOSED to make peripherals provide some kind of "portable driver" in Flash or ROM on them?



  •  I thought the entire point of having mass storage protocols was so that you could plug any number of devices into a computer and just access the internal memory.

     And I just have to ask:  What the HELL does a phone need a browser based interface for?



  • Please, you have to tell me what OS/brand your "smartphone" uses. I need to warn others not to use it.

    And I thought my BlackBerry was freaky with the USB controls. It presents only the USB Mass storage side; getting the BB to show its modem interface is a PITA in anything other than Windows. :(



  • @danixdefcon5 said:

    Please, you have to tell me what OS/brand your "smartphone" uses. I need to warn others not to use it.

    And I thought my BlackBerry was freaky with the USB controls. It presents only the USB Mass storage side; getting the BB to show its modem interface is a PITA in anything other than Windows. :(

     

    Wha?  I used the Verizon dialing program for my blackberry's modem for two years, even over bluetooth it was absolutely painless.



  • @Master Chief said:

    Wha?  I used the Verizon dialing program for my blackberry's modem for two years, even over bluetooth it was absolutely painless.

    Now try it in Linux, without the aforementioned Verizion dialing program, by USB. I'm able to do it with the Blackberry software in Windows without any kind of pain, but trying to do the USB tether on Linux was nigh impossible without hacking stuff.

    But yes, compared to this other "smartphone", the BB is actually a decent phone. The USB mass storage interface works almost everywhere, only in the PS3 have I had any trouble with it. Any other device will work with the BB. :)



  • No idea what your problem is - "bbtether" works fine for me on Linux.

    Of course, using libusb to access it raw is not exactly nice. But it works.

    A worse blackberry problem on Linux is the mass storage support - it tends to crash the USB connection when loading files from the Blackberry. Needed a hack like this:

    SUBSYSTEM=="block", ID_VENDOR=="RIM", BUS=="usb", KERNEL=="sd*", RUN+="/bin/sh -c 'echo 128 > /sys/block/%k/device/max_sectors'"

    to make USB mass storage work properly. When not doing that, Linux requests larger transfer sizes than the BB supports, causing USB device reset.



  • Meh, I have a USB cellular modem that does the whole CD with drivers trick. Wasn't too hard to get it to work in Linux, the CD-ROM "eject" command causes it to transmogrify into the modem. I kinda thought that would be some sort of standard, but going by this thread I guess not...



  • @PJH said:

    Which leads me to the question: What does said [OP] hardware present on non Windows systems? If anything, of course.

    My strong assumption is: Nothing.

    @PJH said:

    (Of course, allowing autorun on anything *claiming to be* a CD is probably TRWTF here. I deal with modems as part of our product at work and a not insubstantial number of them profess to be (and only) a CD when powered up. With little in the way of anything useful on them to non-Windows systems. They need to be gently (FSVO gently for some of them) prodded and poked before they decide to be a modem on anything else.)

    I can kind of imagine the reasoning behind this. At least in XP, if windows finds an unknown USB device, it will always fire up the "hardware installation assistant" - even if all that assistant can do is to say "sorry, I have no clue where to get he drivers either".
    Apparently this dialog keeps confusing users or something like that. In any case, it has become the avowed arch enemy of all hardware vendors and so they come up with increasingly creative tricks to get rid of it. That's why some devices seem to avoid showing up as "unknown" at all costs, even if the consequences are completely stupid.

    And yeah, I've seen the CD rom trick before, too. What I hadn't seen yet was someone not just going through the trouble of implementing a fake CD rom but also a fake network card. But all that stuff was just the first of four(!) different "USB connection modes" this thing apparently has. I'm keen and excited to try out the other three.

    @danixdefcon5 said:

    Please, you have to tell me what OS/brand your "smartphone" uses. I need to warn others not to use it.

    Motorola DEFY with Android 2.1.

    @b-redeker said:

    Which in turn makles me think: what would the right way to do that for OS-independent hardware?

    I'm wondering about that as well. Apparently there are standard USB device classes for force-feedback joysticks. Why can't there be a "Get yo drivers here" class?
    But I guess it's too late now and soon someone will declare the cd rom/autostart trick the "de-facto standard"... 



  • @danixdefcon5 said:

    @Master Chief said:

    Wha?  I used the Verizon dialing program for my blackberry's modem for two years, even over bluetooth it was absolutely painless.

    Now try it in Linux, without the aforementioned Verizion dialing program, by USB. I'm able to do it with the Blackberry software in Windows without any kind of pain, but trying to do the USB tether on Linux was nigh impossible without hacking stuff.

    But yes, compared to this other "smartphone", the BB is actually a decent phone. The USB mass storage interface works almost everywhere, only in the PS3 have I had any trouble with it. Any other device will work with the BB. :)

     

    Why would I do something like that when it works perfectly well in Windows? :P


  • Discourse touched me in a no-no place

    @Master Chief said:

    Why would I do something like that when it works perfectly well in Windows?
    :P
    You wouldn't. Since you're content with Windows. Some of us aren't quite so content (or, by employment, required to not use Windows.)



    Next rhetorical question please? :)



  • @PSWorx said:

    But I guess it's too late now and soon someone will declare the cd rom/autostart trick the "de-facto standard"... 
    Several months ago I made the mistake of buying a SanDisk "Cruzer" flash drive.  It came with some sort of crap software on a separate partition configured to appear as a CD-ROM complete with auto-run.  Attempts to delete the files and repartition failed because ....... you can't do that to a CD.  Finally, after much work  I was able to delete and repartition into a single 16 GB drive with no crap software. Unfortunately, the drive was non-functional at that point.  I'm still not sure how I broke it, but in the future I would be highly suspicious of any device attempting to present itself as a CD.



  •  Have you ever used a Samsung Smartphone? They requiere the usage of the Samsung Kies Software in Order to acess data.

     Samsung Kies is about 500mb large(or at least the latest update was), implements it's own virtual desktop and crappy filemanager(and webbrowser, music player, video player, photo editor), and HAS IT'S OWN REGISTRY!!!

     


  • Garbage Person

    @Gern Blaanston said:

    @PSWorx said:

    But I guess it's too late now and soon someone will declare the cd rom/autostart trick the "de-facto standard"... 
    Several months ago I made the mistake of buying a SanDisk "Cruzer" flash drive.  It came with some sort of crap software on a separate partition configured to appear as a CD-ROM complete with auto-run.  Attempts to delete the files and repartition failed because ....... you can't do that to a CD.  Finally, after much work  I was able to delete and repartition into a single 16 GB drive with no crap software. Unfortunately, the drive was non-functional at that point.  I'm still not sure how I broke it, but in the future I would be highly suspicious of any device attempting to present itself as a CD.

    Did it perhaps occur to you that you might not be the only person ever to buy a Sandisk drive?

    Perhaps you could have used the Internet to find out?



  • @PSWorx said:

     So, I recently got hold of a new smartphone. After the general installation, I took a few photos and plugged the phone into my computer via the included USB cable to download the photos. This started the following installation process (the computer was running windows XP) :

    • At first, the phone registers as a standard windows CD rom drive, which contained a setup for the ctual drivers. A CD rom drive and not a mass storange device so the  installer can be started via autorun without virus scanners getting upset.
    • The installer registers a few proprietary USB endpoint drivers, among those a virtual network card.
    • After all drivers are installed, the installers sends a signal back to the phone, causing it to unregister the fake CD rom. Instead it will now register as a network card, assign me an IP via DHCP and start up an internal web server.
    • The installer (which is still running) waits until I have an IP assigned and then opens a browser, pointing me to the phone's web interface and finally quits.
    • On the web interface, I can now finally choose which photos I want to download.
    • During all of this I didn't have to press a single key.

    On the one hand I'm amazed at the ingenuity. On the other hand I kept thinking "WTF". I still can't decide...

    On the third hand, it could have gone so far as to register as a USB floppy drive.  And also a keyboard.  And then ghost-typed Start->Run->B:\SETUP.EXE<cr>, like some devices have been known to do.



  • @DaveK said:

     On the third hand, it could have gone so far as to register as a USB floppy drive.  And also a keyboard.  And then ghost-typed Start->Run->B:\SETUP.EXE<cr>, like some devices have been known to do.

     

    Names or it didn't happen.



  • @PJH said:

    @dhromed said:

     I'm just grateful that all my portable hardware, when plugged in, says to the computer: "Hey. I'm a drive. Figure it out."

    I don't think, given the OP, running non-Windows counts (or you're very selective about external hardware if you do.)

    Which leads me to the question: What does said [OP] hardware present on non Windows systems? If anything, of course.

    { This hardware requires Wine or VirtualBox. Please install these from <URL&gt]... }

    (Of course, allowing autorun on anything *claiming to be* a CD is probably TRWTF here. I deal with modems as part of our product at work and a not insubstantial number of them profess to be (and only) a CD when powered up. With little in the way of anything useful on them to non-Windows systems. They need to be gently (FSVO gently for some of them) prodded and poked before they decide to be a modem on anything else.)
     

     I'm so happy that I got out of the modem business 5 years ago. All of this crazyness was just starting back then. Good luck with your line of work, I feel for you. Windows TAPI was a pain, we avoided it at any cost. But Windows at least has an API, Linux was even more fun, it didn't even have the concept of a modem.

     @DaveK said:

    On the third hand, it could have gone so far as to register as a USB floppy drive.  And also a keyboard.  And then ghost-typed Start->Run->B:\SETUP.EXE<cr>, like some devices have been known to do.
    That would give interesting results on my Windows computer, given that I still have 2 floppy drives (5.25" still lives!)



  • @RogerWilco said:

    Linux was even more fun, it didn't even have the concept of a modem.
     

    Back around the turn of the century all you needed was a symlink /dev/modem to /dev/cua0 (or was it already /dev/ttyS0?). That's how I used Slackware 4.2 with my external 33.6kbps modem on my 486DX! IMSMR my modem was a "redback" brand. I guess spider references were cool back then, to access the "web"!



  • @Gern Blaanston said:

    Attempts to delete the files and repartition failed because ....... you can't do that to a CD.  Finally, after much work  I was able to delete and repartition into a single 16 GB drive with no crap software. Unfortunately, the drive was non-functional at that point.  I'm still not sure how I broke it, but in the future I would be highly suspicious of any device attempting to present itself as a CD.
    I'm always surprised people have so much problems removing U3 from their drives - let the launcher run, go to Launchpad settings and click Uninstall (unless you're on a non-Windows system - Sandisk has a remover for OSX on their forums, and if you're on Linux, you're out of luck).

    OTOH, if you look around, you can find programs that can replace the CD-ROM portion of the drive with any ISO you'd like, so my Cruzer can boot a rescue CD.



  • @PSWorx said:

    @DaveK said:
    On the third hand, it could have gone so far as to register as a USB floppy drive.  And also a keyboard.  And then ghost-typed Start->Run->B:\SETUP.EXE<cr>, like some devices have been known to do.
    Names or it didn't happen.

    I'm reminded of this post on Raymond Chen's blog where something similar was mentioned - such a device would be able to install a driver even if you disabled autorun.



  • @ender said:

    I'm always surprised people have so much problems removing U3 from their drives ...
    My objection to U3 is that it shouldn't be installing stuff in the first place without explicit permission from me. Walking up to a customers computer, popping in a flash drive and having it install software by default is not my idea of how a piece of hardware should behave. The first time this happened to me I downloaded the utility to nuke U3 off the drive and then chose to never buy a U3 enable flash drive again.




  • Garbage Person

    @OzPeter said:

    @ender said:
    I'm always surprised people have so much problems removing U3 from their drives ...
    My objection to U3 is that it shouldn't be installing stuff in the first place without explicit permission from me. Walking up to a customers computer, popping in a flash drive and having it install software by default is not my idea of how a piece of hardware should behave. The first time this happened to me I downloaded the utility to nuke U3 off the drive and then chose to never buy a U3 enable flash drive again.
    Last I saw U3, it DIDN'T install anything - it was completely self-contained and that was the point. It's primarily an infrastructure for portable applications.



  • @Weng said:

    Last I saw U3, it DIDN'T install anything - it was completely self-contained and that was the point. It's primarily an infrastructure for portable applications.
    Well, it does copy a few things to local application data (temporary data used by applications, and the launcher itself, so it can clean up if you just yank the drive out instead of clicking the Eject button). But you can disable autorun in it's settings.


Log in to reply