[Think Tank] Modifying G1 to enable Navigation - THUNK!

Search This thread

octobclrnts

Senior Member
Apr 26, 2009
67
13
Pittsburgh
This has been solved! Please see around page 8 of this thread.

Here guys, all wrapped up.

Make sure you have CyanogenMod 4.2.3.1, by the way.

1) Unzip zip to desktop
2) Run Part 1.bat
3) When prompted to press any key, do so; the phone will reboot
4) When your phone is running again, run Part 2.bat
5) When prompted to press any key, the installation process is done.
6) Make sure GPS is enabled
7) Open Maps and press OK
8) Press Menu
9) Press Directions
10) Enter an end point
11) Click Go
12) Just under "Show on map", click Navigate.
13) When prompted to install the voice codec, do so.
14) Enjoy. :)

http://www.mediafire.com/?lioyoy2ydzu

If you have no navigation option after the above steps try installing Google Voice from the market:
AWESOME !!! Took another users post to install google voice and BAM the navigation button showed up!!!! Woot!


===============================================
This is a continuation of a discussion that started in this thread: http://forum.xda-developers.com/showthread.php?p=4918275

My best guess as to why navigation works in the emulator but not on the phone has to do with what kind of device the Maps application thinks it is running on.

For example, if you start maps and press menu->more->about and look at the "Platform" line, that will be different according to the device (emulator or G1 or other) that you are running on. What we need to change (I think) would be that setting.

According to this link, you can programatically get that string (I'm pretty sure they were talking about that string) through the API. Anyone more familiar with the API know where that string is stored?

Also, any other suggestions as to why it won't work on a real phone may be discussed in this thread.
 
Last edited:

[email protected]

Senior Member
Jun 15, 2007
1,094
9
One thing I noticed is that it repeatedly references epc.tmobile.com as the provider. Let's hope they aren't using that and checking for verizon or this is a fool's quest.
 

octobclrnts

Senior Member
Apr 26, 2009
67
13
Pittsburgh
Some interesting things to note:

The Version string of the Maps app is different in the emulator than on the phone as well.

Emulator: "3.2.0 (#3232) Web"
Phone: "3.2.0 (#3232) gmm-google"

Also, there was a blog post put up before 1.5 was released showing a way that you could spoof the ANDROID_ID on the phone by modifying a database (article here). I don't know if this is valid since at the end of the article he stated that they were supposed to fix it with 1.5.

Edit: I may have gotten ahead of myself. The ANDROID_ID string I think is not the correct one that I was looking for. That seems to be unique to the phone and not to the model, maker, whatever.
 
Last edited:

octobclrnts

Senior Member
Apr 26, 2009
67
13
Pittsburgh
I'm thinking that we're going to need someone to go to a Verizon store and see what the droid says there.

The question is, even if we knew what the droid said - how can we change our Platform string to match. It's clearly not reading off of the build.prop file (and neither is the device string in the about phone menu).

Maybe it's a database issue (the database gets initialized the first time the phone is booted to the values in the build.prop file?) that just needs to be wiped.
 

JAguirre1231

Senior Member
The question is, even if we knew what the droid said - how can we change our Platform string to match. It's clearly not reading off of the build.prop file (and neither is the device string in the about phone menu).

Maybe it's a database issue (the database gets initialized the first time the phone is booted to the values in the build.prop file?) that just needs to be wiped.

Yeah, I know where your coming from. However, I think it would be easier if we at least knew what build we were aiming for
 

[email protected]

Senior Member
Jun 15, 2007
1,094
9
Yeah, I know where your coming from. However, I think it would be easier if we at least knew what build we were aiming for

Well let's see... what do we know so far?

The version string shows up differently on different phones and the emulator shows up with a general one, but all have the same number. So it's probably not that, it seems to be building that from information it gathers elsewhere on the phone.

It's probably not reading which network is being used since that would block the emulator(which isn't running off the verizon network).

The only thing left I can think of immediately is the model string. That would actually make perfect sense, check against the model string to make sure that it's either the emulator or the droid. Otherwise turn off navigation. Changing that would be my first thing to aim for.
 

Coderedpl

Senior Member
May 5, 2009
1,738
156
New York
Well let's see... what do we know so far?

The version string shows up differently on different phones and the emulator shows up with a general one, but all have the same number. So it's probably not that, it seems to be building that from information it gathers elsewhere on the phone.

It's probably not reading which network is being used since that would block the emulator(which isn't running off the verizon network).

The only thing left I can think of immediately is the model string. That would actually make perfect sense, check against the model string to make sure that it's either the emulator or the droid. Otherwise turn off navigation. Changing that would be my first thing to aim for.

How tough is that to do?
Just wondering since if easy someone would of tried already.
 

[email protected]

Senior Member
Jun 15, 2007
1,094
9
How tough is that to do?
Just wondering since if easy someone would of tried already.

No clue, probably need someone with experience making ROMs for that info. I'm guessing it has to be in some file somewhere. Seems highly unlikely they'd have done something as crazy as building that into the hardware.
 

octobclrnts

Senior Member
Apr 26, 2009
67
13
Pittsburgh
Well, I modified cyanogen's build.prop file to include the lines below:

ro.build.id=ECLAIR
ro.build.version.sdk=5
ro.build.version.release=2.0
ro.product.name=sdk
ro.product.device=generic
ro.product.manufacturer=unknown

As well as put the Maps.apk into the system/app folder in his update file. Then I resigned the file, put it on my SD card and wiped my phone. I installed the "new" rom and booted up. The maps app works exactly as it should sans navigation options. The Version string i have now is the "3.2.0 (#3232) gmm-androidd-tmobile" one but the Platform string is unchanged.

I noticed in the "About Phone" menu, the Model Number (T-Mobile G1) was unchanged but the Firmware version said "2.0" and I'm pretty sure it said "1.6" before.
 

JAguirre1231

Senior Member
Well, I modified cyanogen's build.prop file to include the lines below:

ro.build.id=ECLAIR
ro.build.version.sdk=5
ro.build.version.release=2.0
ro.product.name=sdk
ro.product.device=generic
ro.product.manufacturer=unknown

As well as put the Maps.apk into the system/app folder in his update file. Then I resigned the file, put it on my SD card and wiped my phone. I installed the "new" rom and booted up. The maps app works exactly as it should sans navigation options. The Version string i have now is the "3.2.0 (#3232) gmm-androidd-tmobile" one but the Platform string is unchanged.

I noticed in the "About Phone" menu, the Model Number (T-Mobile G1) was unchanged but the Firmware version said "2.0" and I'm pretty sure it said "1.6" before.

You would be right, cyanogen only makes builds from soure code. And the source code for 2.0 hasn't been released yet. So, obviously we need to have a modified build.prop before we flash a rom, or it won't read it correctly
 

octobclrnts

Senior Member
Apr 26, 2009
67
13
Pittsburgh
I was wrong. I had that same modified build.prop on my phone before I wiped, I just hadn't noticed that the firmware version number had changed. Perhaps I didn't modify the right valued to also get the model number to change.
 

JAguirre1231

Senior Member
I have decompiled Maps.apk using dedexer 1.7. Here is all the stuff it gave me. I used dexdump last night and it gave me something similar. Im using notepad++ to search through all the files for keywords but I cant find anything interesting. Maybe you can...

http://rapidshare.com/files/305162283/Maps.apk-dedexed.rar.html

Cool I'll go through it in a min. and see if I can find anything interesting.

edit: opened it up and there is googlenav stuff com/google
There is also an android folder too. I'm going to look there first
As I'm going through these I found that Google has these things filled with static locations. Haven't found any that seem to lock it down, but that's not to say there aren't any
 
Last edited:

Top Liked Posts

Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone