# How to solve: “Failed to push selection: Out of memory”

I Create an article in Stack overflow. But as I found this site, I decide to ask the same question here, because I still need your help.

I have made the following steps:

1. Launch Eclipse
2. Go To: Window -> Open Perspective -> Other ...
3. Select DDMS from the opened dialog
4. Select "File explorer" tab.
5. Press "Push a file onto the device" and select library which I wish to push.

Failed to push selection: Read-only file system

6. Minimize all opened windows and open Command Line
7. Write: cd C:\android\android-sdk-windows\platform-tools enter
8. Write: abd remount enter

You will see remount successful

9. Maximize Eclipse and try step 5.

Failed to push selection: Out of memory

1) When I write ADB SHELL MOUNT:

rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
none /acct cgroup rw,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 rw 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0


2 ) Shel Prompt starts with: #

-
Development questions are considered off-topic here according to our FAQ. –  newuser May 19 '11 at 13:49
I read the word "Eclipse" so I voted this to close, but now that I read the rest of the post and the linked post, I'm starting to think that this is a good example of questions you get while developing an application that are not really development question. I can't retract my close vote, but I can warn other people not to cast close vote so fast. –  Lie Ryan May 19 '11 at 14:32
I agree with @Lie that this is a grey area. I say this should stay open for now. –  Al E. May 19 '11 at 14:42
@ViTo Brothers Apoyan: I have two questions 1) What output do you have when you do adb shell mount (this will give you all of the filesystems mounted in the device and their mount options)? 2) when you do adb shell, does the shell prompt starts with # (which indicates you're root) or \$ (which indicates you're not root)? –  Lie Ryan May 19 '11 at 14:47
also you tagged this question with android-x86, android-x86 != android emulator running on x86 host machine. Are you actually using android-x86 or just the regular emulator? –  Lie Ryan May 19 '11 at 14:51

Launch the emulator from the command line so that you can specify a /system partition size using the -partition-size <MB> option. For example, I use this to launch an emulator running Android 1.6 with a /system partition of 512 MB:

emulator -avd Donut -partition-size 512


...where "Donut" is whatever you named your AVD (you can check in Eclipse's AVD manager if you need to). The emulator binary should be in your tools/ directory within your SDK install, which for you appears to be C:\android\android-sdk-windows\tools, so be sure you cd into that directory first (or add it to your system's %Path%).

Eclipse may not pick up the emulator right away, or it may recognize it and then drop the connection. If either of those happens, click the view menu on the Devices tab (the little arrow next to the minimize button) and select "Reset adb" to get the connection back.

Once it shows up in your devices, do what you were trying to do earlier. Run adb remount to get the /system partition in read-write mode, then use Eclipse to push the file wherever you want. I tested with a couple of random files a minute ago and was able to push them to /system/xbin without any trouble.

For reference, here's the partition size and use of /system on my Donut emulator when I specify a 512 MB partition:

> adb shell df
...
/system: 508416K total, 61332K used, 447084K available (block size 4096)
...


But here's how it looks if I launch without specifying a size:

> adb shell df
...
/system: 65536K total, 61204K used, 4332K available (block size 4096)
...


Additionally, you can set command line options in your application's run configuration via Eclipse if you want to. Go into your Java perspective, then select Run->Run Configurations from the menu bar. Select your application in the left pane, and then pick the "Target" tab. At the bottom is a text box labeled "Additional Emulator Command Line Options", and you can add -partition-size <MBs> to that text box so that the emulator launched when you run your application will have a larger /system partition.

Note: You may have to add also -no-snapstorage or other options, to disable loading the existing snaphot, to the command line. It did not work without it for me.

-
Thank you very match !!! You solve my problem !!! thanks a lot !!!!!!! –  ViTo Brothers Apoyan May 20 '11 at 8:09

The easy way: restart your phone in Recovery mode, than mount System. Now you can push your file without a problem.

-
I assume you've missed the line /dev/block/mtdblock0 /system yaffs2 rw 0 0 in the question? So what should change when you mount it from recovery? Full is full, you don't gain additional space on a full file system by mounting it "from elsewhere". –  Izzy Nov 15 '13 at 11:28

How to solve: “Failed to push selection: Out of memory”

While creating new android virtual device(AVD).. on SD CARD tab type some value(100) in MB.

Really,It works for me!!

-
This is not correct. Creating a virtual SD card will not help you push files to the /system partition as the question asks. They are completely unrelated storage areas. –  eldarerathis Mar 10 '12 at 16:39