The App Space Limit (and What To Do About It) | webOS Nation

The App Space Limit (and What To Do About It)

by Derek Kessler Wed, 07 Oct 2009 5:30 pm EDT

Sorry, Out Of Memory

With more than 100 apps now available for download from the webOS App Catalog and some 200 odd apps from the PreCentral Homebrew Gallery, more and more Pre users are running into a frustrating error: Sorry, Not Enough Memory. “What do you mean, not enough memory?” you promptly asked the phone. “You have 8 GB of storage, I have 50 apps. This doesn't add up.”

You're right, it doesn't add up. There has been a lot of confusion about how this is limited and we’re going to do our best to explain the situation. First off, there is no numerical limit on how many apps you can install, so don’t fret that you’ve hit some magical barrier. The problem comes with how Palm decided to protect applications from copying by end users, and that was to put them in a hidden partition that doesn’t show when you mount the Pre as a USB drive on your computer. The problem with partitions is that they are a set size and difficult to resize, which means that once Palm set the size of the partitions on the Pre, those were the partitions we were stuck with.

We'll take a closer look at the limit and also explain what needs to be done to fix it (hint: you can try to hack it, but what we need is a fix from Palm)

There are three partitions with which you should concern yourself. There is / (root), where webOS itself and Palm’s applications are stored, there’s /media, which is your 6.7 GB of USB-mounted storage space, and there’s /var, where applications are stored. This last partition has an allotment of 253 MB assigned, which can get awfully crowded when you throw in a few dozen apps. Palm has set up webOS in such a way that the magical limit is 90%, where attempting to install an application that crosses that threshold will result in the not enough memory alert. Once you hit that limit, the only way to install a new app is to delete something that you've already downloaded. In the days of 60 MB of storage space on a Treo 755p this was a fact of life, but on a state-of-the-art smartphone with an 8 GB memory chip it's simply unacceptable.

There are a few solutions, but only one of them is pretty. But we’ll look at the not-so-pretty first. The most obvious answer would be to install applications onto the /media partition, since that is the biggest partition on the phone, and you’ll have to put just over 6 GB of apps into it to trigger the alert. Developers, after reading this, are more than likely less than happy with this solution, as it exposes their apps to the prying eyes of competitors and the fickle mouse-clicks of users. A middle ground solution along these lines would be to store the space-hogging parts of the app, such as libraries and image files, on /media while keeping the meat of the app in /var.

The second approach would be more user-initiated, in that the user takes the reigns of the partitions and resized them her/himself. Be forewarned, this is not for the faint of heart, so instead of frightening you with a whole bunch of Linux code (it scares me too), I’m going to point you over to diomark’s excellent tutorial on how to resize the partitions. Here’s our warning: read the instructions first, and if there’s anything you don’t understand, just close the page and walk away.

A third approach would be to simply move the installed apps yourself, as rwhitby explains. Unfortunately, bugs may result from this as well. Lastly, the webOS Internals crew has worked out a method that creates a hidden directory within the /media partition and redirects /var to this new directory. Not only does it save /var from getting over-crowded, but it also allows you to utilize the much larger /media space for app installations. Unfortunately, while this will move your App Catalog apps over to the new directory when it is created, the App Catalog will continue to install apps into /var. Again, like the partition resizing mentioned above, this is not for the technically-challenged, but webOS Internals has some fairly in-depth instructions on how to get it all done.

None of these solutions are elegant or easy as we expect webOS to be. The folks over at webOS Internals are working on building a virtual file system that will allow you to create a new /var “virtual partition” as large as you want, but its still a work in progress.

The best solution will have to come from Palm, and that’s to set up webOS and the file system in such a way that the partitions are not static and can be dynamically resized to accommodate more or fewer apps. There’s little reason for the partition where the OS is installed to have gobs of extra space, and there’s no reason that we shouldn’t be able to use all other available space for apps and/or media. The only reason we have is that we can’t.

So a note to Palm: if you want webOS to be truly successful, you have to continue your embrace of third-party app developers. But they, and your users, are going to become increasingly frustrated so long as they are limited in how many apps they can install. More importantly to the developers, if the user has no more space, they won’t be downloading those revenue-generating paid apps that just came out.

In short, this app space limit was a 'small complain' at first, but now it's a big deal. It's pretty much unacceptable. Getting this fixed should be a priority; it is more important than beefing up the calendar or improving battery life or re-hacking iTunes sync. Developers and users are what will make or break webOS, and if they are saddled with this silly limitation for much longer, you’re going to have a revolt on your hands.