Someone posted this on droid-life, it worked for me
Via adb:
adb kill-server
adb root
adb remount
adb shell rm /system/app/Maps.apk (then, back out of adb shell)
adb uninstall com.google.android.apps.maps
reboot
What exactly does back out of adb shell mean?
I had the same idea, but did not want to scroll through that giant wall of XML and try to find those few lines. So I copied everything to a text document with a search/find capability so I knew where to begin looking to edit the xml.Thanks! I got maps to install from the market. I deleted the apk file and followed Skulls directions.
FWIW: I just used root explorer and deleted the text. Long press on the file and select Open in Text Editor. I then proceeded to delete everything skull posted. Saved and Exited by using the Menu Key. The one next to the Home key on your phone. I then rebooted and downloaded.
If you attempt to do it this way I take no responsibility if you screw up.
The only thing I'm bummed about now is that I don't have the uber cool maps icon that came with Nextheme.
I just want to say a big thank you to all of you that are smart enough to find these work-a-rounds!! I truly applaud you guys!
Ok, this is a BARE BONES explanation. I am going to assume a LOT of stuff. Like mainly you know how to work ADB, WordPad and edit XML.
launch a command prompt
adb shell cp /data/system/packages.xml /data/system/packages.xml.org
adb pull /data/system/packages.xml
wordpad packages.xml
FIND THE FOLLOWING:
<shared-user name="com.google.android.apps.maps" userId="10028">
<sigs count="1">
<cert index="27" />
</sigs>
<perms>
<item name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<item name="android.permission.USE_CREDENTIALS" />
<item name="android.permission.GET_TASKS" />
<item name="android.permission.WRITE_EXTERNAL_STORAGE" />
<item name="android.permission.ACCESS_WIFI_STATE" />
<item name="android.permission.ACCESS_COARSE_LOCATION" />
<item name="android.permission.CALL_PHONE" />
<item name="android.permission.READ_CONTACTS" />
<item name="android.permission.GET_ACCOUNTS" />
<item name="android.permission.WRITE_CONTACTS" />
<item name="com.google.android.apps.maps.permission.PUSH_MESSAGE" />
<item name="com.google.android.googleapps.permission.GOOGLE_AUTH" />
<item name="android.permission.READ_PHONE_STATE" />
<item name="android.permission.DISABLE_KEYGUARD" />
<item name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<item name="com.google.android.googleapps.permission.GOOGLE_AUTH.local" />
<item name="android.permission.INTERNET" />
<item name="android.permission.ACCESS_FINE_LOCATION" />
<item name="android.permission.MANAGE_ACCOUNTS" />
<item name="android.permission.VIBRATE" />
<item name="android.permission.WAKE_LOCK" />
<item name="android.permission.ACCESS_NETWORK_STATE" />
<item name="android.permission.RECORD_AUDIO" />
</perms>
</shared-user>
DELETE THAT.
close word pad and say yes to save file
adb push packages.xml /data/system/packages.xml
adb shell chmod 664 /data/system/packages.xml
adb reboot
Since I am at work I can't tech support every question. Which means the rescue squad might need to lend a hand (sorry I did that to you guys )
SIDE NOTE:
IF wordpad doesn't work, launch it manually and go find the file at the location your command prompt is at.
IF this fails. You have a backup if you did the adb shell cp command. To restore:
adb shell cp /data/system/packages.xml.org /data/system/packages.xml
adb shell chmod 664 /data/system/packages.xml
adb reboot
Ok, this is a BARE BONES explanation. I am going to assume a LOT of stuff. Like mainly you know how to work ADB, WordPad and edit XML.
launch a command prompt
adb shell cp /data/system/packages.xml /data/system/packages.xml.org
adb pull /data/system/packages.xml
wordpad packages.xml
FIND THE FOLLOWING:
<shared-user name="com.google.android.apps.maps" userId="10028">
<sigs count="1">
<cert index="27" />
</sigs>
<perms>
<item name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<item name="android.permission.USE_CREDENTIALS" />
<item name="android.permission.GET_TASKS" />
<item name="android.permission.WRITE_EXTERNAL_STORAGE" />
<item name="android.permission.ACCESS_WIFI_STATE" />
<item name="android.permission.ACCESS_COARSE_LOCATION" />
<item name="android.permission.CALL_PHONE" />
<item name="android.permission.READ_CONTACTS" />
<item name="android.permission.GET_ACCOUNTS" />
<item name="android.permission.WRITE_CONTACTS" />
<item name="com.google.android.apps.maps.permission.PUSH_MESSAGE" />
<item name="com.google.android.googleapps.permission.GOOGLE_AUTH" />
<item name="android.permission.READ_PHONE_STATE" />
<item name="android.permission.DISABLE_KEYGUARD" />
<item name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<item name="com.google.android.googleapps.permission.GOOGLE_AUTH.local" />
<item name="android.permission.INTERNET" />
<item name="android.permission.ACCESS_FINE_LOCATION" />
<item name="android.permission.MANAGE_ACCOUNTS" />
<item name="android.permission.VIBRATE" />
<item name="android.permission.WAKE_LOCK" />
<item name="android.permission.ACCESS_NETWORK_STATE" />
<item name="android.permission.RECORD_AUDIO" />
</perms>
</shared-user>
DELETE THAT.
close word pad and say yes to save file
adb push packages.xml /data/system/packages.xml
adb shell chmod 664 /data/system/packages.xml
adb reboot
Since I am at work I can't tech support every question. Which means the rescue squad might need to lend a hand (sorry I did that to you guys )
SIDE NOTE:
IF wordpad doesn't work, launch it manually and go find the file at the location your command prompt is at.
IF this fails. You have a backup if you did the adb shell cp command. To restore:
adb shell cp /data/system/packages.xml.org /data/system/packages.xml
adb shell chmod 664 /data/system/packages.xml
adb reboot
I thought about messing with that.xml file to try to get it working, but now I'm just going to wait it out for an easier, more efficient solution after looking at all of these errors
For a moment, it didn't work for me, either. However, when I deleted the text information from the packages.xml file the first time, I tried updating from the Market. That didn't work, so on a hunch, I went back to my packages.xml file, and sure enough, somehow the permissions-related text that I had removed moments earlier was back. I downloaded the Maps 4.3.0 standalone apk (link below), and it installed without any problems. Thanks Skull.
Also, just to make sure that it works for future updates, I saw that the Market still listed Google Maps 4.3.0 as "FREE" (aka, "uninstalled"), so I tried re-installing from the Market and it installed/overwrote the current maps program without any permissions problems.
I did everything from Root Explorer too. Didn't have to connect anything to the computer or move any files around. Root Explorer negated the need for the terminal, included the ability to long-press the packages.xml file and "Open with Text Editor" and edit it, automatically backed up the file upon any changes, and made changing the read-only and read-write permissions for the system super-uber easy. I swear Root Explorer is worth its weight in technological gold. Haven't really needed a terminal app for anything much after installing it.
But I digress... Skull's info should work perfectly for FRF57-based Froyo 2.2 users, including ROMs from Pete (BB ROMS) and BlackDroidMod (Ultimate Droid ROMS) and most other similarly based systems.
My key to success was (1) deleting the Maps.apk from the /system/app folder, (2) deleting the cache file located in data/dalvik-cache/system@[email protected]@classes.dex, (3) editing the permissions.xml file with Root Explorer (see steps above), (4) rebooting, (5) installing the standalone 4.3.0 Maps.apk from here: http://bit.ly/dqEdLr, (6) then going back into the Market and "installing" again (this step is just for those that don't like to see "FREE" next to the application and would like to take advantage of the automatic updating feature in Froyo).
It may sound like pig latin, but it should work without a hitch.