Showing posts with label android. Show all posts
Showing posts with label android. Show all posts

Wednesday, June 22, 2011

Upgrading from CyanogenMod 6.1 to 7

I've been running CyanogenMod 6.1 pretty much since it came out last year. It's served me extremely well and I've had very few problems with it. However, I bought a new 16Gb class 10 SD card a while ago which I wanted to replace for the existing one and have been itching to get me some Gingerbread action since Cyanogen moved up to version 7 a couple of months back.

Several things put me off doing it sooner. I had apps2ext set up (using the command line tool by DarkTremor) and I'd read some reports about compatibility issues between CM7, DT and some versions of ClockworkMod. There was also a suggestion that you couldn't use Titanium Backup to upgrade apps and data from CyanogenMod 6 to 7. Plus the fact that the only reliable source of information on these sort of things is the XDA forums, where most of the relevant threads run to over 100 pages, meant that it was never going to be a very quick process!

(I should point out before I go any further, just for the benefit of anyone reading this who is unfamiliar with the whole custom ROM thing on Android - what I'm talking about here is not the standard method of upgrading an Android phone to a newer version! If you stick to the standard ROM that comes preinstalled on your phone, as 99% of people do, then upgrading is pretty much a one-click affair. Custom ROMs, on the other hand can be a bit trickier to deal with, especially when you start messing around with extra hacks like apps2ext. But I'm a sucker for punishment. Or, more accurately, I'm still using a phone - the HTC Desire - with a relatively small internal storage and I like to have a lot of apps, so the built in apps2sd isn't enough.)

Anyway, after eventually getting to the point where I felt I knew enough to take the plunge, I wrote a bulleted list of things to do, just to make sure I didn't miss anything along the way. It looked something like this:
  • Use Gparted on Linux to format new SD card with 15GB FAT32 and 1GB ext3 partition
  • Make sure all phone apps/data backed up in Titanium 
  • Boot into recovery and do full Nandroid backup to old SD card 
  • Back up old SD to computer (using Linux to include ext3 partition) 
  • Take out old SD card 
  • Download CM7, GApps & DarkTremor to computer 
  • Copy CM7, GApps & DarkTremor to new SD card 
  • Insert new SD card into phone 
  • Boot into recovery and do factory reset/full wipe (but not SD card!) 
  • Install CM7 from SD (still in recovery) 
  • Install GApps from SD 
  • Reboot and sign in to Google 
  • Reboot into recovery 
  • Install DarkTremor 2.7.5.2 
  • Reboot 
  • Open terminal and run DarkTremor commands: su, a2sd cachesd 
  • Reboot 
  • Copy SD card contents (FAT32 partition) from computer to new SD card in phone 
  • Restore apps and data using Titanium
Simple enough right?! That's when the fun started...

Partitioning the new SD card was fairly straightforward. I followed this guide on XDA (ignoring the bit about creating a disk image to run Gparted on Windows as I was using Linux).

Next I backed up all my apps, app data and system data using Titanium Backup (just in case there was a chance I could restore anything from it after I'd upgraded), then rebooted the phone into recovery. (I'm currently using ClockworkMod 2.5.0.7. There's a newer version but reports suggested it didn't work well with DarkTremor so I stuck to the older version..

Once in recovery, I did a nandroid backup (for the uninitiated that's a full system backup saved to the SD card, which, if anything goes wrong, you can use to restore your phone to the exact state it was in previously).

I powered off, took the SD card out of the phone and copied all the files from it onto the computer. Then I downloaded the latest stable version of CyanogenMod 7 (7.0.3) for the HTC Desire, plus the latest recommended Google Apps package, and the latest stable version of DarkTremor. Then I copied these onto the new SD card along with the Titanium Backup folder off the old SD card before inserting it into the phone and booting into recovery.

In recovery, I performed a factory reset to wipe the phone's internal storage. This feels like the point of no return (although it's not really, as I could have always reinserted the old SD card and done a nandroid restore to get everything back to its original state).

After rebooting into recovery again, I flashed CyanogenMod and Google Apps, before rebooting the phone fully.

Everything loaded up fine and I was prompted to enter my Google credentials. Having done so, and without going through the further steps of setting up Google sync etc, I powered off and booted back into recovery where I installed DarkTremor, then rebooted again.

Again everything was fine. I went through the setup process, then opened the Terminal Emulator app and ran the 'a2sd cachesd' command to tell DarkTremor to move apps and dalvik cache to the ext partition of the sd card. Another reboot, and all seemed fine again. I installed the 'Quick System Info' app to keep an eye on storage levels and also Titanium Backup to restore my apps.

However, I started running into issues like apps force closing or the phone randomly rebooting when I tried to install certain apps. I ended up doing a factory reset and starting again, but ran into the same problems. Initially I suspected it was Titanium causing the problems so I just used it to restore the apps rather than apps + app data, but this didn't seem to solve it. Another factory reset and more of the same. This time I thought perhaps it was DarkTremor causing the problems, so I installed an app called S2E (simple2ext) from the Market that does pretty much the same thing as DT (without some of the more advanced features I didn't use anyway) but with a nice simple to use GUI. But again the same problems cropped up. I decided the finger of blame must still be pointing at Titanium so after yet another factory reset I set about resintalling my apps but this time completely from scratch - I simply used the list of backed up apps in Titanium as reference, then installed and configured them manually from scratch.

This solved everything, so in the end I really should have just listened to the advice about not using Titanium to upgrade restore from CM 6 to 7! It was a pain, to be sure, as manually installing and reconfiguring over 100 apps is a big deal, especially when many of them are quite involved like Tasker, Launcher Pro and Titanium Media Sync.

However, several days later with everything back up and running and my normal sleep pattern restored, I was glad I upgraded. Gingerbread is so much nicer than Froyo, both in terms of visual gloss and performance. And CyanogenMod 7 adds a lot of really nice extra features and enhancements too. The only downside I've noticed so far compared to the previous version is that the auto brightness doesn't seem as responsive, but having said that there is a facility in CyanogenMod to customise this so I just need to spend a bit of time tweaking it I guess. Whether I will do or not depends whether I can be bothered between now and the end of August when my contract us up and I can upgrade to a new phone......

Friday, July 16, 2010

Rooting my HTC Desire

Well, that was easy!

Actually I've been trying to do it for weeks, but each time I've run into problems with drivers on Windows, not behaving properly, and the phone not being recognised.

Then I came across the latest one-click root procedure from unrEVOked today and thought this looks more like it. There are actually two methods, detailed here and here - I started with the Windows version but again ran into trouble with the drivers. So I decided to try the Linux route (root?!).

My wife has Ubuntu 10.04 installed on her netbook so I guessed I didn't need to mess around with live CDs and all that.

Here's what I did:

  • Go to http://unrevoked.com/recovery/ and click 'Download for Linux'
  • Save the package somewhere (Downloads folder)
  • Go to the folder where the downloaded package is and unpack it.
  • Open a console application
  • Navigate to the download location (cd Downloads)
  • Type 'sudo ./reflash' to launch it as super user
  • Plug the phone in to the computer (select charge only)
  • Go into settings > applications > development and tick 'Enable USB debugging'
  • Wait for the phone to be rooted - it takes 30 seconds or so. When it's done it'll reboot.

Simple as that!


It doesn't wipe any data, settings or apps - in fact the only way of telling whether it has worked is that you'll see a new app in the app launcher called 'Superuser Persmissions' (which just shows a blank screen if you open it, by the way).


To double check I downloaded Titanium some apps from the market that require root permissions, and they work!


So now I have a rooted HTC Desire. Next step is to install a custom ROM. I'll keep you posted!



Thursday, June 10, 2010

The great iPhone vs Android debate

I've been feeling the need to write this blog entry for some time. I don't blog about much these days - Twitter is so much easier; but trying to say what I want to say in 140 characters is not quite possible.

Let me be clear - I don't hate Apple and I don't think iPhones are rubbish. Yes, there are things I dislike about Apple's way of doing things, but equally they do a lot of things very, very well - the iPhone is a good example of this.

However, since getting my Android phone I have encountered an awful lot of myths about Android, both implicit and explicit, among iPhone users, and I feel compelled to try and dispel/counter them as best I can.

I guess the fact that I am the only person amongst my work colleagues with an Android phone while the vast majority have iPhones, iPods and Macs of various descriptions means there is an inevitable bias towards Apple products, along with the fact that I've always been the sort of person to side with the underdog rather than jump on the bandwagon, tends to get me more worked up than I might otherwise be in a different environment, but nevertheless, I want to try and keep a level head and be reasonable and balanced in what I say.

There are a number of perceptions of Android (the operating system itself and Android phones more generally) that crop up repeatedly:

Android is geeky
Of course, there's nothing wrong with being geeky. But quite where this idea comes from I'm not sure. Well, I have an idea. It's partly the name 'Android' which obviously has a rather techy, geeky, Trekky kind of sound to it - clearly that means nothing, but it may have contributed to the perception to some extent. Partly its the fact that Android is open source and therefore has quite a techy community around it, coupled with the fact that early versions of the OS were still fairly 'beta' compared to the iPhone which came onto the market as a fully finished, packaged product. The situation today is quite different. Yes, Android is still open source, and there is still a large techy community around it, but the OS is no longer anything like beta and can hold its own against the iPhone OS any day, if not surpassing it in some areas. Also, the early adopters of Android did tend to be the geekier types - simply because of the open source, beta thing. But that doesn't mean it's geared towards geeks, or that it is better suited to geeks. Yes, geeky types may well find Android more appealing because of the fact they can play around with the code etc in a way they can't with the iPhone, but that isn't a reflection on the OS as a whole.

iPhones just work
The implication of course is that Android phones require more time and effort to set up, configure and generally use. I can say quite categorically that my HTC Desire couldn't have been simper to set up, configure and start using. I took it out the box, pressed the power button, it asked me to enter my Google, Twitter, Facebook and Flickr usernames and passwords, and that was that, done, ready to go. There was literally nothing else to do.

Now obviously there are plenty of options and settings if you really want to get stuck in and customise the phone. Although to be honest, even as someone who quite enjoys that sort of thing, I've not found the need to as everything works so well already. But I like the fact that the options are there should I decide I want to change something - they're there but don't get in the way, which is key. I sometimes hear the argument that giving people too many options is a bad thing. It's only bad if you force them on the user and confuse them. With Android, the options are there, but if you're not into that sort of thing you can completely ignore them and get on with your life - in fact you don't even need to know they're there.

There are more apps for the iPhone
True, but there are also over 50,000 apps for Android. There are plenty of pointless apps for iPhone just as there are for Android. Most worthwhile apps are available for both, and in fact Android has some notable apps that are not and probably never will be available for iPhone (Google Nav for example).

More apps doesn't therefore necessarily equate to better, and anyway, as Android grows in market share the number of apps is increasing exponentially.

More people use iPhones than Android
The gap is closing fast, actually. But regardless, this in itself means very little. Android was launched later than iPhone, and has taken some time to get to the point where it is mature enough for operators and phone manufacturers to embrace it. Things are changing apace now though, with new Android phones being announced almost weekly. There are also moves to use the Android OS in other applications like cars and household appliances.

No-one cares about 'openness'
One of the things touted by some Android users over iPhone is the fact that its an 'open' system - open source, not controlled tightly by Google in the way iPhone is by Apple. Anyone can develop apps for Android without having to get them approved. This IS a good thing in many ways (although there are obviously advantages with the iPhone approach as well). It's true that on the face of it, the Jo Public doesn't care whether the OS is open source or not, so its not an argument one way or the other really.

Multitasking is bad
iPhone 4 will have multitasking so this is a bit of an old one now. However, there are still myths about this - Steve Jobs even misquoted Larry Page recently saying that some apps can cause battery drain because they don't work well with multitasking. This has been taken by many pro-Apple bloggers to be an admission that multitasking in Android is somehow not up to par, but in fact it was simply an acknowledgement that there are some sub-par apps out there that haven't been built to play nicely with the multitasking environment. That's certainly no indictment of multitasking, but only of those apps.

The reality is that multitasking in Android works absolutely fine. It isn't complicated or geeky in any way shape or form - just as its not on a desktop computer.


I've not covered all the arguments here by any means and this isn't meant to be exhaustive or a proper side by side comparison or anything like that - just addressing some of the common arguments against Android. Doubtless this will generate a veritable storm of comments on Twitter!

One last thing... does it matter? No! There are far more important things to worry about in life.

Friday, April 9, 2010

First 2 weeks with the HTC Desire

So, 2 weeks with my new Android-powered HTC Desire. What's the verdict? Well, if you follow me on Twitter you'll already know that I'm quite taken with it, to put it mildly!

For the iPhone lovers reading this, yes I know I rant and rave about it and constantly go on about how its so much better than the iPhone. To be honest, my hands-on experience with iPhones is limited to the occasional play in an Apple store or phone shop (neither of which I spend much time in if I can help it!) and odd occasions when I've borrowed one off a work colleague to try something out briefly. So I can't honestly compare the two side by side, at least not from personal experience. Plenty of other people have already done that and reached their own conclusions. I can however tell you about my experience of Android as an operating system, the HTC Desire as an Android-powered handset (and one of the newest and best at that), and the Sense UI (HTC's tweaked version of the Android interface and core apps.

I honestly can't fault anything - handset, OS, UI or apps. It surpasses my highest hopes and expectations by a long way, which is surprising considering the amount of time (6 months or more) I spent reading, researching, asking questions and generally procrastinating about what phone to go for. I was tempted by the Nexus One but decided in the end that the Desire had the edge. But this isn't a comparison between the N1 and Desire any more than its a comparison between the iPhone and Android (and besides, I've never used an N1 anyway).

The handset itself is really nice. I particularly like the soft-touch back which helps with gripping the phone. The overall build quality, finish and attention to detail is great. The only minor gripe I would have is that when taking the back off / putting it back on again to access the battery, SIM and SD card (which I've only done once mind you) I was a bit worried about breaking it, particularly the plastic clips that attach it to the body of the phone. This is a common thing with many handsets - even when everything else is beautifully designed and engineered, accessing the battery is still a bit of a primitive affair using a thumbnail and brute force!

The optical trackball is a nice touch although I've only needed to use it a couple of times. The 4 physical buttons along the bottom front edge are extremely useful (Home, Menu, Back, Search) and really make navigating around very easy.

I was particularly impressed with how quick and easy the phone was to set up when I initially took it out the box and switched it on. All I had to do was enter my Google, Facebook, Twitter and Flickr account details (all optional of course apart from the Google account, but it just so happens that I use all 4) and that was it! Everything just worked - no messing around with settings or anything. There was a quick start guide in the box, which I didn't need apart from just checking the order in which to plug things in and switch it on the first time in case there was anything I needed to take note of (there wasn't). The full user manual is on the SD card in PDF format but I've not needed it - everything is as about as intuitive and straightforward as it could possibly get.

The interface is extremely slick, and looks amazing on the 480x800 AMOLED screen (this is one thing all the iPhone users who have seen it have immediately commented on!). HTC have added some very useful features to the Android core apps, including built-integration between your contacts (phone/Google), Facebook, Twitter and Flickr. HTC's 'FriendStream' app/widget is a useful if no-frills way of keeping track of friends activity via the various social networks (although I tend to flit between using that and standalone apps for each service). The integration between these services in the People app (contacts) is very nice indeed, with the ability to 'link' contacts across your social networks and address book, which in turn automatically pulls in their profile picture and status updates. And of course, your address book is automatically synced with Google Contacts. (You can sync multiple Google accounts including Apps accounts, but I've not bothered syncing my work contacts as I already have the ones I need in the main Google contact list anyway.)

Having 7 home screens to add apps, widgets and shortcuts to at first seemed like overkill - how would I be able ot fill them all up? But believe me, its easy. For a start there a number of very useful widgets such as HTC's FriendStream (which shows status updates from Facebook, Twitter and Flickr), Bookmarks (a list - or thumbnails - of your internet bookmarks), music players, calendars, clocks, weather etc etc etc.

And of course, apps. The Android Market is accessible directly from the phone and contains something like 30,000 apps and growing rapidly (over 9,000 apps were added last month alone!). Most apps are free but there are paid apps as well (most of which have a free version too), although very few cost more than £1 or £2. (You get a refund too if you uninstall, which is nice!)

Admittedly, there are more apps for iPhone at the moment - this is to be expected given the fact that its been around for longer than Android. However, most predictions see the Android Market catching up within the next year. A slight drawback of not having the all-seeing eye controlling exactly what apps are allowed, means that anyone can write and submit an app to the Market. This means that there is a lot of crap. And Google do need to put some work into making the market more easily searchable (ie. filtering by certain criteria etc.) but even as it stands, it's pretty easy to find what you want. And most things are very well catered for. Most of the big iPhone apps have an Android equivalent, either created by the same people or an equivalent alternative. I have yet to come across anything I need to do on my phone that isn't catered for by a decent app.

Multi-tasking is a big plus. I frequently jump around from one app to another with the Desire's 1Ghz processor and 576Mb of RAM it's seamless and super-fast. Not that I'd recommend listening to Spotify while playing a first-person racing game mind you - I've tried and while the game was fine, the music did start to stutter a bit.

The camera (5MP with auto-focus, face recognition, touch-screen-to-focus, digital zoom, and flash) is pretty good - much better than any other phone cameras I've used - the quality is perfectly adequate for viewing on a computer screen without it looking like its come from a phone. You can upload directly to Flickr, Facebook, Twitter, Picasa, or send via email or bluetooth direct from the photos app - which links directly into the camera, so you can have a photo on the web within 30 seconds of taking it. It also does HD video although I've not tried it yet, but the reviews all say its good.

That's enough for now I think. I was going to save this and come back to it later, but I think if I do that I might not get round to it, so I'll just post this as is, accepting that I've not covered half of what there is to talk about.