Well now...

As I said before, I bricked my Garminfone and traded it in for another phone. T-Mobile offered me an early exchange for a cheap Android device(their cheapest, mind you.). While adding an additional two years to my contract. For the cost of that, what did I get? a T Mobile COMET. Now, if it wasn't for the incredibly small display, or the fact that it was a REFURBISHED phone, it would have actually been a decent trade. But it's not worth another two years and a reset of your upgrade time.

Complete bullshit.

So, I switched to Sprint. The only downside is I had to make a deposit(100 per line.) and my wife and I got two new FREE Nexus S 4G's at Best Buy! That sounds like an advertisement...

So far, I'm glad I switched. All I can say for now is that it's cheaper, we'll be saving around $70.00 a month with Sprint for our phones. If I come up with anything bad to say about Sprint, I'll surely post it here.

Giving up

I bricked it for the last time, decided to get another phone instead.

Hopefully what I've posted, which seems to be more than anyone else has, will help others develop something for the Garminfone.

Enable Live Wallpapers for the Garminfone!

Due note, that you WILL notice a hit in performance. You've been warned!

1. Download this Zip from here: http://dl.dropbox.com/u/22031175/LWP.zip and extract to your SD card.

/sdcard/LWP
2. Using a file manager with Root access, copy
/sdcard/LWP/libRS.so
/sdcard/LWP/librs_jni.so
3. Paste and overwrite those files into
/system/lib/
4. Copy LiveWallpapersPicker.apk from
/sdcard/LWP/
5. Paste into
/system/app/
7. Grant LiveWallpapersPicker.apk these permissions
User Read/Write
Group Read
Others Read
8. Copy android.software.live_wallpaper.xml from
/sdcard/LWP/android.software.live_wallpaper.xml
9. Paste into
/system/etc/permissions
10. Reboot and enjoy!

How To: Build Garmin-Asus Kernel from Source

So, here's a short how to for compiling the source code provided by Garmin-asus. Please note there may be a step or two missing. I'll be updating this later when I get a chance to start from scratch and compile a better How To.

The originial directions for porting a kernel can be found here: http://wiki.cyanogenmod.com/index.php?title=Howto:_Build_a_Kernel_Port

1. Download the v.5.0.70 kernel source from garmin-asus.
Which can be found here: http://www.garminasus.com/developer/
2.

# curl http://android.git.kernel.org/repo >~/bin/repo
# chmod a+x ~/bin/repo
# mkdir <Android source dir> && cd <Android source dir>
# repo init -u git://github.com/CyanogenMod/android.git -b froyo
# repo sync
# export PATH=$PATH:~/<Android source dir>/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
3. Copy the kernel folder from Garminfone_T-Mobile_5.0.70.tar.gz.
4. Place it in <Android source dir>
5. Rename it, 'asus-kernel'
6.
# export ARCH=arm
# export CROSS_COMPILE=arm-eabi-
# export KERNEL_DIR=/full/path/to/asus-kernel
7. Download my ERE27.zip found in my post: http://mygarminfone.blogspot.com/2011/05/rom-dump-for-garminfone-a50-21-update1.html.
8. Extract asus_defconfig
9. Place asus_defconfig in <Android source dir>/asus-kernel/arch/arm/configs
10.
# cd <asus-kernel source dir>
# make asus_defconfig
It should work, I pulled what I did from memory. So like I said, if you're having issues, give me some time to get together a better How To.

ROM Dump for Garminfone A50, 2.1-update1, Kernel v2.6.29

Here's a 'ROM dump' of the Garminfone A50, 2.1-update1, kernel v2.6.29. I compiled the zImage/Image from the source code released by garmin-asus using asus_defconfig(pulled and renamed from config.gz).

http://dl.dropbox.co...31175/ERE27.zip

The files contained in this zip are:
asus_defconfig
Image
zImage
config.gz
system.info.gz
system.tar.gz
boot.img
recovery.img

I'd also like to point out my objective is to get CyanogenMod 6/7 on our Garminfones. I could absolutely care less about the Garmin Navigation features at this point.

Porting Clockwork Recovery to our Garminfone

Follow my post about Creating your Environment for CyanogenMod.
Once you've finished that, you're ready to begin.

Also take note that I'm switching in between host OS and virtual machine OS.
Windows 7 Pro is my host, while Ubuntu 11.04 is on a VM. Assume I'm using Ubuntu if I haven't specified I'm on Windows.

Getting Started

$ cd /home/<USER>/Android/CyanogenMod/
$ make -j<number of processor cores + 1> otatools
Gathering the Required Files
We'll be using Windows for these next steps.
Using a Terminal Emulator on your Garminfone. 
# cat /sdcard/install > /data/local/install
# chmod 04755 /data/local/install
# /data/local/install
Android ROM dumper v0.72b
(c)2010 Sebastian404
romdump installed.
# /system/bin/romdump
Let it finish, it will take a minute or two.
Android ROM dumper v0.72b
(c)2010 Sebastian404
Device : ERE27

Creating required files... done.
Opening mtd table... done.
Dumping kernel config... done.
Dumping boot partition... done.
Dumping recovery partition... done.
Dumping system partition... done.
Creating Checksums... done.
Cleaning up... done.
All done.
The files we need will be on the sd card of our Garminfone.
/sdcard/romdump/ERE27/
Copy the folder ERE27 to our Ubuntu environment...
/home/<USER>/Android/
Creating the Recovery
Back into Ubuntu for these steps.
$ cd /home/<USER>/Android/CyanogenMod/
$ PATH=/home/<USER>/Android/CyanogenMod/out/host/linux-x86/bin:$PATH
$ . build/envsetup.sh
$ build/tools/device/mkvendor.sh garmin-asus a50 /home/<USER>/Android/ERE27/boot.img
Output will be in /home/<USER>/Android/CyanogenMod/device/garmin-asus/a50
Done!
Use the following command to set up your build environment:
  lunch full_a50-eng
And use the follwowing command to build a recovery:
  . build/tools/device/makerecoveries.sh full_a50-eng
$ lunch full_a50-eng

============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.4
TARGET_PRODUCT=full_a50
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=false
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=GINGERBREAD
============================================
So, before we run makerecoveriers.sh. We have to make a correction real quick.
Browse to /home/<USER>/Android/CyanogenMod/build/tools/device/ and open mkrecoveryzip.sh. Look for darwin-x86 and replace with linux-x86. Save and close.
$ . build/tools/device/makerecoveries.sh full_a50-eng
You should see this
Recovery FakeFlash is now available at /home/<USER>/Android/CyanogenMod/out/target/product/a50/utilities/update.zip
Now we have what we need, all in /home/<USER>/Android/CyanogenMod/out/target/product/a50. update.zip and recovery.img.

With that said and done. I haven't found a way to apply the update.zip, but I have found an alternitive method to getting us booting into clockwork recovery. That's for my next post though... =)

Creating your Environment for CyanogenMod

I'm really new to all of this. I only have a background in Development for C# and a bunch of Microsoft stuff. Nothing really Linux related. So tread lightly =)

Getting Started
I downloaded 64 bit Ubuntu 11.04 iso and created a Virtual Machine in VMWare Workstation. VMWare Player will suffice.

Initializing a Build Environment 
http://source.android.com/source/initializing.html
Complete the sections for Installing the JDK and Installing required packages.

Downloading the Source
$ cd /home/<USER>/
$ mkdir /Android/
$ cd /home/<USER>/Android/
$ mkdir /CyanogenMod/
$ cd /home/<USER>/Android/CyanogenMod/
$ chmod a+x /home/<USER>/Android/CyanogenMod/
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl http://android.git.kernel.org/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
The repo init will prompt you for your name and email address.
$ repo sync
The sync process will take about a half an hour.

Clockwork Recovery v2.5.0.1

Following the directions from here:
http://www.koushikdutta.com/2010/10/porting-clockwork-recovery-to-new.html

And several other places... Which I'll post about later!

I managed to whip up a functional CWR! Though, I say functional, because half of the screen is being blocked by a Garmin logo. But I have navigated through some of the menu options available.

For now I just wanted to provide some evidence that it works.
http://dl.dropbox.com/u/22031175/a50.zip

Follow the steps in the link below with the recovery.img contained in the a50.zip.
http://wiki.cyanogenmod.com/index.php?title=Flash_image

Then
adb reboot recovery

Performing a Hard Reset

Also know as a Factory Reset. It will delete all of your data, configuration. Putting it back to when you initially got it.

I'm not too sure, haven't actually done it. But I don't think that it'd be any sort of 'recovery' in the event that you modify a system file.

1. Power down the pone.
2. Press and Hold: D Pad Left + Power.
3. Wait for the ** WIPE USERDATA **
4. Allow it to reboot, and you're back to square one!

OTA Update from v1.6 to v2.1!

This is sort of an old topic, but one of my first discoveries with this fone.

The first thing that happend, was that the 2.1-update1 was initially 'leaked'(straight off the garmin-asus site mind you.). Then after several weeks, the 'official' 2.1-update1 was released. I don't believe there's any difference in-between the two, at least I haven't noticed. Though when compressing to zip, both releases are different file sizes, varying only a few mbs.

Here's the place where you'll find a download link and a 'How To'
http://www.garminasus.com/en_US/support/eclair/

They seem to move stuff around all the time and make changes, so here's the original 'How To' guide for upgrading your Garminfone.

A new software upgrade is available for the T-Mobile Garminfone that will upgrade the Android Operating System to Android 2.1 (Eclair). To upgrade your phone, please follow these steps:
Downloading the .update file to your computer

  1. Visit www.garminasus.com/en_US/support
  2. Click 'Software Updates'
  3. Download the 'Android 2.1 (Eclair) Update' for your Garminfone to your computer
    • Note:  Please save this file someplace easy to find, such as your Desktop
Copying .update file to Garminfone
  1. Connect your Garminfone to your computer using the USB cable provided in your box
  2. On the device, select "File Transfer" mode when the "USB connected" dialog appears
  3. On the computer, double-click on the Garminfone icon displayed on your computer
    • Windows Users:  You can find this icon in "My Computer" or "Computer" (usually located on your desktop or in your Start Menu)
    • Mac Users:  You can find this icon on your desktop
  4. Double-click the "Garmin" folder
  5. Double-click the "Update" folder
    • Note: If this folder does not exist, please right-click, select New Folder, and create a folder titled 'Update' (without quotes and with a capital U)
  6. Right-click the 006-B1130-00.update file at the location that you saved the file (e.g. on the Desktop)
    • Mac Users: Hold the Control key when clicking to "right-click"
    • Note: The file name must not be changed.
  7. Click Copy
  8. Right-click the Update folder, within the Garmin folder on the Garminfone
    • Mac Users: Hold the Control key when clicking to "right-click"
  9. Click Paste
  10. Once the transfer is complete, please Exit File Transfer Mode by sliding down the notification bar from the top of your phone's screen, touching USB File Transfer Mode, and touching 'Yes'.
  11. Remove your device from the computer.
    • Note:  It is important to safely remove the device from your computer in order for the file copy to be successful
Updating your device
Once you have ejected the Garminfone from your computer, the UpdateLauncher application will display.
Note:  Please ensure that the Garminfone is connected to a power source during the entire update process.
  1. When the UpdateLauncher application displays a prompt to apply the update, select "OK" and the update process will begin.
    • Note: If you see a message stating that the system version is the same as the system update file select, "Yes" to proceed.
  2. Leave device undisturbed until update is finished. The device will reboot itself into the update mode and then reboot to the lock screen.
  3. When you see the lock screen, your device will be updated.
After the phone restarts again, Garminfone’s Android 2.1 update will be complete.

My Garminfone

Seeing the lack of popularity with this pone, it's hard to find out information about it. So I've decided to create a blog, post my findings, share with other Garminfone owners!

Looks like this won't become a very popular blog...