What can I do to save my Samsung Galaxy from a bootloop? I have a relatively old phone that I would like to make some use of again. It's the GT-I9000, and it's currently stuck in a bootloop.

I'd like to install CyanogenMod on it. I've already flashed it with the CWM, however, I'm experiencing problems when trying to finally put the actual mod on the internal sd card.

First off, when I execute:
adb push cm.zip /sdcard, ADB complains that /sdcard is a directory... Of course it is!

So, I've tried to be a bit more specific... adb push cm.zip /sdcard/Videos - I didn't expect any significant change, but there was. It now complained about the permission being denied.

I overcame this on Linux by becoming root, and executed the command again...

Then, it complained about not having enough space...

I used the CWM recovery to navigate internal storage, and noticed that it really was crammed with all my data.

In order to get more space, I tried factory resetting, data wiping, and partitioning. The first two finished successfully, but didn't delete any of my files, and CWM recovery couldn't partition the thing.

After that, I noticed that ADB can provide a shell connection, so I tried adb shell.

On both Windows and Linux, this is the error:

link_image[1963]:  2950 could not load needed library 'libm.so' for '/system/bin/sh' (reserve_mem_region[832]: OOPS:  2950      prelinked library 'libm.so' mapped at 0x40008000, not at 0xafc00000)CANNOT LINK EXECUTABLE


So I suspect it has something to do with my Android phone, not my computers.

And the best thing is: my phone cannot read external cards for some reason. What a great combination!

How can I wipe internal storage without a shell connection?
First, if your source is a file, adb push requires the target to be a file as well. Hence, the correct syntax would be:

adb push cm.zip /sdcard/cm.zip


Second, a factory-reset usually doesn't touch the SDCard (internal or external), unless there's an option offered to do so and you checked that.

As for the link error: That looks like something on the device is screwed up. You're probably in recovery mode when trying this, and (just a guess, but a good one) the partition holding the required library file was not mounted.

I don't know what options are available for your device specifically, but there are generally several ways to flash a device, as e.g.:


update.zip via recovery (which is what you're just trying)
side-loading via adb sideload
using fastboot
using a device (or manufacturer) specific flash tool, in your case kies, odin, or heimdall


I'd suggest the last mentioned method: you could e.g. first flash the latest official ROM via Odin/Heimdall, so it is able to boot correctly again. After that, you would have a working device again, and could cleanup your SDCard to use the update.zip method for flashing your CM image.

Another way to free some space: If you know some of the "big filenames", you could try using adb push to overwrite them with "small ones". Say, if there's a video file with 500 MB size in /sdcard/Videos/bigmovie.mp4, you could take an empty text file empty.txt ( 0 Bytes ) and push it over the video:

adb push empty.txt /sdcard/Videos/bigmovie.mp4


This should set enough space free to finally push your cm.zip to the card.