]> git.saurik.com Git - uikittools.git/commitdiff
Delete all of the .csstore files.
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 6 Feb 2013 09:20:52 +0000 (09:20 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 6 Feb 2013 10:12:16 +0000 (10:12 +0000)
csstore.cpp [new file with mode: 0644]
csstore.hpp [new file with mode: 0644]
makefile
uicache.mm

diff --git a/csstore.cpp b/csstore.cpp
new file mode 100644 (file)
index 0000000..a2f8b17
--- /dev/null
@@ -0,0 +1,70 @@
+/* UIKit Tools - command-line utilities for UIKit
+ * Copyright (C) 2008-2012  Jay Freeman (saurik)
+*/
+
+/* Modified BSD License {{{ */
+/*
+ *        Redistribution and use in source and binary
+ * forms, with or without modification, are permitted
+ * provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the
+ *    above copyright notice, this list of conditions
+ *    and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the
+ *    above copyright notice, this list of conditions
+ *    and the following disclaimer in the documentation
+ *    and/or other materials provided with the
+ *    distribution.
+ * 3. The name of the author may not be used to endorse
+ *    or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/* }}} */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <dirent.h>
+
+bool DeleteCSStores(const char *home) {
+    char path[strlen(home) + strlen("/Library/Caches") + 1];
+    sprintf(path, "%s/Library/Caches", home);
+
+    DIR *dir(opendir(path));
+    if (dir == NULL)
+        return false;
+
+    for (struct dirent *entry; (entry = readdir(dir)) != NULL; ) {
+        if (strncmp(entry->d_name, "com.apple.LaunchServices", sizeof("com.apple.LaunchServices") - 1) != 0)
+            continue;
+        if (!strstr(entry->d_name, ".csstore"))
+            continue;
+
+        char csstore[strlen(path) + 1 + strlen(entry->d_name) + 1];
+        snprintf(csstore, sizeof(csstore), "%s/%s", path, entry->d_name);
+        unlink(csstore);
+    }
+
+    closedir(dir);
+    return true;
+}
diff --git a/csstore.hpp b/csstore.hpp
new file mode 100644 (file)
index 0000000..726ca97
--- /dev/null
@@ -0,0 +1,45 @@
+/* UIKit Tools - command-line utilities for UIKit
+ * Copyright (C) 2008-2012  Jay Freeman (saurik)
+*/
+
+/* Modified BSD License {{{ */
+/*
+ *        Redistribution and use in source and binary
+ * forms, with or without modification, are permitted
+ * provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the
+ *    above copyright notice, this list of conditions
+ *    and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the
+ *    above copyright notice, this list of conditions
+ *    and the following disclaimer in the documentation
+ *    and/or other materials provided with the
+ *    distribution.
+ * 3. The name of the author may not be used to endorse
+ *    or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+ * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+/* }}} */
+
+#ifndef CSSTORE_HPP
+#define CSSTORE_HPP
+
+bool DeleteCSStores(const char *home);
+
+#endif//CSSTORE_HPP
index df1bbf6bcd6f57ffa44a5d6672dc9f0fd67a5a0a..ae9f547423672c2c4814fc59a70b0a196c62721c 100644 (file)
--- a/makefile
+++ b/makefile
@@ -15,8 +15,10 @@ uiduid := -framework Foundation -framework UIKit
 uiopen := -framework Foundation -framework UIKit
 uishoot := -framework CoreFoundation -framework Foundation -framework UIKit
 
+uicache: csstore.cpp
+
 %: %.mm
-       $${PKG_TARG}-g++ -Wall -Werror -o $@ $< $($@) -F"$${PKG_ROOT}"/System/Library/PrivateFrameworks -lobjc
+       $${PKG_TARG}-g++ -Wall -Werror -o $@ $^ $($@) -F"$${PKG_ROOT}"/System/Library/PrivateFrameworks -lobjc
        ldid -S$(wildcard $@.xml) $@
 
 %: %.c
index 1fdf84b7d4b4d933d444741880cac6bced9e4308..020ec8e0c6be8746236a514c2080e0baf1314327 100644 (file)
@@ -48,6 +48,8 @@
 
 #include <MobileCoreServices/LSApplicationWorkspace.h>
 
+#include "csstore.hpp"
+
 @interface NSMutableArray (Cydia)
 - (void) addInfoDictionary:(NSDictionary *)info;
 @end
@@ -86,7 +88,8 @@ int main(int argc, const char *argv[]) {
 
     @try {
 
-    unlink([[NSString stringWithFormat:@"%@/Library/Caches/com.apple.LaunchServices-036.csstore", home] UTF8String]);
+    DeleteCSStores([home UTF8String]);
+
     system("killall lsd");
 
     Class $LSApplicationWorkspace(objc_getClass("LSApplicationWorkspace"));