Friday, August 24, 2012

I was missing Swype and other input thoughts.

So I was using Swype on my phone for a while before I installed CM10. I have read that it installs on the Galaxy Nexus that is running CM10, but I was unable to get it to install on my One S running CM10.

Swype was one of the best apps that I have ever used, it makes the phone usable when inputting large amounts of text.

Overall CM10 is working out well, I like the clean look and consistency of the stock interface, sense is just too much "bling" and "oooh shiny" for my liking. HTC in my opinion makes great hardware and one of the better software addon packs, but it is not to my taste.

LibreOffice looks like it is coming to android which is awesome, so technologies like Swype will become more important as we move towards an ever increasing mobile lifestyle. Add on devices will never be popular, carrying keyboards and other devices along with your phone will never really take off, having just the phone will be the main usage mode. Therefore new interface techniques will become more and more important.

Swype takes the pain of typing on a small screen and turns most of your input to gesture based input. This is a great idea, I tried 8pen and I really liked the idea of gesture based input. The issue with 8pen is the learning curve is way too steep, after typing on a physical keyboard (as a programmer) for years moving to the 8pen interface was too much of a mission. I was getting quite competent at using it after a few weeks, but I could never give my phone to a friend to send a text or search the web without switching back to the standard keyboard. Swype allows for the "hunt and peck" style of typing and also the time to teach someone to "Swype" is minimal. I taught my boss (in his 50's) to "Swype" in less then a minute.

As I finished typing this I thought yea, I will try to install it again (for about the tenth time)....it has started downloading....never got this far before....here is hoping. Maybe Swype has updated the installer for better Jellybean integration. Unfortunately the installer gets to the end of the downloading bar and just stops there, but after about 5 minutes the install dialogue pops up. Once installed I got kicked back to the downloading screen. I closed the app when to the "Language and Input" settings and selected the Swype beta keyboard and selected the input method form the notification area when typing something.

I have watched the video at AndroidAuthority on keyboards, they review the Adaptxt vs SlideIT vs SwiftKey vs The stock keyboard. I don't know why they didn't review Swype vs these other keyboards as I think it would have beaten then quite well.

Saturday, August 18, 2012

CM10 Unofficial on my One S, I now have Jellybean :)

Ok so I was going to wait till there was an official build of Cyanogenmod for the One S before I installed it. But I am just too impatient for that, I have been following the progress of the devs at http://ville.giev.de/

I finally decided to go for it a few days ago after seeing a build in the Clockwork Mod lists, it didn't work so I started looking deeper into the state of the build. Turns out that the Clockwork Mod list has a much older build (as much as 2 weeks is "much older").

So I downloaded the latest available build from http://ville.giev.de/ which was CM10 20120815 which is conviently linked on the page. It contains the insecure boot image that you will need to flash using fastboot.

Just drop the whole zip file on your phone and also extract the boot.img into your fastboot folder. You should also download the gapps (Google Apps) zip file if you want to be able to connect to your Gmail and the Play Store. Drop the gapps zip on your phone.

THIS is VERY IMPORTANT, because there is no removable SD card it is much harder to fix your phone after you started if you don't have a working system image already there!!!!! Just maker sure that you drop the .zip file on to your phone before you install the boot.img file.

Boot your phone into fastboot, see that the red fastboot icon changes to fastboot USB. In a terminal window navigate to your android SDK folder and then to your platform tools folder where you dropped your boot.img file earlier.

Run the command:

  • sudo ./fastboot devices

You should see your device ID, I always do this to make sure that I have comms to my phone.

If this has worked then the next step is to flash the insecure boot image, this allows you to install new kernels aka the Jellybean kernel, so run the command:

  • sudo ./fastboot boot boot.img

It will only take a few seconds to complete. Basically you are writing the file boot.img into the boot partition of your phone.

Once that is done you can now install the latest CM10 build, on your phone go back to the bootloader and then into recovery.

Select install zip from sdcard
Choose zip from sdcard
Naigate to where you dropped your zip file earlier and select it
Scroll down to Yes install cm-10..... .zip

The system will install, it doesn't take too long, you will then be dropped back to the recovery prompt, you can follow the same format to install the gapps zip file.

Reboot your phone. You should see the CM9 boot animation (this is on the low priority list of fixes). After a little bit your phone should boot into CM10, you will see the Jellybean lock screen.

That is it.

Ok now my conclusions, I have only had my phone for about 2 months now, I have never used stock ICS. I was running HTC Sense 4.0 on top of Android 4.0.3. Now I am running CM10 which is based on Android 4.1.1.

The phone is now faster then I have had it so far. My main test for this is Temple Run, which used to studder when first starting when running Sense ICS, it is smooth all the way through now. I know this is not the most scientific testing method but the studder was repeatable on the Sense ICS build and I haven't seen it yet on the CM10 JB build!

There are still a few things not working on CM10 but overall it is in a stable daily usage state now, I will follow the development as they do the final polishes on it. Maybe then it will get the official stamp and become part of the main CM line.

The One S is a great piece of hardware, just needed a software upgrade in my opinion.

Wednesday, August 15, 2012

Loving backup and restore!!!

One problem with the HTC One S and any other phone without a removable SD card is that it is more difficult to recover your phone from terminal meddling.

Today I tried to install the unofficial CM 10 20120801 from the ClockworkMod website, I read a bit about this ROM from around the web and one issue that people are having is that the phone wont boot sometimes, well this is exactly what happened to me.

I tried to install the new image from the GUI first, then from recovery but it led to the same unbooting state, luckily I choose to backup the current ROM before the install, so I was able to use the awesome backup/restore function to go back to a state like nothing had happened.

This is a little life lesson when working with anything, not just slightly experimental phone builds....ALWAYS MAKE A BACKUP and if at all possible automate this.....how much was that last weeks worth of work worth to you? (Doc, Spreadsheet, CAD, Program......) how much work would be required to recreate it if your computer died?

For all my (and my Boss's) work data I have an automated backup just using SyncToy and a scheduled task! It is pretty basic, but it works well and it has saved out bacon once or twice already. There are much better solutions but it works for us.

Friday, August 3, 2012

Why unlock and root your phone?

A friend of mine asked me "what's the advantages vs disadvantages of even unlocking an Android phone system? You can build apps with tools. Configure the interioir as standard???"

For me the first reason to unlock and root my phone is to have full control over my own devices. It allows me to install a completely new version of android as I did with my Nexus One, I ended up with Cyanogenmod 7.1, which expands the capabilities of the phone significantly over the stock system. And it makes you feel more like a owner rather then just a user.

The second reason is the ability to have a complete backup of my current working system, if this is the only reason that you want root access then it is worth it. I use ROM Manager by Clockwork Mod, to backup my system and load new ROM's in an easy manner. The backups produced include all your data and system partitions, so if you nuke your phone by installing a dodgy app or getting a bad virus (not many around yet). You can restore your phone to a known good state, rather then back to factory default.

The third reason is some apps require root access to install and use. I'm looking forward to ubuntu for android, I hope once the research phase is finished that anyone can install it, not just those running "approved" phones.

The fourth reason is you get a much better understanding of your device when you unlock your device (assuming you do it yourself), doing a little research and understand how some of the underlying technology works.

Thursday, August 2, 2012

Root access update

Well sometimes it is good to be stubborn, I tried the superboot again. I got the same result and messages but this time I have gained root access.

Not sure exactly what changed, looked the same and nothing I did was different but this is great.
Read my previous post for the full run down.

<======= REPOST OF PREVIOUS POST, I PUT IT IN THE WRONG BLOG======>


Ok so I have been home a few weeks now and decided to unlock my phone and get root access. This is quite a long post, but it is the sequence I followed and I have an unlocked bootloader....no root though.

Just over two years ago I did the same thing to my Nexus One, this time it was much easier to unlock the bootloader. Last time I gave up and booted into windows and used the tools there, it was my impatience coming through.

This time I was determined that I wouldn't use windows, two reasons. One I don't have any windows partitions to boot into on my various computers, so I would have to borrow my partners win7 laptop, which is worse then using my own back up win install. And two, the documentation seemed to be much better this time around, so I was fairly confident that even as an advanced amateur I would be able to succeed.

There are a few things that you need first on linux, I'm running Linux Mint 12, if you want to root your phone from your linux install.
  • sudo apt-get update
  • sudo apt-get install ia32-libs
Then you will need to get the android debug bridge (ADB) software, this is part of the SDK most forums and tutorials I have read on the net suggest installing the whole thing, this can take a long time depending on your connection speed.

To get the ADB software you will need to grab the SDK install from the official website this will come down as a .tgz archive. Extract it to a useful file, mine is in /home/adam/Programs/AndroidSDK.

The easiest way to get what you need for this is just install the "android sdk tools" and the "android sdk platform tools", that is all and it will only take a few minutes to install.

Once you have gotten this far you are most of the way there, connect your phone to your computer, go to the developer options and tick the "usb debugging" icon. Open a terminal and run:

  • lsusb

You should see an entry that looks something like this:

  • Bus 001 Device 003: ID 0bb4:0cec High Tech Computer Corp. 

The "0bb4" identifies HTC, other manufacturers have different numbers, and the "0cec" is the device identifier, so all One S phones should have the same number, there may be differences for different versions of the phone, I'm not sure.

Next navigate to the {path}/platform-tools/ folder in your terminal. Then make sure that ADB can see your device by running:

  • ./adb devices

The output should look something like this:

  • List of devices attached 
  • "A serial number"

If not try running the command as root:

  • sudo ./adb devices

Next reboot your phone to the bootloader by powering it off then holding the volume down button when you turn it back on. Select the fastboot option, there should be a red area on the screen this should show "fastboot", and "fastboot usb" when plugged into your computer.

If your phone shows "fastboot usb", in your terminal run:

  • sudo ./fastboot devices

The output will look something like this:

  • "A serial number" fastboot

If you have gotten this far you are about 80% of the way to unlocking your bootloader. You will need to head over to HTCdev to get your unlock code. But to speed you along, run:

  • sudo ./fastboot oem get_identifier_token

The generated token is used to get you your unlock code. You are going to have to sign up which is annoying, but this is the easiest / safest way to unlock your bootloader.

Once unlocked when in bootloader mode, it will show unlocked.

Now using the superboot method it is supposed to be really easy to install permanent root on your phone, this has not worked for me. This is the forum post I followed at XDA I had the success message after running the two commands as root (sudo) in my terminal, but alas no root.

This happened on my Nexus One, since I already had the bootloader unlocked I installed CM6 at the time which already has root built in.

This is what I plan to do with my One S, not sure what system I am going to use since there isn't an official CM for the One S yet. But I will keep updating this blog with my progress.