Michael Mayhew

Google Maps with Turn by Turn Navigation for CyanogenMod

by mmayhew on Nov.11, 2009, under Android, Technology

Final Update: Google has released Google Maps 3.2.1 in the Market with native Navigation support.  These instructions are no longer needed.

Thanks for all the support and kind words.

If you have Google Maps installed with my instructions below, it would be a good idea to revert and re-install through the Market.

Do this to revert:

ADB Instructions:

  1. Download http://mmayhew.com/4.2.5_build_files.zip
  2. Open a command prompt in the folder you unzipped  the 4.2.5_build_files.zip files
  3. Run the following commands from command prompt:
  4. adb remount
  5. adb shell rm /system/app/*maps*
  6. adb shell rm /system/app/*Maps*
  7. adb shell rm /system/sd/app/*maps*
  8. adb shell rm /system/sd/app/*Maps*
  9. adb shell rm /system/sd/dalvik-cache/*Maps*
  10. adb shell rm /system/sd/dalvik-cache/*maps*
  11. adb shell rm /data/dalvik-cache/*maps*
  12. adb shell rm /data/dalvik-cache/*Maps*
  13. adb shell rm /data/app/*Maps*
  14. adb shell rm /data/app/*maps*
  15. adb push build.prop /system/
  16. adb push build.trout.prop /system/
  17. adb push build.sapphire.prop /system/
  18. adb shell reboot
  19. Go to the Market and install Google Maps.
  20. You’re Done!

Terminal Instructions:

  1. Download http://mmayhew.com/4.2.5_build_files.zip
  2. Unzip zip
  3. Copy build.prop, build.trout.prop, build.sapphire.prop and Maps.apk to /sdcard/
  4. Open Terminal on your G1/MT3G
  5. su
  6. mount -o remount,rw /system/
  7. cp /sdcard/build.prop /system/
  8. cp /sdcard/build.trout.prop /system/
  9. cp /sdcard/build.sapphire.prop /system/
  10. rm /system/sd/app/*Maps*
  11. rm /system/sd/app/*maps*
  12. rm /system/sd/dalvik-cache/*Maps*
  13. rm /system/sd/dalvik-cache/*maps*
  14. rm /system/app/*Maps*
  15. rm /system/app/*maps*
  16. rm /data/app/*maps*
  17. rm /data/app/*Maps*
  18. rm /data/dalvik-cache/*maps*
  19. rm /data/dalvik-cache/*Maps*
  20. reboot
  21. Install Google Maps from Market
  22. You’re Done!

Update (on the Final Update):

If you get “Incompatible Update” when updating Google Maps in the Market, try the following. It has worked for me and others.

Download these files again.

ADB Users:

  1. Follow the above steps for ADB but after step 18 (reboot) do the following:
  2. Unzip files
  3. adb remount
  4. adb push Maps.apk /system/app/
    1. If you get an error that says the filesystem is read only do the following
    2. adb shell mount -o rw,remount /system/
    3. Then rerun the command
  5. Now go to the Market and try to re-install

Terminal Users:

  1. Follow the above steps for Terminal but after step 20 (reboot) do the following:
  2. Unzip files and copy to your SD card.
  3. In Terminal:
  4. su
  5. mount -o remount,rw /system
  6. cp /sdcard/ /system/app/
  7. mount -o remount,ro /system
  8. Close Terminal and re-install through the market.

————————————————–

Thanks to the guys on XDA we now have Google Maps with Nav from Eclair working on Donut-based CyanogenMod 4.2.5

Download the files from: http://www.mmayhew.com/Navigation.zip

Linux Users Only: Feel free to use this script by foopirata to automate the adb process.  I have not tested this script but it looks like it would work.  You will need to do the following:

  • Run the script as root
  • Have the SDK installed and adb in your path
  • Have the phone connected via USB
  • Be familiar with running bash scripts

If the script doesn’t work for you or you are not a Linux user, try the manual processes below:

ADB Instructions for Windows, Mac and Linux users: If you have the SDK installed and are familiar with adb, do the following. If not, skip down:

  1. Open a command prompt in the folder you unzipped  the Navigation.zip files
  2. Run the following commands from command prompt:
  3. adb remount
  4. adb shell rm /system/app/*maps*
  5. adb shell rm /system/app/*Maps*
  6. adb shell rm /system/sd/app/*maps*
  7. adb shell rm /system/sd/app/*Maps*
  8. adb shell rm /system/sd/dalvik-cache/*Maps*
  9. adb shell rm /system/sd/dalvik-cache/*maps*
  10. adb shell rm /data/dalvik-cache/*maps*
  11. adb shell rm /data/dalvik-cache/*Maps*
  12. adb shell rm /data/app/*Maps*
  13. adb shell rm /data/app/*maps*
  14. adb push build.prop /system/
  15. adb push build.trout.prop /system/
  16. adb push build.sapphire.prop /system/
  17. adb shell reboot
  18. Wait for phone to boot back up
  19. adb remount
  20. adb install Maps.apk
    1. If that fails, try adb install -r Maps.apk
    2. If THAT fails, try adb push Maps.apk /system/app/
  21. Make sure GPS is enabled
  22. Open Maps and press OK
  23. Press Menu
  24. Press Directions
  25. Enter an end point
  26. Click Go
  27. Just under “Show on map”, click Navigate.
  28. When prompted to install the voice codec, do so.
  29. Enjoy.

Manual Instructions without a PC: If you do not have the SDK installed, do the following:

  1. Unzip zip
  2. Copy build.prop, build.trout.prop, build.sapphire.prop and Maps.apk to /sdcard/
  3. Open Terminal on your G1/MT3G
  4. su
  5. mount -o remount,rw /system/
  6. cp /sdcard/build.prop /system/
  7. cp /sdcard/build.trout.prop /system/
  8. cp /sdcard/build.sapphire.prop /system/
  9. rm /system/sd/app/*Maps*
  10. rm /system/sd/app/*maps*
  11. rm /system/sd/dalvik-cache/*Maps*
  12. rm /system/sd/dalvik-cache/*maps*
  13. rm /system/app/*Maps*
  14. rm /system/app/*maps*
  15. rm /data/app/*maps*
  16. rm /data/app/*Maps*
  17. rm /data/dalvik-cache/*maps*
  18. rm /data/dalvik-cache/*Maps*
  19. reboot
  20. After the phone boots, return to terminal
  21. su
  22. mount -o rw,remount /system
  23. cp /sdcard/Maps.apk /system/app/
  24. mount -o ro,remount /system/
  25. Close terminal
  26. Make sure GPS is enabled
  27. Open Maps and press OK
  28. Press Menu
  29. Press Directions
  30. Enter an end point
  31. Click Go
  32. Just under “Show on map”, click Navigate.
  33. When prompted to install the voice codec, do so.
  34. Enjoy.

UPDATE: If you have tried these instructions and can’t get it working, try the following as suggested by nhudson in the comment section. This worked for him and others:

1: Remove Google Voice
2: Replace the build.prop files (trout, sapphire, etc) back to the original ones.
3: Reboot
4: Reinstall the new build.prop files and remove any of the map stuff from the directories Michael listed.
5: Reboot
6: Install the new Maps.apk file
7: Launch Google Voice and re-set it up
8: Launch the new Maps and Navigation was there.

Let me know if this works for you. If you need help, leave a comment, holler at me on twitter or head over to this thread on XDA.

If you don’t see the Navigate option, try installing Google Voice. I know it sounds weird but it’s reported to work.

If you still don’t see the Navigate option, I’m not sure I can help other than re-do the steps above.  Here is what’s important:

  • Make sure you deleted all *Maps* and *maps* files from:
    • /system/app/
    • /system/sd/app/
    • /system/sd/dalvik-cache/
    • /data/app/
    • /data/dalvik-cache/
  • Make sure you rebooted after copying the build*prop files to /system/

If Navigation is working but certain apps aren’t acting right, you may need to revert back to the original build.prop files. They can be found at http://mmayhew.com/original_build_prop_files.zip

Here are some screenshots from my G1:

:, , , , , , , , ,

67 Comments for this entry

  • Patrick

    Followed the non-SDK directions exactly… The map software is updated (now has layers, etc), but still no navigate option.

    Google Voice was installed. Uninstalled/Reinstalled, still nothing.

    Tried the whole thing twice… Nata.

    Any clues?

    Also, Are steps 5 and 16 suppose to be different? And, is 16 missing a /?

    I know that a trailing / will make a difference in some situations (RSYNC will copy the whole folder vs. the folders contents depending on the trailing /).

  • mmayhew

    Hey Patrick. I just changed the build.trout.prop and build.sapphire.prop files. I’ve re-uploaded.

    Repeat the steps and give it a shot.

    Step 5 is correct: adb shell rm /system/app/*Maps*

    Step 16 has a trailing slash so I’m a little confused:

    adb push build.sapphire.prop /system/

  • Robin

    Great set of instructions. I didn’t get the Navigate option when I first started maps so as advised I uninstalled Google Voice, reinstalled and re-logged in and Navigate option showed up. Very cool! Thanks so much!

  • Francisco

    Hi, Thanks man. Do you know if it works outside the US. I live in Germany and i would like to know if it works.

    Thanks.

    Greets

  • Patrick

    Thanks for the quick reply! I figured you could read minds, so I didn’t give you all the information you needed. Here you go:

    G1, 4.2.4 w/ Apps2SD

    Yes, I created an ext partition. To be exact, my SD is partitioned as follows:

    ~3GB Fat32 – for me
    ~512 ext4 – for Aps2SD
    ~384 linux-swap – for swap

    I’m going to try again, and I will let you know. Thanks.

    P.S. I meant steps #5 and #22 for the non-SDK instructions.

  • Patrick

    Okay, I followed the new instructions – still not working.

    I also tried uninstalling and reinstalling Google Voice again. Still nothing.

    What do you think about swap? Does it actually do anything on the G1? And, is 384 too much?

    Oh, also I flashed a custom SPL. (I think it is the standard Engineering SPL.)

    I’ll keep playing and let you know. Let me know if you need any more info. Thanks.

  • nhudson

    Patrick I had kind of the same problem you did. I basically had to do the following to get it to work.

    1: Remove Google Voice
    2: Replace the build.prop files (trout, sapphire, etc) back to the original ones.
    3: Reboot
    4: Reinstall the new build.prop files and remove any of the map stuff from the directories Michael listed.
    5: Reboot
    6: Install the new Maps.apk file
    7: Launch Google Voice and re-set it up
    8: Launch the new Maps and Navigation was there.

    HTH.

  • Freekyfrogy

    It worked! I had gotten nav working yesterday on 4.2.3.1, but my phone wierded out and stopped booting. I had to do a total reformat and wipe, so I installed 4.2.4. I spent hours last night scouring the thread on XDA for updated instructions but everything was so unorganized it was very hard. I did a fresh install and followed your instructions exactly. I didn’t even have to install google voice like I did last time =) Thank you so much for putting out a single definitive instruction set for this (also, thanks for the non-ADB instuctions. My ADB doesn’t work right for some reason =P)

  • Patrick

    Okay got it working. Had to do the same thing as nhudson.

    It seems that Google Voice is the key to getting this working.

    It’s pretty cool.

  • mmayhew

    Glad you got it working Patrick. I’ll update the post above to clarify how you and Nick got it working.

    Thanks Nick for your comment.

  • mmayhew

    Francisco- It’s not working outside of the USA at the moment. I’d poke around on XDA in the “Dream Android Development” section for progress. They are working on it.

  • foopirata

    Hi, just a small contribution – a script to automate the install steps, if you’d like, just add it to Navigation.zip.
    And many thanks for the clear instructions.

    #!/bin/bash

    for n in build.prop build.sapphire.prop build.trout.prop Maps.apk ;do if [ ! -f $n ]; then echo “Can’t find $n in this directory, and I’ll need it.”; exit 1; fi; done
    adb remount
    adb shell rm /system/app/*maps*
    adb shell rm /system/app/*Maps*
    adb shell rm /system/sd/app/*maps*
    adb shell rm /system/sd/app/*Maps*
    adb shell rm /system/dalvik-cache/*Maps*
    adb shell rm /system/dalvik-cache/*maps*
    adb shell rm /data/dalvik-cache/*maps*
    adb shell rm /data/dalvik-cache/*Maps*
    adb shell rm /data/app/*Maps*
    adb shell rm /data/app/*maps*
    adb push build.prop /system/
    adb push build.trout.prop /system/
    adb push build.sapphire.prop /system/
    adb shell reboot
    echo “Please press enter once your phone finishes rebooting”
    read foo
    adb remount
    adb install Maps.apk
    if [ $? != 0 ]; then
    adb install -r Maps.apk
    if [ $? != 0 ]; then
    adb push Maps.apk /system/app/
    fi
    fi
    echo “Make sure GPS is enabled.”
    echo “Maps->OK->Menu->Directions->Enter point->Go->Navigate”
    echo “If prompted for voice codec, install.”

  • G1

    I followed the non SDK instructions to the letter and I now have navigation.

  • mmayhew

    footpirita,

    Thanks for the bash script. I would highly encourage linux people and mac techies to use it but I’m hesitant about including in the zip file due to all the Windows noobs that would get confused and ask how to run the script.

    I’ll update the blog and post the script for download.

  • dave

    I didn’t have the navigation option at first, but just like Robin all i did was uninstall Google voice and then reinstall it back to my phone and BOOOM! navigation option showed up. Thanks so much for writing up a terminal method.

  • Giantcrazy

    Didn’t work at first, but I upgraded Google Voice to the latest version (I was one behind) and voila, worked like a charm. On a recently upgraded CM 4.2.4 with no theme.

    Thanks MM!

  • foopirata

    hm, good point about the Windows users. Kudos for being to sympathetic to them!

  • foopirata

    Oh, btw – the script doesn’t need to run as root.

  • Brad

    Followed the instructions for the terminal installation…there were a few “map” files that didn’t exist in the folders listed (on my phone, at least):

    /system/sd/app/*maps*
    /system/sd/dalvik-cache/*Maps*
    /system/sd/dalvik-cache/*maps*

    I skipped these (since the point is to get rid of these files anyhow), and the install went perfectly. I did have to uninstall and reinstall Google Voice to get the Navigation button.

    Thanks so much!

  • mmayhew

    foopirata- The reason I put the “root” requirement is on a lot of default linux installs, the adb daemon can’t access the device when launched by a regular user.

    Another reason is I try to lay these out where I will have to provide the least amount of support as possible ;) Requiring a script is run as root will avoid any stupid permission issues due to user stupidity.

    I normally would not be sympathetic to Windows users but I don’t want the comments clogged up with “How do I run adb_nav.sh from Windows Vista?!?”

  • mmayhew

    Brad- Glad the instructions worked for you.

    It’s expected files won’t exists in all those places. It depends on if you are doing Apps2SD and other factors but rather than saying “If Situation A, delete the following files; If Situation B, delete the following files” I just have everyone try to delete all files since it can’t hurt if they don’t exist.

  • Andrew

    Just a tip: when running using adb from the computer you can cut and copy this entire line after doing adb shell:

    rm -rf /system/sd/app/*maps* /system/sd/app/*Maps* /system/app/*maps* /system/app/*Maps* /system/sd/dalvik-cache/*maps* /system/sd/dalvik-cache/*Maps* /sdcard/google_maps_navigation

    This will remove everything having todo with maps in one sweep and save a lot of typing. I have used it without any ill effects :)

  • mmayhew

    Thanks for the recommendation Andrew. There are definitely a lot of commands that can be combined, scripted, etc.

    Keep the tips coming.

  • Chuck

    You are the MAN! Thank you for putting all this in one place. I kept getting incompatible app messages. The key for me was (as you said) to uninstall Google Voice, put my old build props back, reboot, put your build props in, reboot, and install the Maps.apk. Then the incompatible app message went away and I could install the app, use it, etc. I have a MyTouch 3g with CyanogenMod-4.2.4. Thanks!

  • Waldo

    The bash script above totally worked!

    Thanks, guys

    W

  • Dawson

    Thanks for the great how to. When I first went through the process in terminal there was no navigate option in maps. I uninstalled and reinstalled google voice and it magically appeared! Thanks again for the help, G1s still rock.

  • Waldo

    BTW– I should point out that the bash script worked in OS X. I know you said Linux, but c’mon.. it’s bash.

    W

  • Francisco

    So still no hack to use navigation outside the US :”(.

    I’ll keep reading the thread. Maybe soon someone can announce the big news.

    Until then. Keep up the good work.

    Prost !!

  • Bob

    Worked perfectly for me the first time. I installed Google voice afterwords and there were no problems. Thanks for the tutorial it’s always nice when someone puts all the info in one place with good support for the noobs like me.

  • Jon Evanson

    belp… worked perfect thanks

  • Jon Evanson

    belp… worked perfect thx

  • lee

    so just to be super clear… this will only work with a rooted phone correct?

  • Rasch

    Hey i couldnt get to work so im gonna try using the other versions of the files like you say to, but i dont know how to remove those files. Also the directions say reinstall and the remove, but i should remove the files and then reinstall them right?

    * ive installed google voice but it cant activate my phone when i go to the website from my computer is that an issue

  • Jason

    Thanks mmayhew! …Worked perfect for me as well! …Confirmed from another, just had to install Google Voice and Navigate showed up. Now to take a drive to see how this things works :)

  • Francisco

    Hi, so now with the new 4.2.5 Mod, does the prop files stay the same? or are in the prop files 4.2.4 specific stuff ?

    Greets.

    Francisco

    PS: i tested it with 4.2.4 and works perfect. In Germany the navigation button does not appear. But still new features (layers, wikipedia, etc.)

  • Ryan

    I had it working yesterday using the last method on this page, upgraded to 4.2.5 and it continued to work. However, in the morning the feature was gone.

    I’m following these steps again to see if it can work again for more than a day.

  • David Kowis

    I hacked the build.prop to change the cyanogenmod version to 4.2.5 and everything else behaved perfectly fine. I installed on a 4.2.5 cyanogen install. Yay!

  • Josh

    I lost navigation after updating to CM 4.2.5

    I reinstalled navigation following the terminal directions above which worked and brought navigation back to the phone. However, Android reported the version of CM to be 4.2.4 and CMUpdater also believed it was running 4.2.4 and suggested the update to 4.2.5.

    The fix for this was to edit the build.prop file on my sdcard (you can use nano or notepad) to change the CM version entry from “4.2.4″ to “4.2.5″. Then do the following:

    1. open terminal
    2. su
    3. mount -o remount,rw /system/
    4. cp /sdcard/build.prop /system/
    5. reboot

    Everything should work perfectly now and your phone will recognize that you are running the latest version of CM.

  • Kiran

    Hi Guys!

    I tried these steps before and Gmail,Google Voice apps won’t work anymore if Navigation is on. Anyone else facing a similar issue?

    Thanks,
    Kiran

  • ruffneckc

    Hey mmayhew,

    I just wanted to give you a big up for putting this in one place. I followed the SDK install instructions and it worked like a charm on Ubuntu 9.10. Thanks very much and for everyone else who’s chimed in with tips!

  • footix24

    I attempt to solve a long mystery:

    I couldn’t find the Navigate button after multiple tries, which include uninstalling & reinstalling Google Voice. Then I finally manage to get it to show up.

    The answer? It doesn’t work at where I live (Singapore).
    I randomly pointed two locations in the USA, and voila, the Navigate button shows up.

    Gees. I hope this helps non-US folks.

  • Thasro

    I followed the directions exactly and everything works perfectly. I don’t even have Google Voice and Navigation works great.

  • Yaniv C

    For those that are trying to get it to work and still dont after following the instructions (by the way… great instructions but theres a Navigation.zip file out there that runs 2 batch files which does everything for you) and it still wont work… make sure you have google voice installed.
    See most people having problems is because they had google voice installed and the version wouldnt work with Navigation. But if you never had google voice insatlled, it wont work.
    So just download google voice form the market. And then it should work.
    Worked perfectly for me.

  • Bryan

    @Josh

    I had the same problem with CM Updater displaying 4.2.4 even though I am running 4.2.5 (successfully, I will add). I edited the build.prop file as you recommended.

    Will this need to be changed every time a CM update comes out???

  • Saar

    Using CM4.2.5, latest Google Voice.
    Uninstalled/re-installed multiple times.
    Problem is that with modified builds, GV runs and can get set up, but does not download messages (stuck at downloading). Navigation works fine.
    If I revert to original builds, everything works fine, but Navigation stops working after several hours (unrelated to reboot).

    I’ve followed your procedure, as well as several other procedures/scripts from XDA.

    Any suggestions?

  • The Maj

    Followed the instructions and it worked like a charm on my g1 dev running CM4.2.5, gps nav thru google maps is a NICE! Thank you!

  • AndroidFan

    Followed your great easy instructions. Install the NAV mod manually without any problems. Works like a charm.

    When selecting a destination, you have two choices; select from Contact or Point-On-Map.

    Does anyone have the ability to choose a Contact(yes with address already inputed on contact) and have it work properly???

    When I choose Contact, it does nothing…
    When I Point-On-Map, it works….

  • Will

    I followed these instructions, and now can’t get my GPS to work. I’ve tried going back to RC29, or the base Cyanogen installation. Anyone else had this issue?!

  • Brian

    Can’t seem to remove the old map files. They appear to be protected or read-only when I selected to remove them. I do not have SDK installed, so I am going by the 2nd set of instructions to install manually. Terminal said when trying to copy .prop files over there was a BusyBox…multi-call binary. How do I remove/overwrite these? Any suggestions will be greatly appreciated!

  • whoever

    not working in switzerland (zh)

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Archives

All entries, chronologically...