What does `uicache` command do on jailbreak iphone?

user6872780 picture user6872780 · Jun 17, 2017 · Viewed 26k times · Source

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?

Answer

Siguza picture Siguza · Jun 18, 2017

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.