Of firmware and the i8910 HD
Here's the idea. When a manufacturer creates a top end smartphone, it pulls in hundreds (if not thousands) of core operating system files and resources, then adds its own additional apps, modules and customisations. These then, in the case of a Symbian-powered phone, form, in compiled form at least, the firmware of the device, occupying around 200MB of the built-in flash memory chip, termed disk Z: (what's left of the chip then forms the C: disk, by the way, as you'll see later).
In theory, there's no way for a user to get into the firmware, in order to 'fiddle', but as usual where there's a will there's a way. Note that actual access to firmware will vary according to manufacturer - this feature is looking at Samsung's flagship. Note also that this feature is in no way concerned with piracy, or modifying a phone for the purposes of installing hacked applications - this is a totally separate 'scene', one that's prone to abuse/malware and one that All About Symbian definitely doesn't recommend getting involved in.
What we're talking about here is taking a smartphone whose very use has been crippled by its own manufacturer. For example, when Rafe and I played with the prototype Samsung Omnia HD (later renamed to i8910 HD), it had pre-focus when capturing videos. It also had almost 100MB free on disk C: - not just extra space for users to fill, but vital for operating system temporary files, downloaded patches, web browser cache , messaging database, and so on. It also had a number of software bugs.
Exactly one year on and we find a device that has been through 3 or 4 firmware updates and yet has lost the very useful pre-focus, now has only 18MB of free space on disk C:, a ridiculous and untenable amount for a 2010 smartphone after a hard reset (just look at the problems on the Nokia N97 with three times the free space), plus quite a few of the original bugs and problems are still there. Samsung haven't exactly been pouring much love out on the i8910 HD, it's all but an orphan.
Which is why I was fascinated to read of the activities of Andy (a.k.a. HyperX), who claimed, almost in passing, as part of a drive to tidy and fix things generally, to have managed to extract the firmware ROM files of the i8910 HD and have juggled the various files and resources in order to save a massive 60MB of C: disk space. As a side benefit, pre-focus in video capture has been added back in again, plus there are some useful little utility extras. Amazing. And, of course, he's worked out a way to load this firmware onto the phone, something which I suspect is somewhat easier to do on the Samsung than it is on Nokia units.
However, quite why one man, working alone, has been able to accomplish all this, while Samsung's official teams seem to have been going backwards, is beyond me. In this feature, I'm going to chronicle my own faltering steps in following Andy's instructions and updating my own Samsung i8910 HD to the HX 3.17 ROM. If, like me, you've never been down this road before, heading into the warranty-breaking, ever-so-definitely-grey-area that is reflashing your phone with non-approved firmware, then hopefully this should prove interesting.
DISCLAIMER: All About Symbian doesn't endorse any procedures which might cause you to void your warranty or break your smartphone. This feature is in the spirit of an adventure outside the normal 'safe' channels. I'm a very experienced tinkerer, the creator of the HX ROMs even more so. If you don't feel confident at working through the multi-step process or if you're worried about the possible loss of a working phone then please stop reading now. And AAS absolves itself from any responsibility should you decide to carry on and things go horribly wrong.
Modifying the firmware
Prerequisites:
- My Windows XP PC had the latest Samsung PC Studio installed.
- Plugging in my unbranded i8910 HD, I see PC Suite telling me that the latest official firmware is still XXJB1 (as at 21 Mar 2010)
- On the phone itself, with nothing at all installed to disk C:, it was showing 15MB free
jpg" alt="HXing the i8910 HD" width="306" height="270" />Looking at HyperX's instructions, I saw no mention of my firmware, JB1, but I did know that my i8910 HD is based on the Italian firmware, so I went for the JC1_Italy version and (ahem) hoped for the best [don't worry, it all comes right in the end!]
The firmware comes packaged in a 86MB .EXE file, itself RAR-compressed. In the Windows world, this is just about the biggest red flag you can see to warn of malware and trouble ahead, but in this case the source was trusted and I was happy to be the All About Symbian guinea pig. And I had latest anti-virus loaded, of course - just in case! To handle the RAR file on the PC, I grabbed WinRAR, a well-respected name I also trusted.
After decompressing the file, I ran JC1.EXE and saw a phone-flashing interface with no buttons that could be pressed. Obviously, something else was needed.
Back to the instructions. I downloaded the XML and flash drivers for Windows (all part of hyperX.rar). Running the three programs included showed that Microsoft XML was already installed (probably part of the latest Windows XP), as was SSDN 'USB d/l driver' (probably there as part of Samsung PC Studio), but it was good to try/check anyway. 'Samsung Mobile USB Driver' turned out not to be on my system, so that did install properly. I didn't install 'Phone driver', as I didn't think it was quoted/needed.
Now for some resets and restarts. The former for the i8910 HD - there's no kind of User Data Preservation on the Samsung smartphone normally, even when going down the official flashing route, so data and apps would definitely have to be put back later anyway. And HyperX recommends a hard reset (*#7330# on the homescreen dialler, default lock code 00000000), to help things go more smoothly, though I wasn't sure what difference it would make. Windows also had to be restarted, in order to pick up the new drivers.
Carrying on as per Andy's instructions, I started JC1.EXE again. Then I held volume-up and Lock while powering the i8910 HD on. An intriguing blue boot loader screen appeared. Ooh. I've not seen that before.
Plugging in the microUSB cable, the first action field on the JC1 utility changed to 'Ready' and the main 'Download start' button was activated. We're in business!
Over the next ten minutes, the 200MB or so (at uncompressed sizes) of i8910 HD ROM was transferred to the device, with tiny-fonted numbers incrementing happily on the phone's screen, reassuring me that something 'was happening'...
Finally...
Success! I unplugged the cable and restarted the i8910 HD. It booted into its default HX wallpaper, by way of confirmation that, for this device at least, nothing would ever be the same again.
Checking out the modified i8910 HD
First stop was File manager, to check out free space: over 80MB on disk C: !! It's a minor miracle - at least it will be if everything still works.
Second stop was the camera, to check out the 'new' pre-focus in video capture. The full HD video resolution was working fine in terms of picture, but I wasn't happy about audio/video sync ('lipsync') - much as it was on that first prototype - there's simply too much data being created for the encoding routines to keep up, I suspect.
More useful is 'D1' resolution, i.e. 720 by 480 pixels, fast becoming something of a smartphone standard, it seems. In fact, I shot a short comparison sequence, as I'd been mulling over using the new i8910 build to shoot footage for The Phones Show. Here's the video:
Note that the footage was shot/released in wide-screen at higher resolution - if you can spare the time, click through to the original YouTube video and watch it full-screen, for a better comparison.
Impressive. The pre-focus works really well and never have I been more embarrassed than seeing myself with all facial imperfections so close up and in crisp focus! The raw sound after flashing the HX 3.17 firmware had lots of hiss - it was effectively the raw capture from the i8910 HD's microphone, so I confess that before filming the video above, I also took a moment to download HyperX's 'Noise suppression' patch, which chops out all the hiss, at the expense of 'gating' the audio slightly, an effect which isn't ideal, though you do have to know what you're listening for in order to spot it.
So that's two huge wins over the default Samsung firmware. Time to explore what else is new/different:
- There's no obvious 'Turn off' option, somewhat bizarrely, you're offered 'reboot' when you press and hold the hangup key. Luckily, you can press and hold again (or just keep it pressed from the first time) to complete a power down
- There's now a raw file system browser, apparently part of the Symbian^2 tool set, tucked away in the Office folder, equivalent to the likes of Y-Browser or X-plore
- In Applications, there's a new app, ROMPatcher+, which I understand is a utility to facilitate small ROM patches that don't need a full re-flash. I've seen this mentioned in conjunction with hacked Nokia phones and I'd rather not go there right now. Google is your friend if you want to go down this route yourself.
- Photo shooting is faster and quality is better (apparently)
- There have been improvements to the Java engine (again, apparently, I haven't benchmarked this)
In terms of problems, I noticed a number of apps and situations where display auto-rotation doesn't work, but I'm reliably informed that these didn't work (by design) in the Samsung firmware either and that there's nothing that HyperX can do.
(left, stats from a working system, i.e. all my essential apps installed to C: plus a number of apps running in RAM already; right, Symbian Podcatcher ready to rock and roll)
I also found Samsung's Podcasting app to be horribly buggy, but again this is Samsung-compiled code - downloading the new Symbian Podcatcher worked a treat in terms of gathering podcasts. It's meant for Symbian^3 though, and so relies on Music player to pick up the shows and handle the playing. Now, the HX firmware has a speed trick up its sleeve for music - to keep refreshes fast, it only looks in \Music on each disk - and, curiously, even if you tell Podcatcher to put its podcasts inside '\Music' the shows still don't show up. So Music player's out. Which leaves using File manager as your way in to play podcasts - they're all handily sorted by podcast name, so it's not too much of a bother, thankfully.
I experienced a few 'Memory full' errors early on, but these were likely related to the buggy Samsung (licensed Nokia source code) Podcasting client - I've not had one since stopping using that. Finally, switching SIMs didn't see the right APNs picked up from my Vodafone SIM card, I had to enter my prepay APN details manually.
One big caveat to place on everything to do with the Samsung i8910 HD is that you'll lose everything at every firmware update - whether via Samsung official sources or via HyperX. So you'll have to use File manager | Backup to save your data and documents, but resign yourself to an hour or so of reinstallation of applications and tweaking of preferences and settings, should you feel compelled to update to the latest and greatest. And when you DO come to restore, either from PC Studio or memory card, make sure not to restore 'Settings' (tempting though it is), since this will, among other things, knock out the magic trick that has re-enabled pre-focus in video capture (apparently). Admittedly, this full rebuild is what I normally advise even on Nokia handsets, which have UDP (User Data Preservation), but at least there you've got a choice.... 8-)
Update: It's also worth mentioning that I found the installation of Java applications to be very buggy, installations of completely different apps simply overwrote each other (and each other's icon). Can you live without any Java apps? Now there's a question....
Worth the pain - heck, yes probably
As you'll have gathered from all of the above, the re-flashing and rebuilding of a Samsung i8910 HD isn't quick or trivial. But, assuming you quite enjoy the fiddling process (I do) the end result can be well worth it. I now have a super-fast, graphics-accelerated, Symbian smartphone with oodles of RAM and C: space, a huge 3.7" OLED capacitive touchscreen, focussed video and very loud speakers. That's an awful lot of pluses to work towards, and balancing out the few caveats.
What of Samsung themselves? I'd guess that they'd take a dim view of these sorts of activities officially, but that privately they'd understand - and might even be secretly delighted that some hard-core geeks are pushing their phone beyond where their own dev teams have got to. And who knows, maybe these efforts will spur their own programmers on to greater feats?
If you have an i8910 HD, and especially as it's now heading out of warranty, I'd recommend biting the bullet and trying the HX firmware. You've little to lose and a whole lot to gain.
Steve Litchfield, All About Symbian, 24th March 2010
Update: See also Part two to this feature, exploring living with HX 3.17 day to day