thanks to Brut.all (http://forum.xda-developers.com/showthread.php?t=630887)
- worldwide navigation using Google Maps Directions
- map tiles caching on SD card
- force-enable MT. If you’re on Eclair or some custom Donut and don’t have multitouch zooming, then maybe this will enable it.
- force-enable Buzz feature
- fix for map shift issue in China
- option to hide zoom buttons
- installable on non-rooted devices
- could be installed beside original app
- canadiancow for starting a brainstorm; an idea to use maps directions as backend for navigation; great Nav Launcher app; helping and support
- TAPP for enabling “Navigate” button; first version for non-rooters
- acamar for his research on map shift issue in China
- many, many people for testing it, complaining ;-), helping others, etc.
- Google for making this great app and service and for not sending C&D to me so far 😉
This mod consists of many independent changes and some of them may be good or bad for some people. Unfortunately not all changes could be configured at runtime, so we need several apk files to let people choose what they want.
There are 3 packs of changes:
- -brut – it’s a BrutMod itself: international navi, map caching, etc. All of these changes are configurable at runtime.
- -renamed – Android package name was changed from original com.google.android.apps.maps to brut.googlemaps . See “Package name changing” below if you don’t know, what this means.
- -tagged – all icons in the launcher, widgets, etc. were tagged with red “BRUT” sign, all icon names were suffixed with “[brut]”. It’s to distinguish modded and original GM if you have installed both.
Then we could create several variants of this mod with different combinations of changes, but fortunately only 3 of them actually make sense: -brut, -brut-renamed and -brut-renamed-tagged.
Note: I know this may be confusing for some people, who get used to brut.googlemaps as normal package name for this mod and com.google.android.apps.maps as “stockified” modification of it. You should take into account that starting point is original GM with original package name, so com.google.android.apps.maps is actually “normal” and brut.googlemaps is modded/renamed one.
For -renamed variants: just download & install. For others: see section below.
Package name changing:
Generally it means that modded app is identified by Android OS as totally different app, not connected to Google Maps at all. There are several consequences:
- Android forbids to install same app twice. If you want to install modded app, you have to uninstall original one first. -renamed variant is detected as different app, so you could install it normally and then you will have installed both original and modded app.
- It’s much worse if you want to replace system app – and Google Maps is a system app on many devices. You can’t uninstall system apps just like that, cause they’re write-protected. You need root and probably some hacking, so if you had Google Maps preinstalled on your device and don’t have a root or don’t want to hack, then use one of -renamed variants.
- Some apps call GM by name and if you have -renamed variant, then they can’t find modded GM, cause it’s detected as different app. People have such problems with Car Dock, Street View and few others.
Maps cache – formats:
BrutMod natively supports two formats for stored tiles: Andnav format and BrutMod old, which is kept for backward compatibility and will be eventually removed. You could also set custom path to stored tiles if you want to use different format.
If you have cached tiles from other maps/navigation app and they’re stored in “one tile, one file” format, then you should be able to use them with BrutMod. You have to choose custom database format and set path to tiles. Path can contain variables – currently supported are:
- (Z) – zoom level
- (Y) – Y id of a tile
- (X) – X id of a tile
So for example custom path for AndNav format would be: (Z)/(X)/(Y).png.andnav . If you would set something like: (Z)-(X)-(Y).png , then all tiles would be stored in one directory. Be cautions when setting a path: it’s very simple and not very smart algorithm – if you would do something wrong, for example don’t close bracket, then BrutMod will read/write everything from/to special “ERR” file.
Maps cache – zip support:
Having thousands of files isn’t good for a filesystem. Usually they use more of space than they should – sometimes A LOT more. BrutMod supports tiles zipped into one file and format is identical as for normal files.
For example: we use AndNav format and we have /sdcard/brut.googlemaps/tiles/map-en_US-andnav directory. Inside of it we have “13” and “14” subdirectories. We could zip these subdirs into a zip file, so they will be in the root (right after opening a zip file you will see “13” and “14” dirs) and place it to: /sdcard/brut.googlemaps/tiles/map-en_US-andnav.zip . Then you could remove original “13” and “14” dirs and tiles will be read from a zip file.
If you have “Save map to cache” option enabled, then you could compact all saved tiles from time to time. Just open zip file and add all loose tiles to it. Then remove tiles. Maybe someday I will add automatic compactor to BrutMod.
Maps cache – downloading maps:
There are several downloaders available, I recommend Mobile Atlas Creator. Open it, select some area and zoom levels, click “Add selection” button, choose “AndNav atlas format”, click “Create atlas” and wait. Then open directory with atlases, open your new atlas (“Unnamed atlas_<date>”), open “Google Maps” dir (or something else, if you didn’t download Google’s map) and you should see directories “0” – “19” – depending on which zoom levels you have chosen. Copy these directories to e.g. /sdcard/brut.googlemaps/tiles/map-en_US-andnav/ dir or zip them all and copy to /sdcard/brut.googlemaps/tiles/map-en_US-andnav.zip . If you have zip file already, then you could add new files to archive or do a unzip, copy, zip combo.
And one more advice related to maps cache. If you have any problems with creating custom tile path, zipping or pushing predownloaded tiles, then enable “Debug mode” in BrutMod menu and look into logcat. There you will see where BrutMod looks for files and why it can’t find them.
Q: Phone reboots when I try to reinstall maps.
A: Uninstall it and then install. It’s Android issue, may occur even when updating original Maps from Market.
Q: When navigating directions are in English, but I set different locale.
A: They are forced to “en_US” to guess turn symbols from them. You could disable this feature in BrutMod menu, but you will lost turn symbols.
Q: Feature X doesn’t work!
A: Did you enabled it in Menu -> More -> Brut Mod?
Q: Could you add feature X?
A: Just ask in this thread, but you should take into account that I’m not an author of this app, but a modder. I work mainly on features, that Google probably won’t add for some reasons: licensing concerns (int navi), non-standard ROM support (MT), “whole world is online” assumption (maps caching), etc. GM is rapidly developing, so if you have e.g. some UI suggestions, you should ask Google about them. I could work on some of these, but they have low priority.
Q: Car Dock, Google Voice Search or other app always use original Google Maps – it doesn’t ask me about your mod. What can I do?
A: See “Package name changing” above.
Q: Multitouch still doesn’t work even if I enabled it in BrutMod menu.
A: As description says, it may work, but may not. There are plenty of custom roms, each has different bits and sometimes GM disables MT even if it could use it normally. My mod could force it to enable, but it won’t add MT support.
Q: What is “Unlock hidden features” option?
A: There are features that are hidden for some reason: they aren’t finished yet, are for debugging, etc. If feature does not give you something really useful, but is for curiosity and maybe some fun, it will be controllable through this option. For now there are:
- navi: menu->Switch to Walking/Driving – seems working fine, don’t know, why they are hidden.
- navi: menu->Report a Problem – doesn’t work for me, but it is location related, so maybe works for someone else. When I was migrating to 4.2.0, I saw many new resources related to this feature. Will be quite good feature, when it will be finally enabled.
- navi menu->Settings – for now it’s nearly empty, has one option related to above “report a problem” feature
- navi: Enable/Disable mock location – quite funny and really, really useful for me. There would be no voice fix, if I would not find it 🙂
Q: How does navigation hack work? Could you hack Google Voice and other services to work outside of USA as well?
A: No, I can’t. Generally it’s not possible to bypass security of most server-side services, because their owners have full control over a situation. GMM navigation is an exception of this rule, cause of Google Directions. GD is some kind of navigation service, only limited. It uses exactly same data as navi and uses it in similar way. So why Google has created two navigation services: one full and one limited if both are for free? Because of licenses which G has signed with map providers – Google can’t use map data for “real-time, turn-by-turn navigation”, but they can for just “directions”. This is why GD is available worldwide, but navi in supported places only.
I have modded GMM, so each time it wants to ask servers about navigation route from A to B, it actually asks about Google Directions between these points. GMM gets GD response which is missing a lot of data required by navigation, e.g. turn symbols, voice, etc. Then I try to somehow guess and add these missing things, so response will be as much as possible similar to real navi response.
Pretty smart, huh? Thanks @canadiancow for this wonderful idea 🙂
Q: You didn’t answer my question/help request.
A: Usually I totally ignore people, who ignore me. I spend time to make all necessary info, instructions and answers easily findable – in first post. If you ask about something, that was answered there, I will probably ignore you. If you are lucky, someone else will answer you.
- navi: map caching
- navi: routes caching
- navi: “continue on turn left on” issue
- navi: turn symbols without forcing locale
- navi: automatically use normal navi when available
- navi: guess ramp direction
- MT on custom Donuts using backported Eclair bits.
- MT on stock Donuts through Luke Hutchinson’s lib
Limits (issues that we know of, but are impossible or very hard to fix, so they aren’t on TODO):
- navi: too long directions in top bar
- updated GM to version 220.127.116.1186
- from now GM is released in 3 variants: -brut, -brut-renamed and -brut-renamed-tagged
- added an option to choose map cache format – AndNav is a default, but old one is also supported
- added support for zipped map cache
- app directory is always /sdcard/brut.googlemaps – it does not depend on package name
- readded es_MX language
- removed Vector map test
- fixed some ContextNotSet warnings
- fixed “Data exceeds UNCOMPRESS_DATA_MAX” issue
- removed es_MX language – es is used instead (caused by above issue)
- does not work for many ROMs – “Data exceeds UNCOMPRESS_DATA_MAX” issue
- updated GM to version 18.104.22.16814
- updated GM to version 22.214.171.12405
- added vector maps test
- added BrutMod menu to navigation app
- tagged gohome icon, Latitude widget and shortcut
- fixed ContextNotSet issue
- navi: fixed voice feature!
- added “Unlock hidden features” option (see Q/A section)
- added “I’m in USA” option
- added fix for map shift issue in China – many thanks to acamar 🙂
- added option to force enable Buzz feature
- TurnUtil: Added “* turns slightly *” support
- Google Maps updated to 126.96.36.19910
- unlocked DestinationActivity when int navi is enabled
- fixed “disabled MT” bug
- added simple map caching feature! For now it’s some kind of demo (but usable), will be more featureful soon.
- readded multitouch force-enable feature
- reworked Brut Mod screen: added some credits, link to XDA, categorized preferences
- navi: added turn symbol for merges
- fixed force locale bug
- fixed some exceptions right after navigation start
- added option to force locale in navi requests to en_US, so turn symbols will work
- added option to hide zoom buttons
- international navigation is now enabled by default
- navi: fixed turn symbols feature – I’ve screwed it up right before brut7 release
- navi: added “street names” in top bar
- navi: added turn symbols (for now you must set “en” locale to use it)
- added possibility to use hacked or normal navigation – you can choose this from menu (and int navi is disabled by default – if you’re updating and want to use it, then remember to enable it)
- reverted MT mods for now
- based on GM4.1.1
- seems more bug free to me
- mod version included in app versionName (4.0.0-brut6)
- added “[brut]” postfix to Add -> Shortcuts -> Directions & Navigation
- fixed navi shortcut bug
- fixed directions to contact bug
Minor update, but great from technical point of view:
- repackaged all resources
- changed app name and icon to distinguish it from original maps
- changed package name to brut.googlemaps
- now MT depends on existence of MT framework, not on Android version, so it will be enabled for 2.0 and 1.6 with backported MT bits, but app will work on stock 1.6 too (without MT)