Tuesday, May 29, 2012

I mentioned before that though I liked my new phone, there were some annoyances with it, mostly related to software. The major ones: a lot of bloatware pre-installed by T-Mobile, and the absence of a hardware menu button. I also noticed that multi-tasking worked some strange way on this model. Almost every time when I opened a page in the browser, then switched to some other app, then returned back to the browser, it reloaded the page like if the process was killed, then restarted. Apparently it's a common issue for all the HTC One phones. HTC have gone too far in their efforts to improve the battery life - they kill the background applications too aggressively.

So I did some research and prepared to fix all the problems at once. Below are the steps I followed.

DISCLAIMER: I AM NOT RESPONSIBLE FOR ANY DAMAGE YOU MAY DO TO YOUR PHONE FOLLOWING THESE STEPS. DO IT ON YOUR OWN RISK!

Step 1: Unlock the bootloader
Warning #1: This procedure may void your warranty!
Warning #2: During this procedure the phone will be reset to the factory state, so backup all your data!

You have to register at HTCDev.com, and follow the procedure described there. Download their fastboot utility, use it do get your device identification code, submit that, and HTC emails you the unlock code, which needs to be flashed to the device.

Step 2: Flash recovery ROM
Download ClockworkMod recovery (get the Superuser application there as well - it's under the Download ROMs link). Reboot the phone into FastBoot mode by holding the Volume-Down button while switching it on. Connect to USB and use the following command to flash the recovery ROM:

fastboot flash recovery recovery-clockwork-5.8.3.1-ville.img

More details about flashing, working with ROMs and other hacking stuff could be found at XDA-developers.com. It's an excellent resource with a lot of useful information, which helps to get maximum from your phone.

Step 2a: Make a backup
Reboot the phone to FastBoot mode again. Select the Recovery menu item using Volume-Up/Down and Power buttons. When in the Recovery mode, select Backup/Restore and make a Nandroid backup just in case.

Step 3: Root the phone
Reboot the phone normally, connect it as USB storage, copy the Superuser su*.zip file there. Reboot to recovery mode, flash the file using "install zip from sdcard" menu, and reboot again. The phone is now rooted!

Step 4: Fix the menu button
Download the Menu_Mod.zip file from this post at XDA-developers and flash it the same way in Recovery mode. The thread has some details on what exactly is done by flashing that file. There are different versions of the mod for different versions of the phones. The one above is specifically for the T-Mobile version as mentioned in the post. The change assigns the menu action to the Task Switcher button, and the task switching action to the long-press on the Home button as was on the older phones. It works beautifully!

Step 5: Removing the bloatware
There are options how to do this, but all of them require root access - that's why we needed the Superuser utility. A good way is to use Titanium Backup, which allows to backup an app before uninstalling it - just so it could be restored later if required. The list of the apps, which are not really needed is discussed here. I removed 24 applications! That's how much useless junk was there. And that's not counting those I kept just in case (may get rid of them later).

Step 6: Fix the multitasking issue
Apparently the parameters, which control the behavior of the system task manager, are editable (with root access of course), and their tweaking might help. Install MinFreeManager from Google Play. Here is a good article on the subject. The idea is to let the background applications run, do not kill them. Looks like that reducing the numbers in that utility from default values, especially for the Hidden App, helps the applications stay in memory longer, so switching back to them can be done without their restarting and reloading. I noticed a great improvement, though I guess removing of the useless junk, which took memory, helped here as well.

* * *

Now after doing all this, and reinstalling my usual set of applications, I see about twice more of the available memory (normal idle numbers were around 130-140MB, now they are up to 250-280MB and even more). Everything seems to be working as it should, the phone not only looks great, but now works well too. I am happy! :)

Sunday, May 27, 2012

My new phone requires a micro-SIM card, which is a problem, as Wind Mobile does not provide such format yet, so I have a standard size "mini" SIM. A good thing is the micro-SIM uses the same chip with the same contacts as the normal SIM, so it is possible just to cut a micro-card out of the regular one. There are many instructions online with illustrations and videos how to do that.

Well, I had to use the new phone somehow, so I didn't have much choice. Found a good illustration with exact dimensions - it seemed easy to do. So for a test object I found an old Rogers SIM card, which I didn't need anymore, got good scissors, did the measurements, and just cut the card.

The new card could fit into the phone, and it did not complain.

So, I got my working Wind SIM card, and again measured it. I was afraid its bigger chip would be too big, but it looked exactly the right size! A couple minutes later I got a home-made micro-SIM card:

Put it into the phone, and ta-da! It worked!

So it is confirmed: you can actually make a micro-SIM card from a regular SIM without any special tools! You just need a ruler, regular scissors, and a pair of straight hands.

My birthday was last month, and it was about time to upgrade my Nexus S phone, so I decided to get myself a new more interesting and modern phone as a birthday present. While researching what was available on the market, compatible with AWS/UMTS used by my provider Wind Mobile, I found that T-Mobile USA was about to release a UMTS version of HTC One S. I noticed the new HTC One series some time ago. It reminded me the Nexus One - my first Android phone, which I liked more than the Nexus S, and I was looking for something similar. I really liked the design of the One S - so thin and stylish. Unfortunately the One series was not compatible with Wind at that time. But T-Mobile version should be compatible, as they use the same band! So it was decided, that was my next phone.

I checked Expansys.ca, they were already receiving orders for the T-Mobile version of One S, and I ordered it. After more than a week of waiting, they were still not in stock, so I decided to get it from eBay, as by that time these phones started appearing there. I won an auction where the seller promised to unlock the phone, waited another week, contacted the seller a couple times, and finally he admitted that he could not unlock the phone after several attempts to get the unlock code from different places. I had to buy the phone from another seller - the description said, it's already unlocked. In reality the seller was "ready to unlock it", but again the unlock code was not easy to get. Luckily he finally managed to unlock it, and in several days the package with the phone arrived!

It is really thin - only 7.8mm! Nexus S compared to it is so fat! :) It turned out though that such a thin shape, especially made out of slick aluminum, is a bit difficult to hold. And it's especially difficult to take from the desk surface - it's like a sheet of paper, which you need sometimes to move to the edge of the desk to pick up. :) But I can live with that - I still like the form factor and the design. The phone is more solid and better looking than all those plasticky Galaxies from Samsung. HTC still can do it! I liked their devices since the iPAQs - they always had nice design and were solidly built. And their modern phones are even better!

There are some annoyances on the software side though. As usual T-Mobile put a lot of bloatware, which I had to disable. I also don't like this new approach for the latest Android versions to get rid of the dedicated menu hardware button. Unlike Galaxy Nexus, which draws the buttons right on the screen, so can accommodate a small menu button on the side when needed, the HTC One has regular hardware sensor buttons, and because there is no menu button, and no place where to put it, in the old applications, which are not yet ported to Android 4.0, the button appears on a special black stripe at the bottom of the screen:

This is far from ideal of course, as it takes so much space just for one button! It definitely needs to be fixed, and I am planning to root the phone soon to do it. It's possible on One X to turn the task-switch button (which I rarely use) into the menu, and I guess it should be the same for One S as well. I was planning to root it anyway to remove that useless T-Mobile junk, so will fix this too.

Other than that I like the phone: it's nice and fast; the screen is good, even though it's "just" qHD resolution (960x540); it has a good camera and excellent sound. And did I mention the form-factor and design? ;)

Saturday, May 26, 2012

I installed Ubuntu 11.10 as a second system on my new PC some time ago, but never had time to fix all the issues with it. One of them was a problem with Logitech wireless USB headset, which was just not working for some reason. Updates and some tweaks did not help, so yesterday I decided to upgrade to the latest Ubuntu 12.04.

What a huge mistake!!!

I was using GNOME desktop - never could get used to the new Unity UI - it was just too limited. After the upgrade my GNOME session was completely broken! The display resolution dropped to default. The two monitors configuration was lost switching to the mirrored option. Windows did not have borders and title bars, they could not be moved or resized, which was especially annoying when I tried to change screen resolution and desktop configuration - I just could not get to the option I needed, as it was out of the screen! Any change to the UI settings (like an attempt to add more workspaces) broke something. A couple times I got an empty desktop without any controls - I could not even log off or restart the system properly! The keyboard shortcuts did not work - in such an empty desktop situation I could not start the terminal. It was a disaster! The system became absolutely unusable!

Luckily I could at least start a browser and access Internet. With help from Google I could fix some issues. The key was to start CompizConfig Settings Manager, which I already had installed - most of the problems with UI are due to the disabled settings there. I enabled Window Decorations in the Effects section; Move Window, Resize Window, and Application Switcher in the Window Management. After that I could at least use the UI. Apparently fixing keyboard shortcuts was not that easy though, as in 12.04 they are handled some special way, and in the GNOME desktop they are simply broken. There were other things still not working properly, so I had to bite the bullet and switch to the standard Unity UI.

Unfortunately this did not fix all the issues. Keyboard shortcuts with the Windows (Super) key did not work, changing those in System Settings - Keyboard - Shortcuts did not have any effect. Looks like the Super key is assigned to Unity, and cannot be used for anything else! Pressing Super+1..9 starts the corresponding shortcut from the launcher, and this overrides any other assignments. I was always using Super+1..4 to switch between the workspaces, and just could not live without it, so had to make it work somehow. Apparently the only way to change that is to completely remove the Super key assignment from the Unity. It can be done in the CompizConfig Settings Manager: Desktop - Unity - Key to show the launcher. After that some shortcuts with the Super key start working - now I can switch between the workspaces, but some keys are still lost. Super+E, which I used to open the Home folder, is still not working. Well, have to use Ctrl+Alt+E for now until I find the solution.

Another annoying thing, which I found, was the mouse sticking at the edge of the monitor when it's moving from one display to another. Luckily it's just an option. Open System Settings - Displays, and turn off the Sticky edges. Another option there, which one might want to change too, is the Launcher placement. I didn't want it to show on both monitors, and thanks to Ubuntu developers, this is customizable.

Well, these are just the first steps with the "latest and greatest" Ubuntu. I'm sure I will find more changes in the system, which break my usual workflow, but at least now it is more or less usable. Oh, and my wireless headset is now working! I have not yet tried the other sound devices though. :)