iosjailbreakcydia

What does `uicache` command do on jailbreak iphone?


I use the command Whenever I install a jailbreak app and the app's icon doesn't show up. What are some of the command's other use cases? What's the mechanism behind the command?


Solution

  • SpringBoard (the "home screen" application) keeps a cache of all app icons. When installing or removing apps from the App Store, installd performs those changes and updates that cache to reflect them. When installing apps by other means (such as through Cydia), installd is not involved in any way, so for the app to show up properly on the home screen, the cache has to be updated "manually" somehow.
    That is exactly what uicache was designed to do. How exactly it achieves that varies between iOS version, but it's mostly a combination of removing the cache files, killing/reloading the services dealing with them and iterating over the installed applications to build a new cache.

    You can check its source code on saurik's git repo.