2015-05-09, 13:17
Today I've tried to install Kodi 14.2 on my 'Lenovo IdeaPad A10' Android laptop, without wasting too much of its internal flash storage.
But due to a bug in Kodi's use of cache storage, this has proven impossible.
Background:
This laptop has a small SSD, split into partitions of which two are accessible.
1 GiB is used for the 'Internal Storage' (The place for all system data and default place for installed apps)
12 GiB is used for the 'Nand Flash' area, also linked as "/sdcard" (The preferred place for moving apps to)
I also have a 64GB SDXC card linked as "/mnt/external_sd", but this is not involved in my current problem.
Btw: I know that many tablets have a similar storage scheme (I have one such myself too)
From scratch the 1GB area is more than half consumed by system-bundled apps and their updates+data.
And almost every user-added app will also consume some space of this area. (Even when the app itself is moved elsewhere.)
Before the Kodi installation I had a grand total of 255 MB free space in that area, so additional losses must be minimized.
But just installation of Kodi consumes 60 MB of this area, and first run consumes an additional 78 MB (and that is the main problem).
My system is rooted (using KingoRoot) and I have successfully used the "System App Remover" from Google Play to move the installed Kodi app from the 1 GB 'internal' area to the 12 GB area, so the space for the app itself is no longer a problem. But its data storage is a major problem.
I used the method of creating the file "/sdcard/xbmc_env.properties" with content "xbmc.data=/sdcard/kodi_data", and also created that "kodi_data" folder in "/sdcard".
After this, and cleaning all old storage of Kodi, I've restarted it and seen that it does fill the "kodi_data" folder with the expected subfolder structure.
Surprisingly though, the content of that folder structure is VERY small compared to what I had expected. (Just 2.54 MB real data, consuming 4.82 MB of storage sectors)
However, Kodi still creates tons of stuff in the internal 1GB area, to a total size of 78 MB (same as in sessions before kodi_data use).
And this is truly a bug, because this storage is of 'Cache' type, as seen by the Android system.
But this is NOT cache type storage. If it were then clearing it between sessions would be harmless.
Instead the clearing of this cache area will reduce Kodi to uninitialized state, so that the next launch is treated as a 'First Run'.
(Which creates the same 'cache' data again.) So any user of Kodi on Android has to abandon normal system-wide cache clearing.
Until this horrible bug is fixed I have no choice but to uninstall Kodi.
Those 78 MB represent over 30% of the 255 MB free in my 'internal' storage, so that loss is unacceptable.
And it's also unacceptable to never again be permitted to use the global cache clearing command (as it would make Kodi reinitialize).
Whatever data those 78 MB represent, they MUST be stored as something other than system-wide cache.
And for use in devices like my laptop, having small 'internal' area, they MUST be able to use relocatable storage (as set by xbmc_env.properties or other method).
Best regards: dlanor
But due to a bug in Kodi's use of cache storage, this has proven impossible.
Background:
This laptop has a small SSD, split into partitions of which two are accessible.
1 GiB is used for the 'Internal Storage' (The place for all system data and default place for installed apps)
12 GiB is used for the 'Nand Flash' area, also linked as "/sdcard" (The preferred place for moving apps to)
I also have a 64GB SDXC card linked as "/mnt/external_sd", but this is not involved in my current problem.
Btw: I know that many tablets have a similar storage scheme (I have one such myself too)
From scratch the 1GB area is more than half consumed by system-bundled apps and their updates+data.
And almost every user-added app will also consume some space of this area. (Even when the app itself is moved elsewhere.)
Before the Kodi installation I had a grand total of 255 MB free space in that area, so additional losses must be minimized.
But just installation of Kodi consumes 60 MB of this area, and first run consumes an additional 78 MB (and that is the main problem).
My system is rooted (using KingoRoot) and I have successfully used the "System App Remover" from Google Play to move the installed Kodi app from the 1 GB 'internal' area to the 12 GB area, so the space for the app itself is no longer a problem. But its data storage is a major problem.
I used the method of creating the file "/sdcard/xbmc_env.properties" with content "xbmc.data=/sdcard/kodi_data", and also created that "kodi_data" folder in "/sdcard".
After this, and cleaning all old storage of Kodi, I've restarted it and seen that it does fill the "kodi_data" folder with the expected subfolder structure.
Surprisingly though, the content of that folder structure is VERY small compared to what I had expected. (Just 2.54 MB real data, consuming 4.82 MB of storage sectors)
However, Kodi still creates tons of stuff in the internal 1GB area, to a total size of 78 MB (same as in sessions before kodi_data use).
And this is truly a bug, because this storage is of 'Cache' type, as seen by the Android system.
But this is NOT cache type storage. If it were then clearing it between sessions would be harmless.
Instead the clearing of this cache area will reduce Kodi to uninitialized state, so that the next launch is treated as a 'First Run'.
(Which creates the same 'cache' data again.) So any user of Kodi on Android has to abandon normal system-wide cache clearing.
Until this horrible bug is fixed I have no choice but to uninstall Kodi.
Those 78 MB represent over 30% of the 255 MB free in my 'internal' storage, so that loss is unacceptable.
And it's also unacceptable to never again be permitted to use the global cache clearing command (as it would make Kodi reinitialize).
Whatever data those 78 MB represent, they MUST be stored as something other than system-wide cache.
And for use in devices like my laptop, having small 'internal' area, they MUST be able to use relocatable storage (as set by xbmc_env.properties or other method).
Best regards: dlanor