Many people have complained about the "Insufficient storage" error message often encountered on reinstalling or upgrading skype on android devices. Here is how to solve it without needing to do a permanent root of your phone. I'm posting this to put in one place disparate bits of advice I got from the net. Nothing here is original, thanks to the clever originators of the methods mentioned here (links provided to original sources).
The symptom of the bug is that you get an error message “Insufficient storage available”, even if there is plenty of memory left. The source of the problem is that Skype has a bug and on removal, leaves behind a hidden folder on the phone in the location
which is owned by system and so is invisible to the user of the phone unless they have root access.
I learned about this from this URL:
How to Fix Skype Installation Error on Android
I did not want to have permanent root access on my phone, since that would allow me to really screw it up and potentially prevent future upgrades OTA from Verizon. So I decided to try and remove the offending folder by a temporary root method. Here's what I did. It takes no more than 5 minutes.
Getting to temporary root
Although there are apps like z4root and one-click-superuser, I did not want to use them. I used the one-click method before and it broke my phone, requiring me to do a hard reset. z4root has a temporary root option, but it also appears to include spyware. Not just that it is detected as malware, for getting root access, but also because it apparently sends data to a URL. I don't know if this is true, but anyway, I learned this from Microsoft Security Essentials at this URL:
Encyclopedia entry: Exploit:Unix/Lotoor - Learn more about malware - Microsoft Malware Protection Center
So I accessed root manually; it's only a few simple commands of adb shell and unix. I have a Samsung Fascinate. I already had got the Samsung drivers to connect to my Samsung Fascinate from my XP machine.
I also had the adb.exe program from downloading the SuperOneClick program as well as the psneuter
program which is the actual exploit that gets you root on the Android machine. Get adb.exe and psneuter (see how below) and put them in the same folder so you can easily access them and transfer psneuter to the phone. You don't need to go through the whole business of installing the Android SDK. The adb.exe program runs on your windows machine in the (DOS) command prompt. So you need to open that in the directory where you put the adb.exe and psneuter files.
The version of SuperOneClick I had was downloaded from here:
Super One click Root How To guide. - xda-developers
On the phone, I went to Settings | Applications | Development and enabled USB debugging.
I connected the phone to my PC and enabled USB storage at the pop-up on the phone. Then my PC could see the phone’s hard drive.
I then went to the folder where I had adb and the other programs from SuperOneClick and followed these instructions:
First, here are the commands you type into a Command Prompt window on your PC that run the psneuter exploit and gain a root shell. These commands are easy to understand if you know a bit of linux. They connect your PC to the phone, push a program into a hidden (system) directory on the phone, and then you run Android (really linux) on the phone through the adb program. I got these from this URL:
How to manually root almost any Android device
- adb devices
- adb push psneuter /data/local/tmp
- adb shell
- $ cd /data/local/tmp
- $ chmod 777 psneuter
- $ ./psneuter
At this point, the exploit will run and close the shell. You will need to run these commands to restart the ADB server.
- adb kill-server
- adb devices
Now comes the moment of truth. Use the
command to open a shell. If you see a "#" sign, you have root access.
Fixing the skype bug
Once I had temporary root access (only root for this particular session), I issued the following commands to change to the hidden directory, which I could now access being root, and recursively deleted the bad folder that skype had previously left on the phone, and which was preventing installation/upgrading:
- # cd /data/data
- # pwd
- /data/data (to verify that I was there)
- rm –r com.skype.raider
- exit (to get out of root shell)
I then disconnected and rebooted the phone, and was able to install skype from the market. I checked also that when I later reconnected to the phone, I was not in root mode.