From a830525c19d764ecf22b8e4dde996928268bf6e9 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Thu, 25 Jun 2015 22:47:35 -0700 Subject: [PATCH] Port build to cycc (from Telesphoreo/iPhone-API). --- IOKit | 1 + gssc.mm | 5 +++-- makefile | 22 ++++++++++++---------- sbdidlaunch.mm | 6 +++--- uicache.mm | 12 ++++++++++-- uiduid.mm | 4 ++++ 6 files changed, 33 insertions(+), 17 deletions(-) create mode 120000 IOKit diff --git a/IOKit b/IOKit new file mode 120000 index 0000000..81ca38a --- /dev/null +++ b/IOKit @@ -0,0 +1 @@ +/System/Library/Frameworks/IOKit.framework/Versions/A/Headers \ No newline at end of file diff --git a/gssc.mm b/gssc.mm index 0e1f92f..7473aae 100644 --- a/gssc.mm +++ b/gssc.mm @@ -37,7 +37,6 @@ */ /* }}} */ -#import #import #include #include @@ -80,7 +79,7 @@ int main(int argc, char *argv[]) { &OnGSCapabilityChanged, CFSTR("GSCapabilitiesChanged"), NULL, - NULL + 0 ); for (;;) { @@ -93,6 +92,8 @@ int main(int argc, char *argv[]) { } else if ($GSSystemGetCapability != NULL) { capability = reinterpret_cast((*$GSSystemGetCapability)(reinterpret_cast(name))); } else { + capability = nil; + if (void *libMobileGestalt = dlopen("/usr/lib/libMobileGestalt.dylib", RTLD_GLOBAL | RTLD_LAZY)) if (CFTypeRef (*$MGCopyAnswer)(CFStringRef) = reinterpret_cast(dlsym(libMobileGestalt, "MGCopyAnswer"))) { NSMutableDictionary *answers([NSMutableDictionary dictionary]); diff --git a/makefile b/makefile index 7ba5ac8..36ed0db 100644 --- a/makefile +++ b/makefile @@ -7,9 +7,13 @@ clean: .PHONY: all clean package +private := -F/System/Library/PrivateFrameworks + cfversion := -framework CoreFoundation -gssc := -framework CoreFoundation -sbdidlaunch := -framework CoreFoundation -framework SpringBoardServices +gssc := -lobjc -framework CoreFoundation +iomfsetgamma := -I. $(private) -framework IOKit -framework IOMobileFramebuffer +sbdidlaunch := $(private) -framework CoreFoundation -framework SpringBoardServices +sbreload := -framework CoreFoundation uicache := -framework Foundation -framework UIKit # XXX: UIKit -> MobileCoreServices uiduid := -framework Foundation -framework UIKit uiopen := -framework Foundation -framework UIKit @@ -20,23 +24,19 @@ uicache: csstore.cpp extrainst_: csstore.cpp %.dylib: %.mm - $${PKG_TARG}-g++ -Wall -Werror -dynamiclib -o $@ $^ $($@) -F"$${PKG_ROOT}"/System/Library/PrivateFrameworks -lobjc -framework CoreFoundation -framework Foundation + cycc -i2.0 -o$@ -- -dynamiclib -Werror $^ $($@) -lobjc ldid -S $@ %: %.mm - $${PKG_TARG}-g++ -Wall -Werror -o $@ $^ $($@) -F"$${PKG_ROOT}"/System/Library/PrivateFrameworks -lobjc + cycc -i2.0 -o$@ -- -Werror $^ $($@) ldid -S$(wildcard $@.xml) $@ %: %.c - $${PKG_TARG}-gcc -Wall -Werror -o $@ $< -framework CoreFoundation - ldid -S$(wildcard $@.xml) $@ - -iomfsetgamma: iomfsetgamma.c - $${PKG_TARG}-gcc -Wall -Werror -o $@ $< -F"$${PKG_ROOT}"/System/Library/PrivateFrameworks -framework IOKit -framework IOMobileFramebuffer + cycc -i2.0 -o$@ -- -Werror -x c $^ $($@) ldid -S$(wildcard $@.xml) $@ package: all extrainst_ - rm -rf _ + sudo rm -rf _ mkdir -p _/usr/lib cp -a $(filter %.dylib,$(uikittools)) _/usr/lib mkdir -p _/usr/bin @@ -46,5 +46,7 @@ package: all extrainst_ cp -a extrainst_ _/DEBIAN/ mkdir -p debs ln -sf debs/uikittools_$$(./version.sh)_iphoneos-arm.deb uikittools.deb + sudo chown -R 0 _ + sudo chgrp -R 0 _ dpkg-deb -b _ uikittools.deb readlink uikittools.deb diff --git a/sbdidlaunch.mm b/sbdidlaunch.mm index 810ca14..8a6b38b 100644 --- a/sbdidlaunch.mm +++ b/sbdidlaunch.mm @@ -58,7 +58,7 @@ int main() { &OnDidLaunch, CFSTR("SBSpringBoardDidLaunchNotification"), NULL, - NULL + 0 ); CFNotificationCenterAddObserver( @@ -67,7 +67,7 @@ int main() { &OnDidLaunch, CFSTR("com.apple.springboard.finishedstartup"), NULL, - NULL + 0 ); CFNotificationCenterAddObserver( @@ -76,7 +76,7 @@ int main() { &OnDidLaunch, CFSTR("com.apple.springboard.bootedcleanly"), NULL, - NULL + 0 ); if (SBSSpringBoardServerPort() == NULL) diff --git a/uicache.mm b/uicache.mm index 05bf391..e5235f2 100644 --- a/uicache.mm +++ b/uicache.mm @@ -46,8 +46,6 @@ #include -#include - #include "csstore.hpp" @interface NSMutableArray (Cydia) @@ -83,6 +81,16 @@ @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]; diff --git a/uiduid.mm b/uiduid.mm index 690bf51..338f84f 100644 --- a/uiduid.mm +++ b/uiduid.mm @@ -43,6 +43,10 @@ #include +@interface UIDevice (Apple) +- (NSString *) uniqueIdentifier; +@end + int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; -- 2.45.2