Ken Kinder's personal website

Android, Google Maps, Navigation, and Open Source…

UPDATE: The details of this article are now moot, as the latest Google Maps application on the Android Market includes navigation on the G1.

OF COURSE when I saw that someone on the Interwebz managed to get the new Google Maps with navigation running on a G1, I almost wet myself with excitement. Normally this app only runs on the new Android 2.0 phones (namely, Droid from Verizon) and even rooted G1 are still only running Android 1.6. The instructions call for basically replacing the entire build properties on your phone with the Droid ones.

I’m not going to write any explicit instructions, since those are already on the forums and easily accessible with a Google search. But here’s basically what I did, which temporarily enabled navigation. To build.prop, I made the following changes:

kkinder@kkinder-laptop ~/Desktop> diff -u bp2 build.prop
--- build.prop.org	2009-11-16 11:40:34.000000000 -0700
+++ build.prop	2009-11-10 19:13:18.000000000 -0700
@@ -1,6 +1,6 @@
 # begin build properties
-ro.build.version.sdk=4
-ro.build.version.release=1.6
+ro.build.version.sdk=<strong>5</strong>
+ro.build.version.release=<strong>2.0</strong>
 ro.build.version.codename=REL
 ro.build.type=user
 ro.build.user=shade
@@ -15,7 +15,7 @@
 ro.com.android.wifi-watchlist=GoogleGuest
 ro.com.android.dateformat=MM-dd-yyyy
 ro.com.android.dataroaming=true
-ro.com.google.clientidbase=android-tmobile
+ro.com.google.clientidbase=<strong>android-verizon</strong>
 ro.setupwizard.mode=OPTIONAL
 ro.url.legal=http://www.google.com/intl/%s/mobile/android/android-dev-phone-legal.html
 ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/android-dev-phone-privacy.html

At this point, after using the unix find command in my phone’s terminal emulator to delete old maps data files and application files, I was able to reboot and install the maps app with all its new features — all its new features, except for navigation. So, I continued with the *real* instructions and applied changes to build.trout.prop

--- build.trout.prop.orig	2009-11-16 11:40:56.000000000 -0700
+++ build.trout.prop	2009-11-10 19:13:18.000000000 -0700
@@ -1,25 +1,25 @@
 # begin build properties
 # autogenerated by buildinfo.sh
-ro.build.id=DRC83
-ro.build.display.id=DRC83
-ro.build.version.incremental=14721
+ro.build.id=ESD20
+ro.build.display.id=ESD20
+ro.build.version.incremental=17572
 ro.build.date=Mon Sep 21 16:16:12 PDT 2009
 ro.build.date.utc=1253574972
-ro.product.model=T-Mobile G1
-ro.product.brand=tmobile
+ro.product.model=Droid
+ro.product.brand=verizon
 ro.product.name=kila
-ro.product.device=dream
-ro.product.board=trout
+ro.product.device=sholes
+ro.product.board=sholes
 ro.product.cpu.abi=armeabi
-ro.product.manufacturer=HTC
+ro.product.manufacturer=Motorola
 ro.product.locale.language=en
 ro.product.locale.region=US
 ro.board.platform=msm7k
 # ro.build.product is obsolete; use ro.product.device
 ro.build.product=dream
 # Do not try to parse ro.build.description or .fingerprint
-ro.build.description=kila-user 1.6 DRC83 14721 ota-rel-keys,release-keys
-ro.build.fingerprint=tmobile/kila/dream/trout:1.6/DRC83/14721:user/ota-rel-keys,release-keys
+ro.build.description=voles-user 2.0 ESD20 17572 ota-rel-keys,release-keys
+ro.build.fingerprint=verizon/voles/sholes/sholes:2.0/ESD20/17572:user/ota-rel-keys,release-keys
 # end build properties
 #
 # system.prop for dream

I don’t really like the idea of editing these files, because when the system lies about its version numbers, it could break other apps. But I made backups and did it anyway, with no dice on having a working navigation system. Some reading on a thread that grew to 50 posts within hours and I noticed some users reported that uninstalling and reinstalling Google Voice got navigation working on the (presumably unrelated) maps app, which it did.

But here’s the frustrating part: After driving around and enjoying your new navigation system, you go to restore your build*props files. If you revert version numbers, the app continues to work. However once you change your phone’s model information back (ie, you switch Verizon back to T-Mobile), your navigation disappears in the GUI. In other words, the map app is checking to make sure you’re running on Verizon’s network, and only allows you navigation then. That’s kind of slimey, but update: the updated Android 1.6 app includes navigation, so I guess my initial conspiracy theories are irrelevant.

Leave a Reply

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">