Tuesday, July 26, 2011

CyanogenMod cannot download google market apps



Platform: CyanogenMod 7 (Android)


Error: Trying to install market apps, it starts downloading for a second or so and then stops. It happen on large app (more than 5Mb) files.


Reason :
To download an app from google market, android required a cache.This cache folder is located in /cache partition (it's called /cache/download).
But this partition (with a size of about 40Mb on HTC Desire) contains also others caches, notably the dalvik-cache(used to accelerate the boot of android) which has a size of...35Mb !
That why "big" apps can't be downloaded using the market but small ones can be downloaded without any issues.
This also explain the "not enough space" message in logs which does not refer to the internal or external memory but to the space of /cache/download folder.
Concerning S2E, it's only works if your sdcard is mounted under /sd-ext. For 
users mounted on /sdcard, another solution is to create a symlink of /cache/download which point to a folder in your sdcard.



Solution
To clarify for anyone who isn't quite sure how to do this, enter these commands in the terminal emulator:
mkdir /mnt/sdcard/market-download-cache
su
cd /cache
mv download download.bak
ln -s /mnt/sdcard/market-download-cache download
ls -ahl .

the last step (ls -ahl .) is intended to verify that /cache/download points to /mnt/sdcard/market-download-cache; there should be an entry that should look somewhat like "lrwxrwxrwx 1 root root 33 Apr 14 03:35 download -> /mnt/sdcard/market-download-cache".