Tech, Toys, and Tidbits


I’ve been beta testing a new phone, and to ease the testing I ported Amon RA’s recovery ROM to it.  It works beautifully.

As a result, I’m much more comfortable messing with RA’s recovery, so I took a few hours and got it working on the GW620 too.

Use Volume+ and – to navigate.  Camera to select, and back to go back.  🙂

For some reason there are still “MISC” errors appearing, but you can safely ignore them – they don’t seem to do any harm.

I’ve tested a NAND backup and restore, and it works beautifully.  No clue if BART works, or any of the other fuctions.

Download the everarecovery.img here, and as always boot it up using
“fastboot boot everarecovery.img”

First:  So I spent some time setting up Google reader yesterday, and I have to say it’s a powerful product!  Combined with FeedR on my phone I can now read up on all my frequented sites from wherever I am.  It’s a thing of beauty!  I’d highly suggest anyone reading this give Reader a try.

Second:  My site here has been languishing a little since all the GW620 firmware development moved over to OpenEtna.  Not that I’m complaining – I think the OpenEtna project is waaay better than anything I was able to hack together on my own.  It just goes to show the power of open source and collaborative development.  However, it does mean that I need to come up with some new stuff to post about – more on that later.

Third:  Now that OpenEtna has stabilized a bit, and we don’t need to wipe every time we install a new version, I’ve actually spent some time getting my phone all set up.  Here’s a brief rundown of my rig:

  1. Launcher:
    • LauncherPro.  I know AWD (the default launcher on the firmware) is amazing, but LauncherPro adds a few key features that I just can’t live without – mostly in the widget department, and the triple-dock.
  2. Desktop Layout:
    • 5 desktops, defaulted on 3. 
    • Desktop 1 – FeedR widget, full screen
    • Desktop 2 – People widget (contacts) full screen
    • Desktop 3 – My main screen.  Google search, weather + news, calendar, gtasks, and a few misc icons.
    • Desktop 4 – Friend widget (Facebook + Twitter feeds) full screen
    • Desktop 5 – Games
    • Dock 1 – Phone – GMail – AppDrawer – Market – Browser
    • Dock 2 – Listen – Audible – AppDrawer – Music – Movies
    • Dock 3 – MPDroid – Mythmote – AppDrawer – Nav – Maps
  3. Everyday apps:
    • AppBrain Market.  Ah, the way the market should be.  I think the official market is moving in this direction, but for now I’m sticking with AppBrain
    • Audible.  I loves me some audiobooks!  Having Audible on my phone means that my iPod hasn’t seen use in weeks.
    • ConnectBot.  SSH from my phone?  Yes please!  I run my home net, my media centers, my websites, and a few of my clients on Linux.  Having SSH on my phone means I don’t always need to grab my laptop if I need to fix/change/fiddle with servers.
    • ConvertPad. Conversion calculator extrordinaire.  Mostly used for mpg-to-l/100km conversions.
    • DrupalEditor.  Lets me edit/maintain my various sites from my phone in a pinch.
    • Evernote.  Keep notes/photos/websnips in the cloud.  Great for all the stuff you just need sometimes.  Ferry schedules, and the like.
    • FeedR.  Simply the best RSS/GoogleReader client for the phone.  I’ve tried a few others, but none can compare.
    • GTasks.  Why Google doesn’t have a Google Tasks client built in to Android is something I will never understand, but this 3rd party app works fine.
    • Listen.  Podcasty goodness delivered straight to the phone.  It’s like RSS for podcasts.  Pure brilliance!
    • Google Maps and Google Navigate.  Must have apps.  Hell, Nav is half the reason I wanted to get up to a current version of android – it doesn’t work on 1.5.
    • Mint.  Financial managment in the cloud.  Beautiful!  Instant access to our budgets and balances from anywhere.
    • MPDroid.  Control my MPD based music system from my phone.  It’s even better than many of the desktop clients, but fits in your phone.  It’s not as powerful as Aria or Theramin, but comes pretty damn close and fits in my pocket.
    • Rogers MyAccount.  Makes it easy to keep an eye on my data usage.
    • Mythmote.  Turns my phone in to a remote control for my MythTV based media centers.  Now Pixy and I don’t have to fight over the remote anymore.
    • PocketCloud.  VNC+RDP client for Android.  Best I’ve used so far, though the full version is a bit expensive for an android app.
    • TD.  Banking client.  It’s not as rich in the planning dept as Mint is, but it lets me do transfers and pay bills.
    • Transdroid.  Keep an eye on my rTorrent server.
    • WikiMobile.  Optimized access to Wikipedia.  Great for looking stuff up when I’m out and about and in the need of factoids.
    • XDA.  By far the easiest way to keep up to date on the XDA-Developers forums.
  4. Games!  This list is totally transient.  More than anything else on my phone the games come and go.  Here’s a list of what’s on there right now:
    • Alchemy.  Mix and match elements to create new elements.  Amusing, funny, and brain twisting logic game. 
    • Angry Birds.  The classic, now for android.  The new version doesn’t run so fast, though I hear with a modest overclock it’s back to being playable
    • Antibody.  Real time Risk, with upgrades, in the microscopic realm.  Great fun!
    • Doom.  Installed more as a demo than to play.  I had to upgrade my computer so I could play Doom when it came out, so having it on my phone is a trip
    • Dungeon Wonders.  Haven’t actually had a chance to play this yet, but it’s supposed to be a pretty good jrpg
    • Evac.  Stylized modern pacman.  Good fun.  May even purchase it.
    • Everlands.  I installed all the hexage ‘lite’ games I could find on the market.  This one is the only one that I’m not immediately considering purchasing.  I’ll have to give it a few more days, and run thru the tutorial, before I decide though.
    • Galcon.  Real-time Risk in space.  Great fun, but I think I prefer Antibody.  This has more game modes, but Antibody has upgrades which lend it a more epic feel.
    • PVZ.  Unsanctioned an illegitimate Plants vs Zombies clone for Android?  Wow!  Popcap should be embarrassed that a lone hacker managed to get their signature game out for Android before they even tried.  Booo Popcap!  I’ll still buy the official PvZ when Popcap eventually gets off their ass and releases it, but for now PVZ fills the void nicely.  This was removed from the Market almost as soon as it was published, but if you google for “pvz.apk” you should be able to find it.
    • Radiant.  Kick-ass shooter!  The best I’ve seen for Android so far.  Lots of different weapons to buy, and flawless controls even on devices without multitouch. 
    • RoboDefense.  Simply the best tower defence game on Android.  I’ve tried a few others, and keep coming back to this one.  If you like the genre, then you owe it to yourself to check this one out
    • Scrambled Net.  Back in the day I played a variation of this game on my PalmOS devices.  Great logic puzzler with an IT theme. 
    • SimCity.  Didn’t even know this existed till recently.  Looks a LOT like they ported the original Simcity to Android.  Sadly, this one doesn’t show up in the market for me so I’m running a less-than-legit version.  I’ll have to find some way to pay for it if I end up playing it for more than a few mins.  So far I find the interface very klunky and not well adapted to Android, but I’ll give it a few more plays to see if it’s worth keeping.
    • Sims3.  Meh.  Thought I’d give it a try, even though it’s not visible in the Market for me, so I’m running a pir8 version.  Buuut, I never did like any of the sims game, and still have a bit of a hate-on for EA for closing the best online (or offline, for that matter) car game and then adding insult to injury by trying to get me signed up for The Sims Online instead.  RIP Motor City Online.  10 years later and there’s still no game that comes close to the level of car customization you offered.
    • Totemo.  Played the first few levels, and it seems like it could be good.  I’ll finish playing the demo and see if it gets harder, but so far it’s a little too simplistic.
    • UnblockMe.  Classic “free the car from a jammed parking lot” game.  Very well executed, and has some devilishly hard levels.
    • WordFeud.  Multiplayer Scrabble via the cloud?  YES PLEASE!  

The fine folks over at OpenEtna have released version 4.2 of their excellent 2.1 based firmware for the GW620. Mostly a bugfix release, but they have introduced the JIT from 2.2 in to this firmware, which makes things MUCH faster. Sound is fixed, GPS works again, but Call Display is still messed up. I’m hosting it here for ease of download.

Through a lot of hard work and modifying the frameworks, Polytheus has managed to get Android 2.1 working on the GW620! I’m hosting the file here, and I’d also encourage you all to go to the project page and click the donate button to buy him a beer for all his hard work.

This one is based off the Korean KH5200 V10T.

It’s an Android 1.6 image for the GW620. Apperently, the difference between the previous V10R and this V10T is mainly fixes around the keyboard and battery life. Personally, I didn’t have any problem with the battery life in the last image – it was a big improvement compared to 1.5 but others were having major issues.

Get the image here.

I’ve added the excellent ADW Launcher as well as the previous TagLauncher, and made a few other small refinements, but nothing major. Mainly small stuff.
e.g. Included Anycut to make it easy to set your APN back up…

Same features and issues as the last firmware.
e.g. Google Goggles is still broken, it’s still Korean (by default) and English, it still requires manual APN setup, SMS is still limited, and Call Display is still b0rked.

If you are running a 1.5 based firmware YOU MUST FACTORY WIPE YOUR PHONE before installing. You should also record your APN settings if you don’t know them.

See the the previous firmware post for details.

For full installation instructions have a look at the Firmware Installation Docs. Give it a go and let me know how it works for you. 🙂

Update: The image based on V10T is almost done.  Everything is working except Wifi won’t connect.  🙁  Once I get it figured out I’ll upload the image.

I’ve installed the KH5200 V10T image on my phone, and will have a rooted + enhanced version ready for y’all soon.  

I don’t see any differences in the phone yet, so I think it’s just a bugfix release…

Still have to enter the APN, Call Display still doesn’t work right unless the caller is in your address book, and SMS is still limited to 90 chars.

Update 2: Murphy was an optomist.  OSX 10.6 is having some issues building Android.  Gah!

Update: None of the builds I made under Ubuntu 10.4 x64 would boot, which can’t be right.  I’ve rebooted in MacOS and am building again from here.  Hopefully this one will boot.

Ok, so here we go – I’m trying to compile 2.1 with the KH5200 kernel. I’m using Polytheus’ Tech Notes to guide me thru the req’d changes to RILD, etc. Hopefully I can get something booting today, though I’m not holding my breath. I’ll update this post as I progress. 🙂

LG has released the source code for the KH5200 (the Korean version of the GW620.)  The source has the 2.6.29 kernel sources included, so hopefully we can get a newer android of Android running soon!  We’re targetting 2.1 to start, but may try to get 2.2 going if 2.1 isn’t too tough.  

You can find the source code here.

So, I’ve been running my 1.6 Apps2SD image for a few days now, and I’m loving it so far! 

My favourite improvements are:

  1. Battery life
      • It used to last about 24 hrs for me, unless I hardly used the phone at all.  It seems like I’m getting around %50 more life.  My last charge cycle took 1day, 16hrs to drop from %100 to 5%.  Not too shabby.  That’s with wifi, Gmail, Facebook, Twitter, and Weather all running in the background.  🙂
  2. Apps
      • It’s totally subjective, but it feels like there are more apps available in the market for this version.
      • Wooo!  Dosbox works.  I just wish World Of Xeen was playable.
  3. SSHD
      • Oh dropbear, how to a love thee, let me count the ways!
      • The ability to ssh to the phone instead of using adb shell is a HUGE improvement.  Cursor keys work as expected, Nano works as expected, bash tab completion, colour ls even in Windows, the list goes on and on.  This may be my most favourite new feature.

We’ve also had some great ideas over on the XDA thread.   I’m going to work on making a very flexible boot.img that will allow a number of different things:

  1. Non nandroid flashing. 
    • You’ll have to nandroid the boot.img on once, but after that it’ll give you the option of flashing a firmware file from /sdcard during bootup.
  2. Recovery boot
    • I may be able to make something that’ll boot up a recovery image from /sdcard so we can make+restore nandroid backups and do other recovery stuff during bootup without needing to use “fastboot boot everecovery01a.img”  This will also allow Windows users to back up their phones without needing a linux VM or access to a Mac.

I’ll be working on this today, and will provide an update later on.  I expect I’ll be able to get 1 working today, but 2 will be a little trickier.

Here’s the source for the version of ADB that works in Linux. I don’t think I made any major changes to it – I was trying to make it work properly in OSX when I still thought the problemdetailed here was an issue with ADB. It turned out to have more to do with LG, but I’d fumbled around a little in the ADB code trying to make it work initially, and this version seems to work in Linux with the new firmware. I suspect that what’s actually going on is that the version of ADB distributed in the SDK is older than the one distributed with the AOSP, and the AOSP version just works, but here’s the source regardless. 🙂

Update: Something seems to have gone horribly wrong with the first image. Give this one a try instead. A few people have confirmed that it works.  It’s a slightly smaller repack of the same image – I reduced the size by removing a few of the apps I’d crammed in to /system/app, so you’ll have to install Facebook and Google Sky yourself now. 😉

Well, Rogers/LG is being brutally slow releasing the 1.6 update.  There is already a Korean update for the KH5200 that mostly works on the GW620, so I spent some time today making it run as smooth as possible.  I currently have an image that is working well, but you have to manually config the APN after installing or there’s no 3G connectivity.

The image is as done as it’s going to get tonight.  Don’t get it here!  Make sure to read the Known issues while it’s downloading – there are some things you need to do to make the image work properly.

The status so far:

  • Running well on 1.6
  • 3G works after manual APN setup
  • Rooted with SuperUser APK
  • Bash/nano/busybox/terminfo available
  • Made the required mods to the initrd to enable tolemaC’s Apps2SD method
  • tolesetup works
  • Cleaned up most of the cruft from the Korean image (e.g. Maple Story, Seoul Subway map, etc)
  • Added upgraded Google maps + Google Nav to the system.img so it doesn’t take valuable userdata space
  • Added a bunch of apps and utilities to the remaining free space on the system.img.  It’s now packed to the brim with goodness.
  • Set the init.rd to mount the /system partition as read/write.  No more “adb remount” to make changes
  • Included the excellent TagLauncher home screen.  It’s free, and it rocks!
  • SSHD out of the box!  Now you can ssh to your phone.  Login as with “gw620” for the username and password.  You can change the user/pass by editing the /system/bin/rundropbear file.
  • Lots of other little things


  • Get the APN auto-configured
  • See if I can remove the obnoxious password from the “Enable Root” menu

Known Issues:

  • Google Goggles crashes after taking a pic
  • First boots in Korean.  You need to hit “next” at the bottom, and then select English.
  • Will definitely require a wipe of userdata or factory reset before installing.   Go in to the hidden menu and do a factory reset, OR when you boot up in fastboot mode to burn the image do a “fastboot –w”
  • You need to manually add the APN before data connectivity will work.  To add the APN follow these instructions:
    1. Install the image (duh)  😉
    2. boot up, and go to the dialer
    3. enter 3845#*5200# to enter the hidden menu
    4. Click on Module Test
    5. Click on Stability Test
    6. Click on Enable Root
    7. Enter the password “eve&adam&&620love!”
    8. reboot the phone
    9. open a command prompt on your computer
    10. “adb shell am start -a android.settings.APN_SETTINGS”
    11. The APN config will open on the phone.
    12. Click “New APN”
    13. Enter the APN info.  For Rogers, just set the name as “Rogers” and the APN as “” and leave everything else as default.  Other carriers will have to look online to get their APN settings.
    14. That’s it.  Data should now work.  🙂

Thanks to tolemaC for his excellent work on the tolesetup utility, which I’ve blatantly ripped from his most excellent 1.5 image.

Thanks to everyone that has hit that little donate button too, and to everyone who’s sent encouraging words and suggestions.  🙂

ADB mysteriously stopped working in Linux for the 1.6 version of Android on the LG Eve. Here’s an adb that should work on the new image. As always, let me know if you have any problems!

Update: Don’t use this unless you really have to – the new Korean 1.6 image is WAY more stable. This one crashes, apps don’t work, and it basically sucks.

Ok, here’s a quick and dirty root of the Rogers beta 1.6 rom.

3g will not work unless you do a factory reset.

The ABI problem is fixed, so NDK code will install. (e.g. Dosbox, Google Goggles, etc)

I’ve been running this for a week, and it’s fairly stable. Outside of having to factory-reset to get 3g working, everything has been smooth with it.

I’ll work on an Apps2SD version once I have a final version from Rogers in my hands.

Enjoy – and let me know if you have any issues. 🙂

There are a few issues now – this is definitely early Beta… Don’t install unless you can handle a little instability.

Fixed! I can now use ADB to talk to the phone in OSX! Turns out that it’s a problem with the way that LG designed the phone’s composite device vs the way that OSX recognizes composite devices. USB devices all present a class and a subclass to the OS when they’re plugged in. For composite devices the class is 0 and the subclass can be 0 (legacy) or 16(current.) Linux plays a little fast and loose, and assumes that anything with a class of 0 is a composite device, but OSX is a little more stringent. It looks for the subclass to be proper. LG made the subclass on the GW620 a 2. Not 0 or 16 like the USB spec says, but 2. Totally non-standard. So, I modified the Info.plist for OSX’s composite device driver so that it would also accept 2. Problem solved. 🙂 Here’s what you need to do to make it work:

  1. Open terminal (Applications/Utilities/Terminal)
  2. “cd /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/IOUSBCompositeDriver.kext/Contents”
  3. “sudo nano Info.plist” (or vi, or emacs, or whatever console editor you prefer)
  4. Copy the IOUSBComposite section (from <key> to </dict>)
  5. Paste the section in at line 66 (right after where it appears) so you have 2 copies in the file
  6. Change the bDeviceSubClass value from 0 to 2
  7. Change the key name from “IOUSBComposite” to “GW620”
  8. The end result should look something like this:
  9. “sudo diskutil repairpermissions /” and let it finish
  10. “sudo touch /System/Library/Extensions” and wait a few mins for the extension reindexing to finish
  11. “adb devices” should now see your phone

Note, this is VERY kludgy, and will probably break every time OSX updates itself, but it works. I can finally stop rebooting every time I want to work on the phone! 😀

CyrilLD over at XDA found the serial console header on the GW620! It’s the 5 contacts in a row underneath the SIM card. The center one is the TX pin. This is a 3.3v serial port, so you’ll need a level converter of some sort to connect it directly to a PC’s serial port, but most USB-Serial adapters already operate at 3.3v so they should work fine.

I’m now trying to build a kernel (based on the default LG sources) that will output to that port during boot. If I can get boot messages on that serial port, then I should be able to duplicate the settings on the 2.6.29 kernel and hopefully get enough info to figure out where it’s crashing. Finger’s crossed!


Ok. So, I finished bringing the LG mods in to the 2.6.29 kernel and the beasty still won’t boot. it just sits there taunting me with a “Booting linux” prompt.

No error message, no console activity, no nothing. Just nothing.



Worse, another hacker on XDA tried the same thing with the CodeAura tree (the one it looks like the orig LG code is based on) and he’s getting the same result.

Baffling. I gotta step away from this for a day or two or I may go nutty.

Ok – nuttier. 😉

Gonna play some Torchlight.

To quote King Crimson: “Frustration will be my epitaph.”


Sooo I’m trying to port the changes that LG made to the kernel (that let it run on the GW620 hardware) and it is being a serious pain in the arse.

We need kernel 2.6.29 in order to fully run Android 2.0. So, a porting I will go! Gah! I started by trying to use diff to merge the changes automatically in to the newer kernel. I tried a few different approaches, and they all failed badly. Either there were 100s of merge errors, or the code was uncompilable spaghetti at the end of the merge, or a combination of the two.

I’m now trying to bring just the required hardware drivers in to a stock 2.6.29 source tree, and even that is giving me an insane amount of grief. Arg!

Arg Arg Arg Arg.


Edit: I have the video driver folded in to the new kernel now. Kernel still won’t boot though. There’s a few more Eve specific drivers I need to incorporate.

LG Just gave us access to the GW620’s open source code!

We should now be able to compile a more recent kernel for it, and hopefully get Android 2.0 working!  Wooohooo!

I’ve uploaded the source code here.  It’s open source, so I don’t think LG will mind.


Tolemac has made an Apps2SD image based on 1.0g that is way better than mine.  I highly recommend that anyone looking for an update check out his image at

Get it here



  • Pre-rooted with su/superuser.apk
  • sh replaced with bash (yay for tab-completion!)
  • full busybox setup. (cp/mv/less/grep and more!)
  • Terminfo set up for curses based apps
  • Nano pre-installed – nice to have a small/fast text editor on the command line.
  • Swapped out the Rogers bootup logo with something a little nicer stolen from (MyHangOutOnline) – minus the “It’s not Windows” line.
  • Auto mounts the 2nd partition of the SD card to /data/app if available (for apps2sd action!)

Instructions for installing firmware:

  1. Download the firmware (boot.img and system.img) and unzip it somewhere.
  2. Make a full nandroid backup of your phone! Really. Do it. Better safe than sorry. If you don’t make a backup and brick your phone then good luck recovering it with the LG software.
  3. Remove the battery from your phone
  4. Ensure it is NOT plugged in to USB
  5. Open the Keyboard
  6. Plug the phone in to USB, wait 2-3 seconds till the screen brightens slightly, and then hold down the space bar
  7. If you get the fastboot screen, proceed. Otherwise unplug and try the previous step again.
  8. At a command prompt type:

    cd <place where you unzipped the file in step 1>
    fastboot flash boot boot.img
    fastboot flash system system.img

  9. Unplug from USB
  10. Plug the battery back in, and hit the power button to boot up.

Now, you have an apps2sd rom installed, but your SD card is probably not set up for it. You’ll still get all the features of the firmware, but your apps will still be in the phone’s memory instead of the sd card.

There are a few ways to get your SD card set up properly. The one I used on OSX went something like this:

  1. Power off the phone, and remove the SD card
  2. Plug it in to a micro-sd USB reader.
  3. copy everything off the card in to a directory on your desktop
  4. use Disk Utility (in /Applications/Utilities) to delete the existing partition on the SD card and then create 2 new partitions. I have an 8gb sd, so I created the first partition as 6gb for data and the 2nd as 2gb for apps. Have Disk Utility format the first partition as FAT and the 2nd as Ext2.
  5. Copy everything from step 3 back on to the first partition
  6. Reinsert the SD card in to the phone and boot it up. The firmware should automatically detect the 2nd sd card partition and move all your apps over to it.
  7. You can verify it worked by doing an “adb shell mount” at a command line. The 2nd-to-last line of the output should read:

    /dev/block/mmcblk0p2 /data/app ext2 rw,noatime,nodiratime,errors=continue 0 0

If you are using Linux or windows you’ll have to follow a different process, but the results will be the same – an SD card with 2 partitions. The first partition is for data and must be formatted as FAT. The 2nd partition is for apps and must be formatted as ext2.

Here are some pages detailing SD card preparation:
This one looks like it does it all from the phone! Cool if it works!
Here’s another that works from the phone. This may be the best way to go – you boot the phone up with the nandroid recovery image and do all the partitioning from there. Sweet!

Google has many more how-tos to get the sd card set up.

As always, let me know if you have any questions.