Days of my old HTC Desire are counted. Despite optimized custom firmware it runs too slow in critical situations leading to missed shots due to laggy camera, waiting long seconds to open apps, constant jitter when company bloatware (read: lotus mobile) is synchronizing, just a few to mention. Swapping HTC Desire for Samsung Galaxy S2 would be optimal choice, the latter still has best hardware-to-price ratio. Is it a good choice for Sense lover, though? I had hope it would be, yet with dozen custom firmware images installed and reviewed, it turned into one week of disappointing experience that ended with handset resell.
I got brand new GT-i9100 SGS2 for 20% cheaper that you can get from mobile operator without tariff plan. Bargain price rationalized its black plastic casing, with cheap toy feeling when compared to HTC Desire. It is inside that matters most, they say, and I put high hopes to excellent dual-core CPU, outstanding display, long lasting battery and good camera.
First touch pleased me a lot: immediate wakeup in less than fraction of a second, highly responsive screen on sliding and application starts, even though with T-mobile branded firmware. All that thanks to old and speedy GB 2.3.4 on board. Samsung KIES software, used to synchronize phone with PC, suggested upgrade to ICS 4.0.3 and I did not hesitate too long; modern hardware should easily host new software without user experience degradation. I have to confess I did not make a research first, that upgrade from XWKI4 to XWLPD firmware version (yes, numbering scheme by Samsung is cryptic at least) is troublesome for many users. I give it a try and couple minutes later of upgrade new look and feel popped up quickly – less than half a minute booting time on SGS2 was blazing fast comparing to Desire spending up to five minutes stabilizing after cold restart. TouchWiz overlay in SGS2 makes ICS looking similar to GB. Whether it is good or not, it apparently slowed down the environment: wakeup took 1 second or more (from deep sleep) and noticeable choppy animation when sliding home screens or application lists. On one hand ICS introduced a lot of improvements like graphics hardware acceleration support, on the other became resource consuming and slower in some areas. Overall what matters is user experience and UI flexibility. From that angle benefits were questionable for me, especially using before Runnymede AIO ROM with Sense 3.5 and RcMix UI customizations. All that gave me more than pure ICS with TouchWiz but performance on Desire handset. The only way was either to downgrade or check custom ROMs. Fortunately both goals were achieved with the same approach: reflashing firmware with Samsung tools.
Samsung firmware structure completely differs from HTC. In HTC bootloader, recovery and system are managed separately; once you have recovery installed (e.g. clockworkmod) you can use it to reflash any ROM and bootloader will start it up. In older HTC models like in Desire bootloader is unlocked so that with recovery can be installed and started by bootloader, all that to manipulate with firmware, installing creating binary backups and so on. SGS2 also have unlocked bootloader but does not separate recovery mechanism. In contrast, recovery tools is supported on kernel level and has be flashed with every custom ROM. Flashing itself however is supported approach since Samsung offers set of images on public website as well as ODIN tool for that purpose. Drawback of recovery bundled with ROM is that it is easy to cut the branch one is sitting on – if the lately flashed ROM does not have recovery, there is no way to flash new one from the handset and the only way to proceed is to use ODIN from desktop computer. Moreover nandroid backup is error prone when swapping ROMs; different ROMs can use different incompatible recovery tools and effectively making backup files useless. HTC way is way better here.
Be warned however that playing with non-Samsung firmware is controlled by the phone itself and may void your warranty. SGS2 bootloader checks digital signature and 3rd party images will bump up a binary counter, register that stores the number of unverified images flashed through ODIN (yes, reflashing from recovery tool is not counted). Good news is that USB jig is a way to reset counter: once it is connected to powered off SGS2 it will wake handset up in download (ODIN) mode resetting binary counter meantime! If it does not happen to you, you have a bootloader with that function disabled and you have to use ODIN to find and reflash older bootloader first. USB jig is just 300k resistor connected to pins 4 and 5 and I replicated this behavior using bare components (a resistor and spare usb adapter).
Samsung approach to flashing has great advantage when warranty is considered. Even in case of faulty screen, it is still possible to reset handset to stock factory conditions in couple steps that do not require interaction with display:
- wipe all caches (to avoid bootloops) with adb shell
- boot again to download mode (holding volume down + power on) and flash old bootloader via ODIN
- power off and use USB Jig to re-enter download mode with zeroed binary counter
- reflash stock ROM via ODIN, voila!
Mastered reflashing process allowed me to check several ROMs to find different problems of SGS2 and different firmwares:
- Pink spot in camera – visual artifact that appears in center of a picture when pointing on gray surface in moderate or low light conditions. Testing on different ROMs and different cameras I could not find a way to reduce that effect. Seems like hardware issue to me, some people claim it is lens’ design flaw. Huge drawback for me as I take most pictures with handset when traveling.
- Password forced on wake when put to sleep manually. I am using company software that enforces secure, long and complex password prompted after 30 minutes of inactivity. I did not expect handset to lock with password every time I press power button to put it asleep. On HTC devices, old and new ones, you can lock and unlock not being prompted for password. On SGS2 it works only if handset goes idle itself. More frequent case like locking screen to put phone to the pocket means that a moment later I am picking it up and have to type a password. To be fair it is default Android behavior in GB, ICS and JB on all SGS2 custom ROMs I have tested. Damn it!
- Flash spuriously triggers on stock camera exit. That was really surprising, when I notices flash has frequently fired on camera application exit. It happens in low light conditions like room in the night with dimmed light: enter camera that is set in auto-flash mode and then simply press home button to switch back do main screen. I guess camera is trying to autofocus on exit and uses supportive flash as it is allowed. If the camera is in no-flash mode, it does not happen. It can be recreated easily on most popular SGS2 ROMs (RootBox and Resurrection Remix) as well as some others that I have not memorized. Annoying effect if camera opened by accident.
- No device-only calendar. Purely Android feature forcing you to setup online account first. If you do not want to keep calendar entries out there. there is no choice. Unless you are using HTC Sense that provides built-in “PC sync” calendar. I am very strict on my privacy and I keep my sensitive data only in smartphone. Neither Samsung’s TouchWiz nor custom ROMs for SGS2 fill that gap.
- Missing reach and nice widgets. Once you experience Sense widgets it is hard to give up. Despite complaints on heavyweight of Sense itself take a look how many replicas of “clock with weather” you can find everywhere. And modern Sense 4.x slimmed down is even more compelling. I can find plenty of widgets in Google Play, yes, give me Sense consistency and features for pennies and I will consider it again.
- HTC_IME_mod keyboard for SGS2. Highly customizable keyboard with gestures and character mapping, one of fundamental apps speeding up my daily routes through smartphone. Claimed as ported to SGS2 yet giving force closes constantly.
- No Sense for SGS2. I was naive assuming I can find ROM with Sense for Samsung device. It become clear when I started looking at differences in firmware architecture, porting is not easy and none done this so far. OK, you can find mimics of some widgets or app launcher themes but they are weak impostors.
After a week of evenings spent on testing I realized how deeply I am locked into the Sense overlay. As HTC Desire my was first smartphone I did not realize how well it fits my specific needs and sense of aesthetics. SGS2 is still unquestioned excellent piece of hardware, without satisfying software part it was hard to accept. I was glad to find excited buyer that took it for even more I spent.
The lesson learned is that I should have played with other phones before buying SGS2 as well as I should double check that custom ROMs are non-sense :] because Sense is hard to port from HTC hardware. My attention turned back to find a successor among HTC devices comparable to SGS2 – whether it is mid range Sensation XE, maybe Evo, One S or flagship One X. The round-trip through the stores has already begun…