X-Git-Url: https://git.saurik.com/uikittools.git/blobdiff_plain/73b6bd3c3bfaa9fafbb3ab511cdd89f5ccddee46..ef0e2d50c9d7b51e53ce6fd4bae768742526ca3e:/uicache.mm diff --git a/uicache.mm b/uicache.mm index 2eafcdd..e5235f2 100644 --- a/uicache.mm +++ b/uicache.mm @@ -46,8 +46,6 @@ #include -#include - #include "csstore.hpp" @interface NSMutableArray (Cydia) @@ -83,12 +81,23 @@ @end +@interface LSApplicationWorkspace : NSObject ++ (id) defaultWorkspace; +- (BOOL) registerApplication:(id)application; +- (BOOL) unregisterApplication:(id)application; +- (BOOL) invalidateIconCache:(id)bundle; +- (BOOL) registerApplicationDictionary:(id)application; +- (BOOL) installApplication:(id)application withOptions:(id)options; +- (BOOL) _LSPrivateRebuildApplicationDatabasesForSystemApps:(BOOL)system internal:(BOOL)internal user:(BOOL)user; +@end + int main(int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Class $LSApplicationWorkspace(objc_getClass("LSApplicationWorkspace")); LSApplicationWorkspace *workspace($LSApplicationWorkspace == nil ? nil : [$LSApplicationWorkspace defaultWorkspace]); + if (kCFCoreFoundationVersionNumber > 1000) // this API is on iOS 7 but invaliding the icon cache is harder there if ([workspace respondsToSelector:@selector(_LSPrivateRebuildApplicationDatabasesForSystemApps:internal:user:)]) { if (![workspace _LSPrivateRebuildApplicationDatabasesForSystemApps:YES internal:YES user:NO]) fprintf(stderr, "failed to rebuild application databases");