summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2013-02-06 09:20:52 +0000
committerJay Freeman (saurik) <saurik@saurik.com>2013-02-06 10:12:16 +0000
commit4ab9b1c71900d5516424dcaf8b0dcb329d5a839f (patch)
treebe25d2c0d538de194abb5df3aa62363485fd20d0
parentc9bb7c8ef256cba01e9e48a2c5f130ab31838905 (diff)
Delete all of the .csstore files.
-rw-r--r--csstore.cpp70
-rw-r--r--csstore.hpp45
-rw-r--r--makefile4
-rw-r--r--uicache.mm5
4 files changed, 122 insertions, 2 deletions
diff --git a/csstore.cpp b/csstore.cpp
new file mode 100644
index 0000000..a2f8b17
--- /dev/null
+++ b/csstore.cpp
@@ -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
index 0000000..726ca97
--- /dev/null
+++ b/csstore.hpp
@@ -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
diff --git a/makefile b/makefile
index df1bbf6..ae9f547 100644
--- 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
diff --git a/uicache.mm b/uicache.mm
index 1fdf84b..020ec8e 100644
--- a/uicache.mm
+++ b/uicache.mm
@@ -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"));