int main() {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
- NSString *path([NSString stringWithFormat:@"%@/Library/Caches/com.apple.mobile.installation.plist", NSHomeDirectory()]);
+ NSString *home(NSHomeDirectory());
+ NSString *path([NSString stringWithFormat:@"%@/Library/Caches/com.apple.mobile.installation.plist", home]);
Class $LSApplicationWorkspace(objc_getClass("LSApplicationWorkspace"));
LSApplicationWorkspace *workspace($LSApplicationWorkspace == nil ? nil : [$LSApplicationWorkspace defaultWorkspace]);
[cache writeToFile:path atomically:YES];
if (workspace != nil)
- for (NSString *bundle in bundles)
+ for (NSString *bundle in bundles) {
+ [workspace unregisterApplication:[NSURL fileURLWithPath:bundle]];
[workspace registerApplication:[NSURL fileURLWithPath:bundle]];
+ }
if (false) error:
fprintf(stderr, "%s\n", error == nil ? strerror(errno) : [[error localizedDescription] UTF8String]);
} else fprintf(stderr, "cannot open cache file. incorrect user?\n");
+ unlink([[NSString stringWithFormat:@"%@/Library/Caches/com.apple.springboard-imagecache-icons", home] UTF8String]);
+ unlink([[NSString stringWithFormat:@"%@/Library/Caches/com.apple.springboard-imagecache-icons.plist", home] UTF8String]);
+
+ unlink([[NSString stringWithFormat:@"%@/Library/Caches/com.apple.springboard-imagecache-smallicons", home] UTF8String]);
+ unlink([[NSString stringWithFormat:@"%@/Library/Caches/com.apple.springboard-imagecache-smallicons.plist", home] UTF8String]);
+
+ system([[NSString stringWithFormat:@"rm -rf %@/Library/Caches/SpringBoardIconCache", home] UTF8String]);
+ system([[NSString stringWithFormat:@"rm -rf %@/Library/Caches/SpringBoardIconCache-small", home] UTF8String]);
+
+ system([[NSString stringWithFormat:@"rm -rf %@/Library/Caches/com.apple.IconsCache", home] UTF8String]);
+
notify_post("com.apple.mobile.application_installed");
[pool release];