Its indeed quite possible that either the two directories residing on the filesystem, /data/local/download
or /cache/download
is probably full of temporary files and is not deleted which contributes to the symptoms of the app not installing after 100% downloaded.
Some ROMs do have this facility or feature in place, called run-parts
, which is invoked by the busybox
which does this clean up on boot to clear out the temporary downloaded files saved in the specified directories. Again, this is dependant on the ROM.
Maybe that's what you should try doing, reboot to force the system to clean up the directories and try again upon bootup?
If that fails, then it sounds likely that the /cache
partition is very small not to hold the downloaded files. The trick employed by ROMs is this, the /cache/download
is either sym-linked to /data
on the /data
partition. The other trick is that /data/local/download
is re-binded to the /cache/download
directory. (see this script below to see what the second trick is about)
#!/system/bin/sh
#
# bind mount /data/local/download to /cache/download if cache
# partition is too small
#
CACHESIZE=$(df /cache | tail -n1 | tr -s ' ' | cut -d ' ' -f2 | tr -d [:alpha:])
DATAONLY=$(getprop dalvik.vm.dexopt-data-only)
if [ $DATAONLY -eq 1 ]
then
NEEDED=60000
else
NEEDED=105000
fi
if [ $CACHESIZE -lt $NEEDED ]
then
/system/xbin/busybox mount -o bind /data/local/download /cache/download
fi
rm /cache/download/downloadfile*.apk >/dev/null 2>&1
exit 0
Why /cache
and /data/local/download
? it is found in the init.rc script in the ramdisk of the ROM in question which has the following environment variables that tells the Google Play store, where to save the downloaded apps.
export ANDROID_CACHE /cache
export DOWNLOAD_CACHE /cache/download
The only thing I would suggest is to use File Explorer (just as I type this I realised yeah, root... but I digress), and clean out the directory manually for a start.