Wednesday, October 12, 2011

Tips on using Windows in a virtual machine for upgrading Docomo Xperia X10 SO-01B

After a long frustrating experience, I've finally fully upgraded my Docomo-branded Xperia X10 (which as been officially abandoned to Eclair). For now it's is running Wolf's Gingerbread ROM. The reason this took so long is partially because I am most experienced with unix-like operating systems and HTC phones, so I lack experience with Windows and Sony Ericsson - each of which do things very differently from what I consider "normal" and "efficient".

(I mean, USB drivers? Come on, that's so last century. And finding these drivers can be a real pain because links to files on SE's website die and respawn faster than me playing Halo against a bunch of 15 year olds.)

Lack of documentation surrounding Flashtool, which is needed to flash new kernels and radios, also caused me some issues. And running XP in Virtual Box added an extra layer of complications and uncertainty - when something doesn't work, is it a bug in the software, a problem with windows, or an issue with the VM?

Here are some bullet points of what I learned along the way, some of it obvious, some of it less so. Had I waded through the 100s of replies in the main threads, I probably could have found this information, though it probably would have taken longer. (But then I'd have to subject myself to children posting just to say first, without even understanding the post, not to mention other children complaining that they never get to be First!)
  • Adding commands to the windows path is retarded.
    • Right and left click a bunch of times until you get to the place where you can set environmental variables and type this into the itty bitty text box to get ddms and adb added to the path: %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;"C:\Program Files\Android\android-sdk\platform-tools";"C:\Program Files\Android\android-sdk\tools"
    • (Actually, you'll spackle everything on from Wbem;)
  • Kernels and basebands (radio) can only be flashed with flashtool.
  • Once upgraded to the Gingerbread kernel and baseband, you don't need flashtool to flash new ROMs because everything else can be done though recovery.
  • Setting up a developer environment on the guest machine is not enough to fully use flashtool. Installing the SE USB drivers here are enough for:
    • Full adb and ddms functionality
    • Partial flashtool functionality (anything that doesn't require the phone being in flash mode, such as rooting and "optimize" - DON'T CLICK OPTIMIZE.) 
  • Flashtool contains the drivers necessary for flash mode.
    • There is no documentation regarding this or mention of it on the main two posts.
    • After installing flashtool, check the drivers folder and run gordon gate setup. 
  • SE Phones show up as different hardware to Windows when booted normally and booted into flash mode, and each state requires different drivers and USB filters
    • You can either create specific filters to pass the phone though the host to the guest OS for each state, e.g. (The below two USB devices are both the same phone):
      • SEMC HSUSB Device [0224]
      • Sony Ericsson Mobile Communications AB SEMC USB Flash [0100]
    • Or create a catch-all, generic USB filter that will capture everything plugged into a USB port (New Filter 1).

1 comment: