├── .gitignore ├── .gitmodules ├── Cydia.frappliance ├── English.lproj │ └── InfoPlist.strings └── Info.plist ├── Cydia ├── LoadingView.h ├── LoadingView.mm ├── LoadingViewController.h ├── LoadingViewController.mm ├── MIMEAddress.h ├── MIMEAddress.mm └── ProgressEvent.h ├── CydiaAppliance.mm ├── CyteKit ├── IndirectDelegate.h ├── Localize.h ├── MFMailComposeViewController-MailToURL.h ├── MFMailComposeViewController-MailToURL.mm ├── PerlCompatibleRegEx.hpp ├── TableViewCell.h ├── TableViewCell.mm ├── UCInternal.h ├── UCPlatform.h ├── ViewController.h ├── ViewController.mm ├── WebScriptObject-Cyte.h ├── WebScriptObject-Cyte.mm ├── WebThreadLocked.hpp ├── WebView.h ├── WebView.mm ├── WebViewController.h ├── WebViewController.mm ├── WebViewTableViewCell.h ├── WebViewTableViewCell.mm ├── dispatchEvent.h ├── dispatchEvent.mm ├── stringWithUTF8Bytes.h └── stringWithUTF8Bytes.mm ├── Cytore.hpp ├── LaunchDaemons └── com.saurik.Cydia.Startup.plist ├── Library ├── asuser ├── finish.sh ├── firmware.sh ├── free.sh ├── move.sh ├── space.sh └── startup ├── Menes ├── Menes.h ├── ObjectHandle.h ├── invocationWithSelector.h ├── invocationWithSelector.mm ├── radixSortWithSelector.h ├── radixSortWithSelector.mm ├── yieldToSelector.h └── yieldToSelector.mm ├── MobileCydia.app ├── Cydia ├── Default-Landscape.png ├── Default-Portrait.png ├── Default.png ├── Default@2x.png ├── Dutch.lproj │ └── Localizable.strings ├── English.lproj │ ├── Localizable.strings │ └── Sections_.strings ├── French.lproj │ ├── Localizable.strings │ └── Sections.strings ├── German.lproj │ ├── Localizable.strings │ └── Sections.strings ├── Icon-Small-50.png ├── Icon-Small.png ├── Icon-Small@2x.png ├── Info.plist ├── Italian.lproj │ └── Localizable.strings ├── Purposes │ ├── commercial.png │ ├── console.png │ ├── daemon.png │ ├── extension.png │ ├── library.png │ ├── uikit.png │ └── x.png ├── Sections.plist ├── Sections │ ├── Addons.png │ ├── Administration.png │ ├── Archiving.png │ ├── Blanks.png │ ├── Books.png │ ├── Carrier_Bundles.png │ ├── Communication.png │ ├── Data_Storage.png │ ├── Development.png │ ├── Dictionaries.png │ ├── Education.png │ ├── Entertainment.png │ ├── Fonts.png │ ├── Games.png │ ├── Health_and_Fitness.png │ ├── Imaging.png │ ├── Java.png │ ├── Keyboards.png │ ├── Localization.png │ ├── Messaging.png │ ├── Multimedia.png │ ├── Navigation.png │ ├── Networking.png │ ├── Packaging.png │ ├── Productivity.png │ ├── Repositories.png │ ├── Ringtones.png │ ├── Scripting.png │ ├── Security.png │ ├── Site-Specific_Apps.png │ ├── Social.png │ ├── Soundboards.png │ ├── System.png │ ├── Terminal_Support.png │ ├── Text_Editors.png │ ├── Themes.png │ ├── Toys.png │ ├── Tweaks.png │ ├── Utilities.png │ ├── Wallpaper.png │ ├── WebClips.png │ ├── Widgets.png │ └── X_Window.png ├── Spanish.lproj │ └── Localizable.strings ├── Swedish.lproj │ └── Localizable.strings ├── changes.png ├── changes@2x.png ├── chevron@2x.png ├── compose.png ├── configure.png ├── el.lproj │ ├── Localizable.strings │ └── Sections.strings ├── error.html ├── folder.png ├── folder@2x.png ├── home-Selected.png ├── home-Selected@2x.png ├── home.png ├── home@2x.png ├── icon-72.png ├── icon.png ├── icon@2x.png ├── iconClassic.png ├── install.png ├── install@2x.png ├── installed.png ├── installed@2x.png ├── installing.png ├── localize.js ├── manage.html ├── manage.png ├── manage@2x.png ├── menes │ └── menes.js ├── packages.png ├── reload.png ├── removing.png ├── search.png ├── search@2x.png ├── source.png ├── source@2x.png ├── sources.png ├── storage.png ├── unknown.png ├── zh_CN.lproj │ └── Localizable.strings └── zh_TW.lproj │ └── Localizable.strings ├── MobileCydia.mm ├── Sources.h ├── Sources.list └── saurik.list ├── Sources.mm ├── Trusted.gpg ├── bigboss.gpg ├── modmyi.gpg ├── saurik.gpg └── zodttd.gpg ├── Version.mm ├── cfversion.mm ├── compiling.txt ├── control.sh ├── cydia-lproj.control ├── cydia.control ├── entitlements.xml ├── iPhonePrivate.h ├── lookup3.c ├── makefile ├── pngcrush.sh ├── postinst.mm ├── preinst ├── rowhammer_test ├── sysroot.sh └── version.sh /.gitignore: -------------------------------------------------------------------------------- 1 | sysroot 2 | MobileCydia 3 | CydiaAppliance 4 | postinst 5 | _ 6 | __ 7 | Cydia.deb 8 | Cydia_.deb 9 | debs 10 | .DS_Store 11 | *.o 12 | Images/ 13 | Version.h 14 | cfversion 15 | bins 16 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "SDURLCache"] 2 | path = SDURLCache 3 | url = https://github.com/SaurikIT/SDURLCache.git 4 | -------------------------------------------------------------------------------- /Cydia.frappliance/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | CFBundleName = "Cydia"; 2 | -------------------------------------------------------------------------------- /Cydia.frappliance/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CFBundleExecutable 7 | CydiaAppliance 8 | 9 | CFBundleIdentifier 10 | com.saurik.Cydia 11 | 12 | CFBundleInfoDictionaryVersion 13 | 6.0 14 | 15 | CFBundlePackageType 16 | BNDL 17 | 18 | CFBundleSignature 19 | fnrw 20 | 21 | CFBundleSupportedPlatforms 22 | 23 | iPhoneOS 24 | 25 | 26 | CFBundleVersion 27 | 0.9 28 | 29 | DTSDKName 30 | iphoneos2.0.saurik 31 | 32 | FRApplianceDataSourceType 33 | All 34 | 35 | FRAppliancePreferedOrderValue 36 | 1 37 | 38 | FRHideIfNoCategories 39 | 40 | 41 | FRRemoteAppliance 42 | 43 | 44 | LSRequiresIPhoneOS 45 | 1 46 | 47 | MinimumOSVersion 48 | 3.0 49 | 50 | NSPrincipalClass 51 | CydiaAppliance 52 | 53 | UIDeviceFamily 54 | 55 | 3 56 | 2 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Cydia/LoadingView.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Cydia_LoadingView_H 41 | #define Cydia_LoadingView_H 42 | 43 | #include "Menes/ObjectHandle.h" 44 | 45 | #include 46 | 47 | @interface CydiaLoadingView : UIView { 48 | _H spinner_; 49 | _H label_; 50 | _H container_; 51 | } 52 | 53 | @end 54 | 55 | #endif//Cydia_LoadingView_H 56 | -------------------------------------------------------------------------------- /Cydia/LoadingView.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "Cydia/LoadingView.h" 41 | #include "CyteKit/Localize.h" 42 | 43 | @implementation CydiaLoadingView 44 | 45 | - (id) initWithFrame:(CGRect)frame { 46 | if ((self = [super initWithFrame:frame]) != nil) { 47 | container_ = [[[UIView alloc] init] autorelease]; 48 | [container_ setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin]; 49 | 50 | spinner_ = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease]; 51 | [spinner_ startAnimating]; 52 | [container_ addSubview:spinner_]; 53 | 54 | label_ = [[[UILabel alloc] init] autorelease]; 55 | [label_ setFont:[UIFont boldSystemFontOfSize:15.0f]]; 56 | [label_ setBackgroundColor:[UIColor clearColor]]; 57 | [label_ setTextColor:[UIColor viewFlipsideBackgroundColor]]; 58 | [label_ setShadowColor:[UIColor whiteColor]]; 59 | [label_ setShadowOffset:CGSizeMake(0, 1)]; 60 | [label_ setText:[NSString stringWithFormat:Elision_, UCLocalize("LOADING"), nil]]; 61 | [container_ addSubview:label_]; 62 | 63 | CGSize viewsize = frame.size; 64 | CGSize spinnersize = [spinner_ bounds].size; 65 | CGSize textsize = [[label_ text] sizeWithFont:[label_ font]]; 66 | float bothwidth = spinnersize.width + textsize.width + 5.0f; 67 | 68 | CGRect containrect = { 69 | CGPointMake(floorf((viewsize.width / 2) - (bothwidth / 2)), floorf((viewsize.height / 2) - (spinnersize.height / 2))), 70 | CGSizeMake(bothwidth, spinnersize.height) 71 | }; 72 | CGRect textrect = { 73 | CGPointMake(spinnersize.width + 5.0f, floorf((spinnersize.height / 2) - (textsize.height / 2))), 74 | textsize 75 | }; 76 | CGRect spinrect = { 77 | CGPointZero, 78 | spinnersize 79 | }; 80 | 81 | [container_ setFrame:containrect]; 82 | [spinner_ setFrame:spinrect]; 83 | [label_ setFrame:textrect]; 84 | [self addSubview:container_]; 85 | } return self; 86 | } 87 | 88 | @end 89 | -------------------------------------------------------------------------------- /Cydia/LoadingViewController.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Cydia_LoadingViewController_H 41 | #define Cydia_LoadingViewController_H 42 | 43 | #include "Cydia/LoadingView.h" 44 | #include "CyteKit/ViewController.h" 45 | 46 | @interface CydiaLoadingViewController : CyteViewController { 47 | _H indicator_; 48 | _H tabbar_; 49 | _H navbar_; 50 | } 51 | 52 | @end 53 | 54 | #endif//Cydia_LoadingViewController_H 55 | -------------------------------------------------------------------------------- /Cydia/LoadingViewController.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "Cydia/LoadingViewController.h" 41 | 42 | @implementation CydiaLoadingViewController 43 | 44 | - (void) loadView { 45 | UIView *view([[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease]); 46 | [view setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)]; 47 | [self setView:view]; 48 | 49 | UITableView *table([[[UITableView alloc] initWithFrame:[[self view] bounds] style:UITableViewStyleGrouped] autorelease]); 50 | [table setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)]; 51 | [[self view] addSubview:table]; 52 | 53 | indicator_ = [[[CydiaLoadingView alloc] initWithFrame:[[self view] bounds]] autorelease]; 54 | [indicator_ setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)]; 55 | [[self view] addSubview:indicator_]; 56 | 57 | tabbar_ = [[[UITabBar alloc] initWithFrame:CGRectMake(0, 0, 0, 49.0f)] autorelease]; 58 | [tabbar_ setFrame:CGRectMake(0.0f, [[self view] bounds].size.height - [tabbar_ bounds].size.height, [[self view] bounds].size.width, [tabbar_ bounds].size.height)]; 59 | [tabbar_ setAutoresizingMask:(UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth)]; 60 | [[self view] addSubview:tabbar_]; 61 | 62 | navbar_ = [[[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 0, 44.0f)] autorelease]; 63 | [navbar_ setFrame:CGRectMake(0.0f, 0.0f, [[self view] bounds].size.width, [navbar_ bounds].size.height)]; 64 | [navbar_ setAutoresizingMask:(UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth)]; 65 | [[self view] addSubview:navbar_]; 66 | } 67 | 68 | - (void) releaseSubviews { 69 | indicator_ = nil; 70 | tabbar_ = nil; 71 | navbar_ = nil; 72 | } 73 | 74 | @end 75 | -------------------------------------------------------------------------------- /Cydia/MIMEAddress.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Cydia_MIMEAddress_H 41 | #define Cydia_MIMEAddress_H 42 | 43 | #include "Menes/ObjectHandle.h" 44 | 45 | @interface MIMEAddress : NSObject { 46 | _H name_; 47 | _H address_; 48 | } 49 | 50 | - (NSString *) name; 51 | - (NSString *) address; 52 | 53 | - (void) setAddress:(NSString *)address; 54 | 55 | + (MIMEAddress *) addressWithString:(NSString *)string; 56 | - (id) initWithString:(NSString *)string; 57 | 58 | @end 59 | 60 | #endif//Cydia_MIMEAddress_H 61 | -------------------------------------------------------------------------------- /Cydia/MIMEAddress.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "Cydia/MIMEAddress.h" 41 | 42 | #include 43 | 44 | #include "CyteKit/PerlCompatibleRegEx.hpp" 45 | 46 | @implementation MIMEAddress 47 | 48 | - (NSString *) name { 49 | return name_; 50 | } 51 | 52 | - (NSString *) address { 53 | return address_; 54 | } 55 | 56 | - (void) setAddress:(NSString *)address { 57 | address_ = address; 58 | } 59 | 60 | + (MIMEAddress *) addressWithString:(NSString *)string { 61 | return [[[MIMEAddress alloc] initWithString:string] autorelease]; 62 | } 63 | 64 | + (NSArray *) _attributeKeys { 65 | return [NSArray arrayWithObjects: 66 | @"address", 67 | @"name", 68 | nil]; 69 | } 70 | 71 | - (NSArray *) attributeKeys { 72 | return [[self class] _attributeKeys]; 73 | } 74 | 75 | + (BOOL) isKeyExcludedFromWebScript:(const char *)name { 76 | return ![[self _attributeKeys] containsObject:[NSString stringWithUTF8String:name]] && [super isKeyExcludedFromWebScript:name]; 77 | } 78 | 79 | - (id) initWithString:(NSString *)string { 80 | if ((self = [super init]) != nil) { 81 | const char *data = [string UTF8String]; 82 | size_t size = [string length]; 83 | 84 | static Pcre address_r("^\"?(.*)\"? <([^>]*)>$"); 85 | 86 | if (address_r(data, size)) { 87 | name_ = address_r[1]; 88 | address_ = address_r[2]; 89 | } else { 90 | name_ = string; 91 | address_ = nil; 92 | } 93 | } return self; 94 | } 95 | 96 | @end 97 | -------------------------------------------------------------------------------- /Cydia/ProgressEvent.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Cydia_ProgressEvent_H 41 | #define Cydia_ProgressEvent_H 42 | 43 | #include 44 | 45 | #include 46 | 47 | #include 48 | 49 | @interface CydiaProgressEvent : NSObject { 50 | _H message_; 51 | _H type_; 52 | 53 | _H item_; 54 | _H package_; 55 | _H url_; 56 | _H version_; 57 | } 58 | 59 | + (CydiaProgressEvent *) eventWithMessage:(NSString *)message ofType:(NSString *)type; 60 | + (CydiaProgressEvent *) eventWithMessage:(NSString *)message ofType:(NSString *)type forPackage:(NSString *)package; 61 | + (CydiaProgressEvent *) eventWithMessage:(NSString *)message ofType:(NSString *)type forItem:(pkgAcquire::ItemDesc &)item; 62 | 63 | - (id) initWithMessage:(NSString *)message ofType:(NSString *)type; 64 | 65 | - (NSString *) message; 66 | - (NSString *) type; 67 | 68 | - (NSArray *) item; 69 | - (NSString *) package; 70 | - (NSString *) url; 71 | - (NSString *) version; 72 | 73 | - (void) setItem:(NSArray *)item; 74 | - (void) setPackage:(NSString *)package; 75 | - (void) setURL:(NSString *)url; 76 | - (void) setVersion:(NSString *)version; 77 | 78 | - (NSString *) compound:(NSString *)value; 79 | - (NSString *) compoundMessage; 80 | - (NSString *) compoundTitle; 81 | 82 | @end 83 | 84 | @protocol ProgressDelegate 85 | - (void) addProgressEvent:(CydiaProgressEvent *)event; 86 | - (void) setProgressPercent:(NSNumber *)percent; 87 | - (void) setProgressStatus:(NSDictionary *)status; 88 | - (void) setProgressCancellable:(NSNumber *)cancellable; 89 | - (bool) isProgressCancelled; 90 | - (void) setTitle:(NSString *)title; 91 | @end 92 | 93 | #endif//Cydia_ProgressEvent_H 94 | -------------------------------------------------------------------------------- /CydiaAppliance.mm: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | #import 5 | #import 6 | #import 7 | 8 | #include 9 | 10 | @interface CydiaTopShelfController : NSObject { 11 | _H view_; 12 | } 13 | 14 | @end 15 | 16 | @implementation CydiaTopShelfController 17 | 18 | - (BRTopShelfView *) topShelfView { 19 | return view_; 20 | } 21 | 22 | - (void) selectCategoryWithIdentifier:(NSString *)identifier { 23 | } 24 | 25 | @end 26 | 27 | 28 | @interface CydiaManageViewController : BRViewController { 29 | } 30 | @end 31 | 32 | @implementation CydiaManageViewController 33 | @end 34 | 35 | 36 | @interface CydiaAppliance : BRBaseAppliance { 37 | } 38 | @end 39 | 40 | @implementation CydiaAppliance 41 | 42 | - (id) applianceCategories { 43 | return [NSArray arrayWithObjects: 44 | [BRApplianceCategory categoryWithName:@"Install" identifier:@"cydia-install" preferredOrder:0], 45 | [BRApplianceCategory categoryWithName:@"Manage" identifier:@"cydia-manage" preferredOrder:0], 46 | [BRApplianceCategory categoryWithName:@"Search" identifier:@"cydia-search" preferredOrder:0], 47 | nil]; 48 | } 49 | 50 | - (id) controllerForIdentifier:(NSString *)identifier args:(NSDictionary *)args { 51 | return nil; 52 | } 53 | 54 | - (id) topShelfController { 55 | return [[[CydiaTopShelfController alloc] init] autorelease]; 56 | } 57 | 58 | - (int) noContentBRError { 59 | // XXX: research 60 | return 0; 61 | } 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /CyteKit/IndirectDelegate.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_IndirectDelegate_H 41 | #define CyteKit_IndirectDelegate_H 42 | 43 | @interface IndirectDelegate : NSObject { 44 | _transient volatile id delegate_; 45 | } 46 | 47 | - (id) delegate; 48 | - (void) setDelegate:(id)delegate; 49 | 50 | - (id) initWithDelegate:(id)delegate; 51 | 52 | @end 53 | 54 | #endif//CyteKit_IndirectDelegate_H 55 | -------------------------------------------------------------------------------- /CyteKit/Localize.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_Localize_H 41 | #define CyteKit_Localize_H 42 | 43 | #include 44 | 45 | static inline NSString *UCLocalizeEx(NSString *key, NSString *value = nil) { 46 | return [[NSBundle mainBundle] localizedStringForKey:key value:value table:nil]; 47 | } 48 | 49 | #define UCLocalize(key) UCLocalizeEx(@ key) 50 | 51 | extern NSString *Elision_; 52 | 53 | #endif//CyteKit_Localize_H 54 | -------------------------------------------------------------------------------- /CyteKit/MFMailComposeViewController-MailToURL.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_MFMailComposeViewController_MailToURL_H 41 | #define CyteKit_MFMailComposeViewController_MailToURL_H 42 | 43 | #include 44 | #include 45 | 46 | @interface MFMailComposeViewController (CyteMailToURL) 47 | - (void) setMailToURL:(NSURL *)url; 48 | @end 49 | 50 | #endif//CyteKit_MFMailComposeViewController_MailToURL_H 51 | -------------------------------------------------------------------------------- /CyteKit/MFMailComposeViewController-MailToURL.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "CyteKit/MFMailComposeViewController-MailToURL.h" 41 | 42 | #include 43 | #include 44 | 45 | static void $MFMailComposeViewController$setMailToURL$(MFMailComposeViewController *self, SEL _cmd, NSURL *url) { 46 | NSString *scheme([url scheme]); 47 | 48 | if (scheme == nil || ![[scheme lowercaseString] isEqualToString:@"mailto"]) 49 | [NSException raise:NSInvalidArgumentException format:@"-[MFMailComposeViewController setMailToURL:] - non-mailto: URL"]; 50 | 51 | NSString *href([url absoluteString]); 52 | NSRange question([href rangeOfString:@"?"]); 53 | 54 | NSMutableArray *to([NSMutableArray arrayWithCapacity:1]); 55 | 56 | NSString *target, *query; 57 | if (question.location == NSNotFound) { 58 | target = [href substringFromIndex:7]; 59 | query = nil; 60 | } else { 61 | target = [href substringWithRange:NSMakeRange(7, question.location - 7)]; 62 | query = [href substringFromIndex:(question.location + 1)]; 63 | } 64 | 65 | if ([target length] != 0) 66 | [to addObject:target]; 67 | 68 | if (query != nil && [query length] != 0) { 69 | NSMutableArray *cc([NSMutableArray arrayWithCapacity:1]); 70 | NSMutableArray *bcc([NSMutableArray arrayWithCapacity:1]); 71 | 72 | for (NSString *assign in [query componentsSeparatedByString:@"&"]) { 73 | NSRange equal([assign rangeOfString:@"="]); 74 | if (equal.location == NSNotFound) 75 | continue; 76 | 77 | NSString *name([assign substringToIndex:equal.location]); 78 | NSString *value([assign substringFromIndex:(equal.location + 1)]); 79 | value = [value stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 80 | 81 | if (false); 82 | else if ([name isEqualToString:@"attachment"]) { 83 | if (NSData *data = [NSData dataWithContentsOfFile:value]) 84 | [self addAttachmentData:data mimeType:@"application/octet-stream" fileName:[value lastPathComponent]]; 85 | } else if ([name isEqualToString:@"bcc"]) 86 | [bcc addObject:value]; 87 | else if ([name isEqualToString:@"body"]) 88 | [self setMessageBody:value isHTML:NO]; 89 | else if ([name isEqualToString:@"cc"]) 90 | [cc addObject:value]; 91 | else if ([name isEqualToString:@"subject"]) 92 | [self setSubject:value]; 93 | else if ([name isEqualToString:@"to"]) 94 | [to addObject:value]; 95 | } 96 | 97 | [self setCcRecipients:cc]; 98 | [self setBccRecipients:bcc]; 99 | } 100 | 101 | [self setToRecipients:to]; 102 | } 103 | 104 | __attribute__((__constructor__)) static void MFMailComposeViewController_CyteMailToURL() { 105 | dlopen("/System/Library/Frameworks/MessageUI.framework/MessageUI", RTLD_GLOBAL | RTLD_LAZY); 106 | if (Class MFMailComposeViewController = objc_getClass("MFMailComposeViewController")) 107 | class_addMethod(MFMailComposeViewController, @selector(setMailToURL:), (IMP) $MFMailComposeViewController$setMailToURL$, "v12@0:4@8"); 108 | } 109 | -------------------------------------------------------------------------------- /CyteKit/PerlCompatibleRegEx.hpp: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Cydia_PerlCompatibleRegEx_HPP 41 | #define Cydia_PerlCompatibleRegEx_HPP 42 | 43 | #include 44 | 45 | #include "CyteKit/UCPlatform.h" 46 | #include "CyteKit/stringWithUTF8Bytes.h" 47 | 48 | class Pcre { 49 | private: 50 | pcre *code_; 51 | pcre_extra *study_; 52 | int capture_; 53 | int *matches_; 54 | const char *data_; 55 | 56 | public: 57 | Pcre() : 58 | code_(NULL), 59 | study_(NULL), 60 | data_(NULL) 61 | { 62 | } 63 | 64 | Pcre(const char *regex, NSString *data = nil) : 65 | code_(NULL), 66 | study_(NULL), 67 | data_(NULL) 68 | { 69 | this->operator =(regex); 70 | 71 | if (data != nil) 72 | this->operator ()(data); 73 | } 74 | 75 | void operator =(const char *regex) { 76 | _assert(code_ == NULL); 77 | 78 | const char *error; 79 | int offset; 80 | code_ = pcre_compile(regex, 0, &error, &offset, NULL); 81 | 82 | if (code_ == NULL) { 83 | fprintf(stderr, "%d:%s\n", offset, error); 84 | _assert(false); 85 | } 86 | 87 | pcre_fullinfo(code_, study_, PCRE_INFO_CAPTURECOUNT, &capture_); 88 | _assert(capture_ >= 0); 89 | matches_ = new int[(capture_ + 1) * 3]; 90 | } 91 | 92 | ~Pcre() { 93 | pcre_free(code_); 94 | delete matches_; 95 | } 96 | 97 | NSString *operator [](size_t match) const { 98 | return [NSString stringWithUTF8Bytes:(data_ + matches_[match * 2]) length:(matches_[match * 2 + 1] - matches_[match * 2])]; 99 | } 100 | 101 | _finline bool operator ()(NSString *data) { 102 | // XXX: length is for characters, not for bytes 103 | return operator ()([data UTF8String], [data length]); 104 | } 105 | 106 | _finline bool operator ()(const char *data) { 107 | return operator ()(data, strlen(data)); 108 | } 109 | 110 | bool operator ()(const char *data, size_t size) { 111 | if (pcre_exec(code_, study_, data, size, 0, 0, matches_, (capture_ + 1) * 3) >= 0) { 112 | data_ = data; 113 | return true; 114 | } else { 115 | data_ = NULL; 116 | return false; 117 | } 118 | } 119 | 120 | operator bool() const { 121 | return data_ != NULL; 122 | } 123 | 124 | NSString *operator ->*(NSString *format) const { 125 | id values[capture_]; 126 | for (int i(0); i != capture_; ++i) 127 | values[i] = this->operator [](i + 1); 128 | 129 | return [[[NSString alloc] initWithFormat:format arguments:reinterpret_cast(values)] autorelease]; 130 | } 131 | }; 132 | 133 | #endif//Cydia_PerlCompatibleRegEx_HPP 134 | -------------------------------------------------------------------------------- /CyteKit/TableViewCell.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_TableViewCell_H 41 | #define CyteKit_TableViewCell_H 42 | 43 | #include 44 | 45 | #include 46 | 47 | #include 48 | 49 | @protocol CyteTableViewCellDelegate 50 | - (void) drawContentRect:(CGRect)rect; 51 | @end 52 | 53 | @interface CyteTableViewCellContentView : UIView { 54 | _transient id delegate_; 55 | } 56 | 57 | - (id) delegate; 58 | - (void) setDelegate:(id)delegate; 59 | 60 | @end 61 | 62 | @interface CyteTableViewCell : UITableViewCell { 63 | _H content_; 64 | bool highlighted_; 65 | } 66 | 67 | @end 68 | 69 | #endif//CyteKit_TableViewCell_H 70 | -------------------------------------------------------------------------------- /CyteKit/TableViewCell.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "CyteKit/TableViewCell.h" 41 | 42 | #include "iPhonePrivate.h" 43 | 44 | @implementation CyteTableViewCellContentView 45 | 46 | - (id) initWithFrame:(CGRect)frame { 47 | if ((self = [super initWithFrame:frame]) != nil) { 48 | [self setNeedsDisplayOnBoundsChange:YES]; 49 | } return self; 50 | } 51 | 52 | - (id) delegate { 53 | return delegate_; 54 | } 55 | 56 | - (void) setDelegate:(id)delegate { 57 | delegate_ = delegate; 58 | } 59 | 60 | - (void) drawRect:(CGRect)rect { 61 | [super drawRect:rect]; 62 | [delegate_ drawContentRect:rect]; 63 | } 64 | 65 | @end 66 | 67 | @implementation CyteTableViewCell 68 | 69 | - (void) _updateHighlightColorsForView:(UIView *)view highlighted:(BOOL)highlighted { 70 | if (view == (UIView *) content_) 71 | highlighted_ = highlighted; 72 | 73 | [super _updateHighlightColorsForView:view highlighted:highlighted]; 74 | } 75 | 76 | - (void) setSelected:(BOOL)selected animated:(BOOL)animated { 77 | highlighted_ = selected; 78 | 79 | [super setSelected:selected animated:animated]; 80 | [content_ setNeedsDisplay]; 81 | } 82 | 83 | @end 84 | -------------------------------------------------------------------------------- /CyteKit/UCInternal.h: -------------------------------------------------------------------------------- 1 | - (NSMethodSignature *) methodSignatureForSelector:(SEL)selector { 2 | fprintf(stderr, "[%s]S-%s\n", class_getName(self->isa), sel_getName(selector)); 3 | return [super methodSignatureForSelector:selector]; 4 | } 5 | 6 | - (BOOL) respondsToSelector:(SEL)selector { 7 | BOOL responds = [super respondsToSelector:selector]; 8 | fprintf(stderr, "[%s]R%c%s\n", class_getName(self->isa), (responds ? '+' : '-'), sel_getName(selector)); 9 | return responds; 10 | } 11 | -------------------------------------------------------------------------------- /CyteKit/UCPlatform.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_UCPlatform_H 41 | #define CyteKit_UCPlatform_H 42 | 43 | #define __STDC_LIMIT_MACROS 44 | #include 45 | 46 | #include 47 | 48 | #include 49 | #include 50 | 51 | #define _forever \ 52 | for (;;) 53 | 54 | extern struct timeval _ltv; 55 | extern bool _itv; 56 | 57 | #define _trace() do { \ 58 | struct timeval _ctv; \ 59 | gettimeofday(&_ctv, NULL); \ 60 | if (!_itv) { \ 61 | _itv = true; \ 62 | _ltv = _ctv; \ 63 | } \ 64 | fprintf(stderr, "%lu.%.6u[%f]:_trace()@%s:%u[%s]\n", \ 65 | _ctv.tv_sec, _ctv.tv_usec, \ 66 | (_ctv.tv_sec - _ltv.tv_sec) + (_ctv.tv_usec - _ltv.tv_usec) / 1000000.0, \ 67 | __FILE__, __LINE__, __FUNCTION__\ 68 | ); \ 69 | _ltv = _ctv; \ 70 | } while (false) 71 | 72 | #define _assert(test) do \ 73 | if (!(test)) { \ 74 | fprintf(stderr, "_assert(%d:%s)@%s:%u[%s]\n", errno, #test, __FILE__, __LINE__, __FUNCTION__); \ 75 | exit(-1); \ 76 | } \ 77 | while (false) 78 | 79 | #define _not(type) ((type) ~ (type) 0) 80 | 81 | #define _transient 82 | 83 | #define _label__(x) _label ## x 84 | #define _label_(y) _label__(y) 85 | #define _label _label_(__LINE__) 86 | 87 | #define _packed \ 88 | __attribute__((__packed__)) 89 | #define _finline \ 90 | inline __attribute__((__always_inline__)) 91 | 92 | #define _assume(e) \ 93 | _assert(e) 94 | 95 | #define _nodefault \ 96 | default: \ 97 | _assume(false); \ 98 | throw; 99 | 100 | #define _likely(expr) \ 101 | __builtin_expect(expr, 1) 102 | 103 | #define _unlikely(expr) \ 104 | __builtin_expect(expr, 0) 105 | 106 | #endif//CyteKit_UCPlatform_H 107 | -------------------------------------------------------------------------------- /CyteKit/ViewController.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_ViewController_H 41 | #define CyteKit_ViewController_H 42 | 43 | #include 44 | 45 | #include 46 | 47 | @interface UIViewController (Cydia) 48 | - (BOOL) hasLoaded; 49 | - (void) reloadData; 50 | - (void) unloadData; 51 | - (UIViewController *) parentOrPresentingViewController; 52 | @end 53 | 54 | @interface CyteViewController : UIViewController { 55 | _transient id delegate_; 56 | BOOL loaded_; 57 | } 58 | 59 | // The default implementation of this method is essentially a no-op, 60 | // but calling the superclass implementation is *required*. 61 | - (void) reloadData; 62 | 63 | - (void) unloadData; 64 | 65 | // This URL is used to save the state of the view controller. Return 66 | // nil if you cannot or should not save the URL for this page. 67 | - (NSURL *) navigationURL; 68 | 69 | // By default, this delegate is unused. However, it's provided here in case 70 | // you need some kind of delegate in a subclass. 71 | - (void) setDelegate:(id)delegate; 72 | - (id) delegate; 73 | 74 | // Override this in subclasses if you manage the "has seen first load" state yourself. 75 | - (BOOL) hasLoaded; 76 | 77 | // This is called when the view managed by the view controller is released. 78 | // That is not always when the controller itself is released: it also can 79 | // happen when more memory is needed by the system or whenever the controller 80 | // just happens not to be visible. 81 | - (void) releaseSubviews; 82 | 83 | @end 84 | 85 | #endif//CyteKit_ViewController_H 86 | -------------------------------------------------------------------------------- /CyteKit/ViewController.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "CyteKit/ViewController.h" 41 | 42 | #include 43 | #include 44 | 45 | extern bool IsWildcat_; 46 | 47 | @implementation UIViewController (Cydia) 48 | 49 | - (BOOL) hasLoaded { 50 | return YES; 51 | } 52 | 53 | - (void) reloadData { 54 | [self view]; 55 | } 56 | 57 | - (void) unloadData { 58 | if (UIViewController *modal = [self modalViewController]) 59 | [modal unloadData]; 60 | } 61 | 62 | - (UIViewController *) parentOrPresentingViewController { 63 | if (UIViewController *parent = [self parentViewController]) 64 | return parent; 65 | if ([self respondsToSelector:@selector(presentingViewController)]) 66 | return [self presentingViewController]; 67 | return nil; 68 | } 69 | 70 | @end 71 | 72 | @implementation CyteViewController 73 | 74 | - (void) setDelegate:(id)delegate { 75 | delegate_ = delegate; 76 | } 77 | 78 | - (id) delegate { 79 | return delegate_; 80 | } 81 | 82 | - (void) viewWillAppear:(BOOL)animated { 83 | [super viewWillAppear:animated]; 84 | 85 | // Load on first appearance. We don't need to set the loaded flag here 86 | // because it is set for us the first time -reloadData is called. 87 | if (![self hasLoaded]) 88 | [self reloadData]; 89 | } 90 | 91 | - (BOOL) hasLoaded { 92 | return loaded_; 93 | } 94 | 95 | - (void) releaseSubviews { 96 | loaded_ = NO; 97 | } 98 | 99 | - (void) setView:(UIView *)view { 100 | // Nasty hack for 2.x-compatibility. In 3.0+, we can and 101 | // should just override -viewDidUnload instead. 102 | if (view == nil) 103 | [self releaseSubviews]; 104 | 105 | [super setView:view]; 106 | } 107 | 108 | - (void) reloadData { 109 | [super reloadData]; 110 | 111 | // This is called automatically on the first appearance of a controller, 112 | // or any other time it needs to reload the information shown. However (!), 113 | // this is not called by any tab bar or navigation controller's -reloadData 114 | // method unless this controller returns YES from -hadLoaded. 115 | loaded_ = YES; 116 | } 117 | 118 | - (void) unloadData { 119 | loaded_ = NO; 120 | [super unloadData]; 121 | } 122 | 123 | - (NSURL *) navigationURL { 124 | return nil; 125 | } 126 | 127 | - (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { 128 | return IsWildcat_ || orientation == UIInterfaceOrientationPortrait; 129 | } 130 | 131 | @end 132 | -------------------------------------------------------------------------------- /CyteKit/WebScriptObject-Cyte.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_WebScriptObject_Cyte_H 41 | #define CyteKit_WebScriptObject_Cyte_H 42 | 43 | #include 44 | 45 | @interface WebScriptObject (Cyte) 46 | - (NSUInteger) count; 47 | - (NSUInteger) countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)objects count:(NSUInteger)count; 48 | - (id) objectAtIndex:(unsigned)index; 49 | @end 50 | 51 | #endif//CyteKit_WebScriptObject_Cyte_H 52 | -------------------------------------------------------------------------------- /CyteKit/WebScriptObject-Cyte.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "CyteKit/WebScriptObject-Cyte.h" 41 | 42 | @implementation WebScriptObject (Cyte) 43 | 44 | - (NSUInteger) count { 45 | id length([self valueForKey:@"length"]); 46 | if ([length respondsToSelector:@selector(intValue)]) 47 | return [length intValue]; 48 | else 49 | return 0; 50 | } 51 | 52 | - (id) objectAtIndex:(unsigned)index { 53 | return [self webScriptValueAtIndex:index]; 54 | } 55 | 56 | - (NSUInteger) countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)objects count:(NSUInteger)count { 57 | size_t length([self count] - state->state); 58 | if (length <= 0) 59 | return 0; 60 | else if (length > count) 61 | length = count; 62 | for (size_t i(0); i != length; ++i) 63 | objects[i] = [self objectAtIndex:state->state++]; 64 | state->itemsPtr = objects; 65 | state->mutationsPtr = (unsigned long *) self; 66 | return length; 67 | } 68 | 69 | @end 70 | -------------------------------------------------------------------------------- /CyteKit/WebThreadLocked.hpp: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_WebThreadLocked_HPP 41 | #define CyteKit_WebThreadLocked_HPP 42 | 43 | #include "CyteKit/UCPlatform.h" 44 | #include "WebCore/WebCoreThread.h" 45 | 46 | struct WebThreadLocked { 47 | _finline WebThreadLocked() { 48 | WebThreadLock(); 49 | } 50 | 51 | _finline ~WebThreadLocked() { 52 | WebThreadUnlock(); 53 | } 54 | }; 55 | 56 | #endif//CyteKit_WebThreadLocked_HPP 57 | -------------------------------------------------------------------------------- /CyteKit/WebView.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_CydiaBrowser_H 41 | #define CyteKit_CydiaBrowser_H 42 | 43 | #include 44 | 45 | #include 46 | #include 47 | #include 48 | #include 49 | #include 50 | 51 | #include 52 | 53 | enum CYWebPolicyDecision { 54 | CYWebPolicyDecisionUnknown, 55 | CYWebPolicyDecisionDownload, 56 | CYWebPolicyDecisionIgnore, 57 | CYWebPolicyDecisionUse, 58 | }; 59 | 60 | @protocol CyteWebViewDelegate 61 | @optional 62 | - (void) webView:(WebView *)view addMessageToConsole:(NSDictionary *)message; 63 | - (void) webView:(WebView *)view decidePolicyForNavigationAction:(NSDictionary *)action request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(id)listener; 64 | - (void) webView:(WebView *)view decidePolicyForNewWindowAction:(NSDictionary *)action request:(NSURLRequest *)request newFrameName:(NSString *)name decisionListener:(id)listener; 65 | - (void) webView:(WebView *)view didClearWindowObject:(WebScriptObject *)window forFrame:(WebFrame *)frame; 66 | - (void) webView:(WebView *)view didCommitLoadForFrame:(WebFrame *)frame; 67 | - (void) webView:(WebView *)view didDecidePolicy:(CYWebPolicyDecision)decision forNavigationAction:(NSDictionary *)action request:(NSURLRequest *)request frame:(WebFrame *)frame; 68 | - (void) webView:(WebView *)view didFailLoadWithError:(NSError *)error forFrame:(WebFrame *)frame; 69 | - (void) webView:(WebView *)view didFailProvisionalLoadWithError:(NSError *)error forFrame:(WebFrame *)frame; 70 | - (void) webView:(WebView *)view didFinishLoadForFrame:(WebFrame *)frame; 71 | - (void) webView:(WebView *)view didReceiveTitle:(NSString *)title forFrame:(WebFrame *)frame; 72 | - (void) webView:(WebView *)view didStartProvisionalLoadForFrame:(WebFrame *)frame; 73 | - (NSURLRequest *) webView:(WebView *)view resource:(id)resource willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response fromDataSource:(WebDataSource *)source; 74 | - (void) webViewClose:(WebView *)view; 75 | - (bool) webView:(WebView *)view shouldRunJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame; 76 | - (bool) webView:(WebView *)view shouldRunJavaScriptConfirmPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame; 77 | - (bool) webView:(WebView *)view shouldRunJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)text initiatedByFrame:(WebFrame *)frame; 78 | - (void) webViewUpdateViewSettings:(UIWebView *)view; 79 | @end 80 | 81 | @interface CyteWebView : UIWebView { 82 | } 83 | 84 | - (id) delegate; 85 | - (void) setDelegate:(id)delegate; 86 | 87 | - (void) dispatchEvent:(NSString *)event; 88 | - (void) reloadFromOrigin; 89 | - (UIScrollView *) scrollView; 90 | - (NSURLRequest *) request; 91 | 92 | @end 93 | 94 | #endif//CyteKit_CydiaBrowser_H 95 | -------------------------------------------------------------------------------- /CyteKit/WebViewController.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_WebViewController_H 41 | #define CyteKit_WebViewController_H 42 | 43 | #include "CyteKit/ViewController.h" 44 | #include "CyteKit/WebView.h" 45 | 46 | #include 47 | #include 48 | 49 | #include 50 | 51 | @class IndirectDelegate; 52 | 53 | @protocol CyteWebViewControllerDelegate 54 | - (void) retainNetworkActivityIndicator; 55 | - (void) releaseNetworkActivityIndicator; 56 | - (CyteViewController *) pageForURL:(NSURL *)url forExternal:(BOOL)external withReferrer:(NSString *)referrer; 57 | - (void) unloadData; 58 | @end 59 | 60 | @interface CyteWebViewController : CyteViewController < 61 | CyteWebViewDelegate, 62 | MFMailComposeViewControllerDelegate, 63 | UIWebViewDelegate 64 | > { 65 | _H webview_; 66 | _transient UIScrollView *scroller_; 67 | 68 | _H indicator_; 69 | _H indirect_; 70 | _H challenge_; 71 | 72 | bool error_; 73 | _H request_; 74 | bool ready_; 75 | 76 | _transient NSNumber *sensitive_; 77 | 78 | _H title_; 79 | _H loading_; 80 | 81 | _H registered_; 82 | _H timer_; 83 | 84 | // XXX: NSString * or UIImage * 85 | _H custom_; 86 | _H style_; 87 | 88 | _H function_; 89 | 90 | float width_; 91 | Class class_; 92 | 93 | _H reloaditem_; 94 | _H loadingitem_; 95 | 96 | bool visible_; 97 | bool hidesNavigationBar_; 98 | bool allowsNavigationAction_; 99 | } 100 | 101 | + (void) _initialize; 102 | 103 | - (CyteWebView *) webView; 104 | 105 | - (void) setRequest:(NSURLRequest *)request; 106 | - (void) setURL:(NSURL *)url; 107 | - (void) setURL:(NSURL *)url withReferrer:(NSString *)referrer; 108 | 109 | - (void) loadURL:(NSURL *)url cachePolicy:(NSURLRequestCachePolicy)policy; 110 | - (void) loadURL:(NSURL *)url; 111 | 112 | - (void) loadRequest:(NSURLRequest *)request; 113 | - (bool) isLoading; 114 | 115 | - (id) init; 116 | 117 | - (id) initWithURL:(NSURL *)url; 118 | - (id) initWithRequest:(NSURLRequest *)request; 119 | 120 | - (id) initWithWidth:(float)width; 121 | - (id) initWithWidth:(float)width ofClass:(Class)_class; 122 | 123 | - (void) callFunction:(WebScriptObject *)function; 124 | 125 | - (void) webView:(WebView *)view didClearWindowObject:(WebScriptObject *)window forFrame:(WebFrame *)frame; 126 | - (NSURLRequest *) webView:(WebView *)view resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response fromDataSource:(WebDataSource *)source; 127 | 128 | + (float) defaultWidth; 129 | 130 | - (void) setButtonImage:(NSString *)button withStyle:(NSString *)style toFunction:(id)function; 131 | - (void) setButtonTitle:(NSString *)button withStyle:(NSString *)style toFunction:(id)function; 132 | - (void) setHidesNavigationBar:(bool)value; 133 | 134 | - (void) alertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)button; 135 | - (void) customButtonClicked; 136 | 137 | - (void) applyRightButton; 138 | - (UIBarButtonItem *) customButton; 139 | - (UIBarButtonItem *) rightButton; 140 | 141 | - (void) applyLeftButton; 142 | - (UIBarButtonItem *) leftButton; 143 | 144 | - (void) removeButton; 145 | 146 | - (void) _didStartLoading; 147 | - (void) _didFinishLoading; 148 | 149 | - (void) close; 150 | 151 | - (void) dispatchEvent:(NSString *)event; 152 | 153 | - (void) setViewportWidthOnMainThread:(float)value; 154 | 155 | - (void) setScrollAlwaysBounceVertical:(bool)value; 156 | - (void) setScrollIndicatorStyle:(UIScrollViewIndicatorStyle)style; 157 | 158 | - (void) registerFrame:(WebFrame *)frame; 159 | 160 | @end 161 | 162 | #endif//CyteKit_WebViewController_H 163 | -------------------------------------------------------------------------------- /CyteKit/WebViewTableViewCell.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_WebViewTableViewCell_H 41 | #define CyteKit_WebViewTableViewCell_H 42 | 43 | #include 44 | 45 | #include "Menes/ObjectHandle.h" 46 | #include "CyteKit/WebView.h" 47 | 48 | @interface CyteWebViewTableViewCell : UITableViewCell < 49 | CyteWebViewDelegate 50 | > { 51 | // XXX: I'm not really the delegate here: fix this! 52 | _H webview_; 53 | } 54 | 55 | + (CyteWebViewTableViewCell *) cellWithRequest:(NSURLRequest *)request; 56 | - (id) initWithRequest:(NSURLRequest *)request; 57 | 58 | - (id) delegate; 59 | - (void) setDelegate:(id)delegate; 60 | 61 | @end 62 | 63 | #endif//CyteKit_WebViewTableViewCell_H 64 | -------------------------------------------------------------------------------- /CyteKit/WebViewTableViewCell.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "CyteKit/WebViewTableViewCell.h" 41 | #include "iPhonePrivate.h" 42 | 43 | @interface WebView (Apple) 44 | - (void) _setLayoutInterval:(float)interval; 45 | - (void) _setAllowsMessaging:(BOOL)allows; 46 | @end 47 | 48 | @implementation CyteWebViewTableViewCell 49 | 50 | + (CyteWebViewTableViewCell *) cellWithRequest:(NSURLRequest *)request { 51 | CyteWebViewTableViewCell *cell([[[self alloc] initWithRequest:request] autorelease]); 52 | return cell; 53 | } 54 | 55 | - (id) initWithRequest:request { 56 | if ((self = [super init]) != nil) { 57 | UIView *view(self); 58 | 59 | webview_ = [[[CyteWebView alloc] initWithFrame:[view bounds]] autorelease]; 60 | [webview_ setDelegate:self]; 61 | [view addSubview:webview_]; 62 | 63 | [webview_ setScalesPageToFit:YES]; 64 | 65 | UIWebDocumentView *document([webview_ _documentView]); 66 | WebView *webview([document webView]); 67 | [webview setShouldUpdateWhileOffscreen:NO]; 68 | 69 | if ([document respondsToSelector:@selector(setAllowsMessaging:)]) 70 | [document setAllowsMessaging:YES]; 71 | if ([webview respondsToSelector:@selector(_setAllowsMessaging:)]) 72 | [webview _setAllowsMessaging:YES]; 73 | 74 | UIScrollView *scroller([webview_ scrollView]); 75 | [scroller setScrollingEnabled:NO]; 76 | [scroller setFixedBackgroundPattern:YES]; 77 | [scroller setBackgroundColor:[UIColor clearColor]]; 78 | 79 | WebPreferences *preferences([webview preferences]); 80 | [preferences setCacheModel:WebCacheModelDocumentBrowser]; 81 | [preferences setJavaScriptCanOpenWindowsAutomatically:YES]; 82 | [preferences setOfflineWebApplicationCacheEnabled:YES]; 83 | 84 | [webview_ loadRequest:request]; 85 | 86 | [webview_ setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)]; 87 | } return self; 88 | } 89 | 90 | - (id) delegate { 91 | return [webview_ delegate]; 92 | } 93 | 94 | - (void) setDelegate:(id)delegate { 95 | [webview_ setDelegate:delegate]; 96 | } 97 | 98 | @end 99 | -------------------------------------------------------------------------------- /CyteKit/dispatchEvent.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_dispatchEvent_H 41 | #define CyteKit_dispatchEvent_H 42 | 43 | #include 44 | 45 | #include "iPhonePrivate.h" 46 | 47 | @interface UIWebDocumentView (CyteDispatchEvent) 48 | 49 | - (void) dispatchEvent:(NSString *)event; 50 | 51 | @end 52 | 53 | #endif//CyteKit_dispatchEvent_H 54 | -------------------------------------------------------------------------------- /CyteKit/dispatchEvent.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "CyteKit/dispatchEvent.h" 41 | #include "CyteKit/WebThreadLocked.hpp" 42 | 43 | #include 44 | 45 | #include 46 | #include 47 | #include 48 | 49 | #include 50 | 51 | #include 52 | 53 | @implementation UIWebDocumentView (CyteDispatchEvent) 54 | 55 | - (void) dispatchEvent:(NSString *)event { 56 | WebThreadLocked lock; 57 | 58 | NSString *script([NSString stringWithFormat:@ 59 | "(function() {" 60 | "var event = this.document.createEvent('Events');" 61 | "event.initEvent('%@', false, false);" 62 | "this.document.dispatchEvent(event);" 63 | "})();" 64 | , event]); 65 | 66 | NSMutableArray *frames([NSMutableArray arrayWithObjects: 67 | [[self webView] mainFrame] 68 | , nil]); 69 | 70 | while (WebFrame *frame = [frames lastObject]) { 71 | WebScriptObject *object([frame windowObject]); 72 | [object evaluateWebScript:script]; 73 | [frames removeLastObject]; 74 | [frames addObjectsFromArray:[frame childFrames]]; 75 | } 76 | } 77 | 78 | @end 79 | 80 | MSHook(void, UIWebBrowserView$_webTouchEventsRecognized$, UIWebBrowserView *self, SEL _cmd, UIWebTouchEventsGestureRecognizer *recognizer) { 81 | _UIWebBrowserView$_webTouchEventsRecognized$(self, _cmd, recognizer); 82 | 83 | switch ([recognizer type]) { 84 | case WebEventTouchEnd: 85 | [self dispatchEvent:@"CydiaTouchEnd"]; 86 | break; 87 | 88 | case WebEventTouchCancel: 89 | [self dispatchEvent:@"CydiaTouchCancel"]; 90 | break; 91 | } 92 | } 93 | 94 | __attribute__((__constructor__)) static void $() { 95 | if (Class $UIWebBrowserView = objc_getClass("UIWebBrowserView")) { 96 | if (Method method = class_getInstanceMethod($UIWebBrowserView, @selector(_webTouchEventsRecognized:))) { 97 | _UIWebBrowserView$_webTouchEventsRecognized$ = reinterpret_cast(method_getImplementation(method)); 98 | method_setImplementation(method, reinterpret_cast(&$UIWebBrowserView$_webTouchEventsRecognized$)); 99 | } 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /CyteKit/stringWithUTF8Bytes.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef CyteKit_stringWithUTF8Bytes_H 41 | #define CyteKit_stringWithUTF8Bytes_H 42 | 43 | #include 44 | 45 | @interface NSString (Cyte) 46 | + (NSString *) stringWithUTF8BytesNoCopy:(const char *)bytes length:(int)length; 47 | + (NSString *) stringWithUTF8Bytes:(const char *)bytes length:(int)length; 48 | @end 49 | 50 | #endif//CyteKit_stringWithUTF8Bytes_H 51 | -------------------------------------------------------------------------------- /CyteKit/stringWithUTF8Bytes.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "CyteKit/stringWithUTF8Bytes.h" 41 | 42 | @implementation NSString (Cyte) 43 | 44 | + (NSString *) stringWithUTF8BytesNoCopy:(const char *)bytes length:(int)length { 45 | return [[[NSString alloc] initWithBytesNoCopy:const_cast(bytes) length:length encoding:NSUTF8StringEncoding freeWhenDone:NO] autorelease]; 46 | } 47 | 48 | + (NSString *) stringWithUTF8Bytes:(const char *)bytes length:(int)length { 49 | return [[[NSString alloc] initWithBytes:bytes length:length encoding:NSUTF8StringEncoding] autorelease]; 50 | } 51 | 52 | @end 53 | -------------------------------------------------------------------------------- /Cytore.hpp: -------------------------------------------------------------------------------- 1 | // Copyright Notice (GNU Affero GPL) {{{ 2 | /* Cyndir - (Awesome) Memory Mapped Dictionary 3 | * Copyright (C) 2010 Jay Freeman (saurik) 4 | */ 5 | 6 | /* 7 | * This program is free software: you can redistribute it and/or modify 8 | * it under the terms of the GNU Affero General Public License as 9 | * published by the Free Software Foundation, either version 3 of the 10 | * License, or (at your option) any later version. 11 | * 12 | * This program is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | * GNU Affero General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Affero General Public License 18 | * along with this program. If not, see . 19 | */ 20 | // }}} 21 | 22 | #ifndef CYTORE_HPP 23 | #define CYTORE_HPP 24 | 25 | #include 26 | 27 | #include 28 | #include 29 | 30 | #include 31 | #include 32 | 33 | #include 34 | #include 35 | #include 36 | 37 | #define _assert(test) do \ 38 | if (!(test)) { \ 39 | fprintf(stderr, "_assert(%d:%s)@%s:%u[%s]\n", errno, #test, __FILE__, __LINE__, __FUNCTION__); \ 40 | exit(-1); \ 41 | } \ 42 | while (false) 43 | 44 | namespace Cytore { 45 | 46 | static const uint32_t Magic = 'cynd'; 47 | 48 | struct Header { 49 | uint32_t magic_; 50 | uint32_t version_; 51 | uint32_t size_; 52 | uint32_t reserved_; 53 | }; 54 | 55 | template 56 | class Offset { 57 | private: 58 | uint32_t offset_; 59 | 60 | public: 61 | Offset() : 62 | offset_(0) 63 | { 64 | } 65 | 66 | Offset(uint32_t offset) : 67 | offset_(offset) 68 | { 69 | } 70 | 71 | Offset &operator =(uint32_t offset) { 72 | offset_ = offset; 73 | return *this; 74 | } 75 | 76 | uint32_t GetOffset() const { 77 | return offset_; 78 | } 79 | 80 | bool IsNull() const { 81 | return offset_ == 0; 82 | } 83 | }; 84 | 85 | struct Block { 86 | Cytore::Offset reserved_; 87 | }; 88 | 89 | template 90 | static _finline Type_ Round(Type_ value, Type_ size) { 91 | Type_ mask(size - 1); 92 | return value + mask & ~mask; 93 | } 94 | 95 | template 96 | class File { 97 | private: 98 | static const unsigned Shift_ = 17; 99 | static const size_t Block_ = 1 << Shift_; 100 | static const size_t Mask_ = Block_ - 1; 101 | 102 | private: 103 | int file_; 104 | 105 | typedef std::vector BlockVector_; 106 | BlockVector_ blocks_; 107 | 108 | struct Mapping_ { 109 | uint8_t *data_; 110 | size_t size_; 111 | 112 | Mapping_(uint8_t *data, size_t size) : 113 | data_(data), 114 | size_(size) 115 | { 116 | } 117 | }; 118 | 119 | typedef std::vector MappingVector_; 120 | MappingVector_ maps_; 121 | 122 | Header &Header_() { 123 | return *reinterpret_cast
(blocks_[0]); 124 | } 125 | 126 | uint32_t &Size_() { 127 | return Header_().size_; 128 | } 129 | 130 | void Map_(size_t size) { 131 | size_t before(blocks_.size() * Block_); 132 | size_t extend(size - before); 133 | 134 | void *data(mmap(NULL, extend, PROT_READ | PROT_WRITE, MAP_FILE | MAP_SHARED, file_, before)); 135 | _assert(data != MAP_FAILED); 136 | uint8_t *bytes(reinterpret_cast(data)); 137 | 138 | maps_.push_back(Mapping_(bytes, extend)); 139 | for (size_t i(0); i != extend >> Shift_; ++i) 140 | blocks_.push_back(bytes + Block_ * i); 141 | } 142 | 143 | bool Truncate_(size_t capacity) { 144 | capacity = Round(capacity, Block_); 145 | 146 | int error(ftruncate(file_, capacity)); 147 | if (error != 0) 148 | return false; 149 | 150 | Map_(capacity); 151 | return true; 152 | } 153 | 154 | public: 155 | File() : 156 | file_(-1) 157 | { 158 | } 159 | 160 | File(const char *path) : 161 | file_(-1) 162 | { 163 | Open(path); 164 | } 165 | 166 | ~File() { 167 | for (typename MappingVector_::const_iterator map(maps_.begin()); map != maps_.end(); ++map) 168 | munmap(map->data_, map->size_); 169 | close(file_); 170 | } 171 | 172 | void Sync() { 173 | for (typename MappingVector_::const_iterator map(maps_.begin()); map != maps_.end(); ++map) 174 | msync(map->data_, map->size_, MS_SYNC); 175 | } 176 | 177 | size_t Capacity() const { 178 | return blocks_.size() * Block_; 179 | } 180 | 181 | void Open(const char *path) { 182 | _assert(file_ == -1); 183 | file_ = open(path, O_RDWR | O_CREAT | O_EXLOCK, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); 184 | _assert(file_ != -1); 185 | 186 | struct stat stat; 187 | _assert(fstat(file_, &stat) == 0); 188 | 189 | size_t core(sizeof(Header) + sizeof(Base_)); 190 | 191 | size_t size(stat.st_size); 192 | if (size == 0) { 193 | _assert(Truncate_(core)); 194 | Header_().magic_ = Magic; 195 | Size_() = core; 196 | } else { 197 | _assert(size >= core); 198 | // XXX: this involves an unneccessary call to ftruncate() 199 | _assert(Truncate_(size)); 200 | _assert(Header_().magic_ == Magic); 201 | _assert(Header_().version_ == 0); 202 | } 203 | } 204 | 205 | bool Reserve(size_t capacity) { 206 | if (capacity <= Capacity()) 207 | return true; 208 | 209 | uint8_t *block(blocks_.back()); 210 | blocks_.pop_back(); 211 | 212 | if (Truncate_(capacity)) 213 | return true; 214 | else { 215 | blocks_.push_back(block); 216 | return false; 217 | } 218 | } 219 | 220 | template 221 | Target_ &Get(uint32_t offset) { 222 | return *reinterpret_cast(offset == 0 ? NULL : blocks_[offset >> Shift_] + (offset & Mask_)); 223 | } 224 | 225 | template 226 | Target_ &Get(Offset &ref) { 227 | return Get(ref.GetOffset()); 228 | } 229 | 230 | Base_ *operator ->() { 231 | return &Get(sizeof(Header)); 232 | } 233 | 234 | template 235 | Offset New(size_t extra = 0) { 236 | size_t size(sizeof(Target_) + extra); 237 | size = Round(size, sizeof(uintptr_t)); 238 | 239 | uint32_t offset; 240 | if (!Reserve(Size_() + size)) 241 | offset = 0; 242 | else { 243 | offset = Size_(); 244 | Size_() += size; 245 | } 246 | 247 | return Offset(offset); 248 | } 249 | }; 250 | 251 | } 252 | 253 | #endif//CYTORE_HPP 254 | -------------------------------------------------------------------------------- /LaunchDaemons/com.saurik.Cydia.Startup.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Label 6 | com.saurik.Cydia.Startup 7 | Program 8 | /usr/libexec/cydia/startup 9 | RunAtLoad 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Library/asuser: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | version=$(sw_vers -productVersion) 4 | 5 | if [[ ${version} = 1.0* || ${version} = 1.1.[012] ]]; then 6 | user=root 7 | else 8 | user=mobile 9 | fi 10 | 11 | su -c "${user}" "$@" 12 | -------------------------------------------------------------------------------- /Library/finish.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | declare -a cydia 4 | cydia=($CYDIA) 5 | 6 | if [[ ${CYDIA+@} ]]; then 7 | eval "echo 'finish:$1' >&${cydia[0]}" 8 | fi 9 | -------------------------------------------------------------------------------- /Library/firmware.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | shopt -s extglob 6 | shopt -s nullglob 7 | 8 | version=$(sw_vers -productVersion) 9 | cpu=$(uname -p) 10 | 11 | if [[ ${cpu} == arm ]]; then 12 | data=/var/lib/dpkg 13 | model=hw.machine 14 | arch=iphoneos-arm 15 | else 16 | data=/Library/Cydia/dpkg 17 | model=hw.model 18 | arch=cydia 19 | fi 20 | 21 | model=$(sysctl -n "${model}") 22 | 23 | status=${data}/status 24 | 25 | function lower() { 26 | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/' 27 | } 28 | 29 | # Generate New Package {{{ 30 | function pseudo() { 31 | local package=$1 version=$2 description=$3 name=$4 32 | echo "/." >"${data}"/info/"${package}".list 33 | 34 | cat <&2 60 | 61 | if [[ ${line} == '' && "${blank+@}" ]]; then 62 | continue 63 | else 64 | unset blank 65 | fi 66 | 67 | if [[ ${line} == "Package: "@(firmware|gsc.*|cy+*) ]]; then 68 | firmware= 69 | elif [[ ${line} == '' ]]; then 70 | blank= 71 | fi 72 | 73 | if [[ "${firmware+@}" ]]; then 74 | if [[ "${blank+@}" ]]; then 75 | unset firmware 76 | fi 77 | continue 78 | fi 79 | 80 | #echo "${firmware+@}/${blank+@} ${line}" 1>&2 81 | echo "${line}" 82 | done <"${status}" 83 | 84 | #echo "#${firmware+@}/${blank+@} EOF" 1>&2 85 | if ! [[ "${blank+@}" || "${firmware+@}" ]]; then 86 | echo 87 | fi 88 | # }}} 89 | 90 | if [[ ${cpu} == arm ]]; then 91 | pseudo "firmware" "${version}" "almost impressive Apple frameworks" "iOS Firmware" 92 | 93 | while [[ 1 ]]; do 94 | gssc=$(gssc 2>&1) 95 | if [[ ${gssc} != *'(null)'* ]]; then 96 | break 97 | fi 98 | sleep 1 99 | done 100 | 101 | echo "${gssc}" | sed -re ' 102 | /^ [^ ]* = [0-9.]*;$/ ! d; 103 | s/^ ([^ ]*) = ([0-9.]*);$/\1 \2/; 104 | s/([A-Z])/-\L\1/g; s/^"([^ ]*)"/\1/; 105 | s/^-//; 106 | / 0$/ d; 107 | ' | while read -r name value; do case "${name}" in 108 | (ipad) for name in ipad wildcat; do 109 | pseudo "gsc.${name}" "${value}" "this device has a very large screen" "iPad" 110 | done;; 111 | 112 | (*) 113 | pseudo "gsc.${name}" "${value}" "virtual GraphicsServices dependency" 114 | ;; 115 | esac; done 116 | fi 117 | 118 | if [[ ${cpu} == arm ]]; then 119 | os=ios 120 | else 121 | os=macosx 122 | fi 123 | 124 | pseudo "cy+os.${os}" "${version}" "virtual operating system dependency" 125 | pseudo "cy+cpu.${cpu}" "0" "virtual CPU dependency" 126 | 127 | name=${model%%*([0-9]),*([0-9])} 128 | version=${model#${name}} 129 | name=$(lower <<<${name}) 130 | version=${version/,/.} 131 | pseudo "cy+model.${name}" "${version}" "virtual model dependency" 132 | 133 | pseudo "cy+kernel.$(lower <<<$(sysctl -n kern.ostype))" "$(sysctl -n kern.osrelease)" "virtual kernel dependency" 134 | 135 | pseudo "cy+lib.corefoundation" "$(/usr/libexec/cydia/cfversion)" "virtual corefoundation dependency" 136 | 137 | } >"${status}"_ 138 | 139 | mv -f "${status}"{_,} 140 | 141 | if [[ ${cpu} == arm ]]; then 142 | if [[ ! -h /User && -d /User ]]; then 143 | cp -afT /User /var/mobile 144 | fi && rm -rf /User && ln -s "/var/mobile" /User 145 | 146 | echo 6 >/var/lib/cydia/firmware.ver 147 | fi 148 | -------------------------------------------------------------------------------- /Library/free.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # /usr/bin \ 4 | 5 | for dir in \ 6 | /Applications \ 7 | /Library/Wallpaper \ 8 | /Library/Ringtones \ 9 | /usr/include \ 10 | /usr/lib/pam \ 11 | /usr/libexec \ 12 | /usr/share \ 13 | ; do 14 | . /usr/libexec/cydia/move.sh "$@" "${dir}" 15 | done 16 | 17 | sync 18 | -------------------------------------------------------------------------------- /Library/move.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | shopt -s extglob nullglob 4 | 5 | if [[ ${1:0:1} == - ]]; then 6 | v=$1 7 | shift 1 8 | else 9 | v= 10 | fi 11 | 12 | function df_() { 13 | free=$(df -B1 "$1") 14 | free=${free% *%*} 15 | free=${free%%*( )} 16 | free=${free##* } 17 | echo "${free}" 18 | } 19 | 20 | function mv_() { 21 | src=$1 22 | 23 | mkdir -p /var/stash 24 | dst=$(mktemp -d /var/stash/"${src##*/}".XXXXXX) 25 | 26 | if [[ -e ${src} ]]; then 27 | chmod --reference="${src}" "${dst}" 28 | chown --reference="${src}" "${dst}" 29 | 30 | cp -aT $v "${src}" "${dst}" || { 31 | rm -rf "${dst}" 32 | exit 1 33 | } 34 | 35 | rm -rf $v "${src}" 36 | else 37 | chmod 775 "${dst}" 38 | chown root.admin "${dst}" 39 | fi 40 | 41 | ln -s "${dst}" "${src}" 42 | } 43 | 44 | function shift_() { 45 | dir=${1%/} 46 | 47 | if [[ -d ${dir} && ! -h ${dir} ]]; then 48 | used=$(/usr/libexec/cydia/du -bs "${dir}") 49 | used=${used%%$'\t'*} 50 | free=$(df_ /var) 51 | 52 | if [[ $((used + 524288)) -lt ${free} ]]; then 53 | mv_ "${dir}" 54 | fi 55 | elif [[ ! -e ${dir} ]]; then 56 | rm -f "${dir}" 57 | mv_ "${dir}" 58 | fi 59 | } 60 | 61 | shift_ "$@" 62 | -------------------------------------------------------------------------------- /Library/space.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for dir in \ 4 | /Applications \ 5 | /Library/Ringtones \ 6 | /Library/Wallpaper \ 7 | /System/Library/Fonts \ 8 | /System/Library/TextInput \ 9 | /usr/share 10 | do 11 | . /usr/libexec/cydia/move.sh "$@" "${dir}" 12 | done 13 | -------------------------------------------------------------------------------- /Library/startup: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin 4 | 5 | if [[ ! -e /var/lib/cydia/firmware.ver ]]; then 6 | cache= 7 | fi 8 | 9 | /usr/libexec/cydia/firmware.sh 10 | 11 | debs=(/var/root/Media/Cydia/AutoInstall/*.deb) 12 | if [[ ${#debs[@]} -ne 0 && -f ${debs[0]} ]]; then 13 | dpkg -i "${debs[@]}" 2>/tmp/dpkg.log 1>&2 14 | rm -f "${debs[@]}" 15 | cache= 16 | 17 | killall -9 Lowtide AppleTV 18 | fi 19 | 20 | if [[ ${cache+@} ]]; then 21 | sbdidlaunch 22 | su -c uicache mobile 23 | fi 24 | -------------------------------------------------------------------------------- /Menes/Menes.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Menes_Menes_H 41 | #define Menes_Menes_H 42 | 43 | #include "Menes/ObjectHandle.h" 44 | 45 | #include "Menes/invocationWithSelector.h" 46 | #include "Menes/radixSortWithSelector.h" 47 | #include "Menes/yieldToSelector.h" 48 | 49 | #endif//Menes_Menes_H 50 | -------------------------------------------------------------------------------- /Menes/ObjectHandle.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Menes_ObjectHandle_H 41 | #define Menes_ObjectHandle_H 42 | 43 | #include "CyteKit/UCPlatform.h" 44 | 45 | #include 46 | #include 47 | 48 | template 49 | struct MenesObjectHandle_; 50 | 51 | template 52 | struct MenesObjectHandle_ { 53 | static _finline void Execute(Type_ *value) { 54 | } 55 | }; 56 | 57 | template 58 | struct MenesObjectHandle_ { 59 | static _finline void Execute(Type_ *value) { 60 | [value setDelegate:nil]; 61 | } 62 | }; 63 | 64 | template 65 | struct MenesObjectHandle_ { 66 | static _finline void Execute(Type_ *value) { 67 | [value setDelegate:nil]; 68 | [value setDataSource:nil]; 69 | } 70 | }; 71 | 72 | template 73 | class MenesObjectHandle { 74 | private: 75 | Type_ *value_; 76 | 77 | _finline void Retain_() { 78 | if (value_ != nil) 79 | CFRetain((CFTypeRef) value_); 80 | } 81 | 82 | _finline void Release_(Type_ *value) { 83 | if (value != nil) { 84 | MenesObjectHandle_::Execute(value); 85 | CFRelease((CFTypeRef) value); 86 | } 87 | } 88 | 89 | public: 90 | _finline MenesObjectHandle(const MenesObjectHandle &rhs) : 91 | value_(rhs.value_ == nil ? nil : (Type_ *) CFRetain((CFTypeRef) rhs.value_)) 92 | { 93 | } 94 | 95 | _finline MenesObjectHandle(Type_ *value = NULL, bool mended = false) : 96 | value_(value) 97 | { 98 | if (!mended) 99 | Retain_(); 100 | } 101 | 102 | _finline ~MenesObjectHandle() { 103 | Release_(value_); 104 | } 105 | 106 | _finline operator Type_ *() const { 107 | return value_; 108 | } 109 | 110 | _finline Type_ *operator ->() const { 111 | return value_; 112 | } 113 | 114 | _finline MenesObjectHandle &operator =(Type_ *value) { 115 | if (value_ != value) { 116 | Type_ *old(value_); 117 | value_ = value; 118 | Retain_(); 119 | Release_(old); 120 | } return *this; 121 | } 122 | 123 | _finline MenesObjectHandle &operator =(const MenesObjectHandle &value) { 124 | return this->operator =(value.operator Type_ *()); 125 | } 126 | }; 127 | 128 | #define _H MenesObjectHandle 129 | 130 | #define rproperty_(Class, field) \ 131 | - (typeof(((Class*)nil)->_##field.operator->())) field { \ 132 | return _##field; \ 133 | } 134 | 135 | #define wproperty_(Class, field, Field) \ 136 | - (void) set##Field:(typeof(((Class*)nil)->_##field.operator->()))field { \ 137 | _##field = field; \ 138 | } 139 | 140 | #define roproperty(Class, field) \ 141 | @implementation Class (Menes_##field) \ 142 | rproperty_(Class, field) \ 143 | @end 144 | 145 | #define rwproperty(Class, field, Field) \ 146 | @implementation Class (Menes_##field) \ 147 | rproperty_(Class, field) \ 148 | wproperty_(Class, field, Field) \ 149 | @end 150 | 151 | #endif//Menes_ObjectHandle_H 152 | -------------------------------------------------------------------------------- /Menes/invocationWithSelector.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Menes_invocationWithSelector_H 41 | #define Menes_invocationWithSelector_H 42 | 43 | #include 44 | 45 | @interface NSInvocation (MenesInvocationWithSelector) 46 | + (NSInvocation *) invocationWithSelector:(SEL)selector forTarget:(id)target; 47 | @end 48 | 49 | #endif//Menes_invocationWithSelector_H 50 | -------------------------------------------------------------------------------- /Menes/invocationWithSelector.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "Menes/invocationWithSelector.h" 41 | 42 | @implementation NSInvocation (MenesInvocationWithSelector) 43 | 44 | + (NSInvocation *) invocationWithSelector:(SEL)selector forTarget:(id)target { 45 | NSInvocation *invocation([NSInvocation invocationWithMethodSignature:[target methodSignatureForSelector:selector]]); 46 | [invocation setTarget:target]; 47 | [invocation setSelector:selector]; 48 | return invocation; 49 | } 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /Menes/radixSortWithSelector.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Menes_radixSort_H 41 | #define Menes_radixSort_H 42 | 43 | #include 44 | 45 | typedef uint32_t (*MenesRadixSortFunction)(id, void *); 46 | 47 | @interface NSMutableArray (MenesRadixSortWithSelector) 48 | - (void) radixSortUsingFunction:(MenesRadixSortFunction)function withContext:(void *)argument; 49 | - (void) radixSortUsingSelector:(SEL)selector; 50 | @end 51 | 52 | #endif//Menes_radixSort_H 53 | -------------------------------------------------------------------------------- /Menes/radixSortWithSelector.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "CyteKit/UCPlatform.h" 41 | 42 | #include "Menes/radixSortWithSelector.h" 43 | 44 | #include 45 | 46 | struct RadixItem_ { 47 | size_t index; 48 | uint32_t key; 49 | }; 50 | 51 | @implementation NSMutableArray (MenesRadixSortWithSelector) 52 | 53 | - (void) radixSortUsingFunction:(MenesRadixSortFunction)function withContext:(void *)argument { 54 | size_t count([self count]); 55 | struct RadixItem_ *swap(new RadixItem_[count * 2]); 56 | 57 | for (size_t i(0); i != count; ++i) { 58 | RadixItem_ &item(swap[i]); 59 | item.index = i; 60 | 61 | id object([self objectAtIndex:i]); 62 | item.key = function(object, argument); 63 | } 64 | 65 | struct RadixItem_ *lhs(swap), *rhs(swap + count); 66 | 67 | static const size_t width = 32; 68 | static const size_t bits = 11; 69 | static const size_t slots = 1 << bits; 70 | static const size_t passes = (width + (bits - 1)) / bits; 71 | 72 | size_t *hist(new size_t[slots]); 73 | 74 | for (size_t pass(0); pass != passes; ++pass) { 75 | memset(hist, 0, sizeof(size_t) * slots); 76 | 77 | for (size_t i(0); i != count; ++i) { 78 | uint32_t key(lhs[i].key); 79 | key >>= pass * bits; 80 | key &= _not(uint32_t) >> width - bits; 81 | ++hist[key]; 82 | } 83 | 84 | size_t offset(0); 85 | for (size_t i(0); i != slots; ++i) { 86 | size_t local(offset); 87 | offset += hist[i]; 88 | hist[i] = local; 89 | } 90 | 91 | for (size_t i(0); i != count; ++i) { 92 | uint32_t key(lhs[i].key); 93 | key >>= pass * bits; 94 | key &= _not(uint32_t) >> width - bits; 95 | rhs[hist[key]++] = lhs[i]; 96 | } 97 | 98 | RadixItem_ *tmp(lhs); 99 | lhs = rhs; 100 | rhs = tmp; 101 | } 102 | 103 | delete [] hist; 104 | 105 | const void **values(new const void *[count]); 106 | for (size_t i(0); i != count; ++i) 107 | values[i] = [self objectAtIndex:lhs[i].index]; 108 | CFArrayReplaceValues((CFMutableArrayRef) self, CFRangeMake(0, count), values, count); 109 | delete [] values; 110 | 111 | delete [] swap; 112 | } 113 | 114 | - (void) radixSortUsingSelector:(SEL)selector { 115 | if ([self count] == 0) 116 | return; 117 | 118 | IMP imp(class_getMethodImplementation([[self lastObject] class], selector)); 119 | [self radixSortUsingFunction:reinterpret_cast(imp) withContext:selector]; 120 | } 121 | 122 | @end 123 | -------------------------------------------------------------------------------- /Menes/yieldToSelector.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Menes_yieldToSelector_H 41 | #define Menes_yieldToSelector_H 42 | 43 | #include 44 | 45 | @interface NSObject (MenesYieldToSelector) 46 | - (id) yieldToSelector:(SEL)selector withObject:(id)object; 47 | - (id) yieldToSelector:(SEL)selector; 48 | @end 49 | 50 | #endif//Menes_yieldToSelector_H 51 | -------------------------------------------------------------------------------- /Menes/yieldToSelector.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include "Menes/yieldToSelector.h" 41 | 42 | @implementation NSObject (MenesYieldToSelector) 43 | 44 | - (void) doNothing { 45 | } 46 | 47 | - (void) _yieldToContext:(NSMutableArray *)context { 48 | NSAutoreleasePool *pool([[NSAutoreleasePool alloc] init]); 49 | 50 | SEL selector(reinterpret_cast([[context objectAtIndex:0] pointerValue])); 51 | id object([[context objectAtIndex:1] nonretainedObjectValue]); 52 | volatile bool &stopped(*reinterpret_cast([[context objectAtIndex:2] pointerValue])); 53 | 54 | /* XXX: deal with exceptions */ 55 | id value([self performSelector:selector withObject:object]); 56 | 57 | NSMethodSignature *signature([self methodSignatureForSelector:selector]); 58 | [context removeAllObjects]; 59 | if ([signature methodReturnLength] != 0 && value != nil) 60 | [context addObject:value]; 61 | 62 | stopped = true; 63 | 64 | [self 65 | performSelectorOnMainThread:@selector(doNothing) 66 | withObject:nil 67 | waitUntilDone:NO 68 | ]; 69 | 70 | [pool release]; 71 | } 72 | 73 | - (id) yieldToSelector:(SEL)selector withObject:(id)object { 74 | volatile bool stopped(false); 75 | 76 | NSMutableArray *context([NSMutableArray arrayWithObjects: 77 | [NSValue valueWithPointer:selector], 78 | [NSValue valueWithNonretainedObject:object], 79 | [NSValue valueWithPointer:const_cast(&stopped)], 80 | nil]); 81 | 82 | NSThread *thread([[[NSThread alloc] 83 | initWithTarget:self 84 | selector:@selector(_yieldToContext:) 85 | object:context 86 | ] autorelease]); 87 | 88 | [thread start]; 89 | 90 | NSRunLoop *loop([NSRunLoop currentRunLoop]); 91 | NSDate *future([NSDate distantFuture]); 92 | NSString *mode([loop currentMode] ?: NSDefaultRunLoopMode); 93 | 94 | while (!stopped && [loop runMode:mode beforeDate:future]); 95 | 96 | return [context count] == 0 ? nil : [context objectAtIndex:0]; 97 | } 98 | 99 | - (id) yieldToSelector:(SEL)selector { 100 | return [self yieldToSelector:selector withObject:nil]; 101 | } 102 | 103 | @end 104 | -------------------------------------------------------------------------------- /MobileCydia.app/Cydia: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | C=/${0} 3 | C=${C%/*} 4 | declare -a flags 5 | [[ :${DYLD_INSERT_LIBRARIES}: == */MobileSubstrate.dylib: ]] && flags[${#flags[@]}]=--substrate 6 | exec "${C:-.}"/MobileCydia "${flags[@]}" -- "$@" 2>>/tmp/cydia.log 7 | -------------------------------------------------------------------------------- /MobileCydia.app/Default-Landscape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Default-Landscape.png -------------------------------------------------------------------------------- /MobileCydia.app/Default-Portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Default-Portrait.png -------------------------------------------------------------------------------- /MobileCydia.app/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Default.png -------------------------------------------------------------------------------- /MobileCydia.app/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Default@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/English.lproj/Sections_.strings: -------------------------------------------------------------------------------- 1 | "Administration" = ""; 2 | "App Addons" = ""; 3 | "Archiving" = ""; 4 | "Battery" = ""; 5 | "Carrier Bundles" = ""; 6 | "Carriers" = ""; 7 | "Complete" = ""; 8 | "Data Storage" = ""; 9 | "Development" = ""; 10 | "Dialer" = ""; 11 | "Dictionaries" = ""; 12 | "Dock" = ""; 13 | "eBooks" = ""; 14 | "Education" = ""; 15 | "Emulation" = ""; 16 | "Entertainment" = ""; 17 | "Games" = ""; 18 | "Icy" = ""; 19 | "Java" = ""; 20 | "Keyboards" = ""; 21 | "Localization" = ""; 22 | "LockScreen" = ""; 23 | "Messaging" = ""; 24 | "Multimedia" = ""; 25 | "Networking" = ""; 26 | "Notifications" = ""; 27 | "Packaging" = ""; 28 | "Productivity" = ""; 29 | "Repositories" = ""; 30 | "Ringtones" = ""; 31 | "Scripting" = ""; 32 | "Security" = ""; 33 | "Sliders" = ""; 34 | "SMS" = ""; 35 | "System" = ""; 36 | "Terminal Support" = ""; 37 | "Text Editors" = ""; 38 | "Themes" = ""; 39 | "Toys" = ""; 40 | "Tweaks" = ""; 41 | "Utilities" = ""; 42 | "Wallpaper" = ""; 43 | "Weather" = ""; 44 | "WebClips" = ""; 45 | "Widgets" = ""; 46 | -------------------------------------------------------------------------------- /MobileCydia.app/French.lproj/Sections.strings: -------------------------------------------------------------------------------- 1 | "Administration" = "Administration"; 2 | "App Addons" = "Ajouts aux applications"; 3 | "Archiving" = "Archivage"; 4 | "Battery" = "Batterie"; 5 | "Carrier Bundles" = "Opérateurs"; 6 | "Carriers" = "Opérateurs"; 7 | "Complete" = "Terminé"; 8 | "Data Storage" = "Archivage de données"; 9 | "Development" = "Développement"; 10 | "Dialer" = "Numéroteur"; 11 | "Dictionaries" = "Dictionnaires"; 12 | "Dock" = "Dock"; 13 | "eBooks" = "eLivres"; 14 | "Education" = "Éducation"; 15 | "Emulation" = "Émulation"; 16 | "Entertainment" = "Divertissement"; 17 | "Games" = "Jeux"; 18 | "Icy" = "Icy"; 19 | "Java" = "Java"; 20 | "Keyboards" = "Claviers"; 21 | "Localization" = "Localisation"; 22 | "LockScreen" = "Écran de verrouillage"; 23 | "Messaging" = "Messagerie"; 24 | "Multimedia" = "Multimédia"; 25 | "Networking" = "Réseau"; 26 | "Notifications" = "Notifications"; 27 | "Packaging" = "Enpaquetage"; 28 | "Productivity" = "Productivité"; 29 | "Repositories" = "Sources"; 30 | "Ringtones" = "Sonneries"; 31 | "Scripting" = "Scripts"; 32 | "Security" = "Sécurité"; 33 | "Sliders" = "Sliders"; 34 | "SMS" = "SMS"; 35 | "System" = "Système"; 36 | "Terminal Support" = "Aide au terminal"; 37 | "Text Editors" = "Éditeurs de texte"; 38 | "Themes" = "Thèmes"; 39 | "Toys" = "Jouets"; 40 | "Tweaks" = "Modifications"; 41 | "Utilities" = "Utilitaires"; 42 | "Wallpaper" = "Fonds d'écran"; 43 | "Weather" = "Météo"; 44 | "WebClips" = "WebClips"; 45 | "Widgets" = "Widgets"; 46 | -------------------------------------------------------------------------------- /MobileCydia.app/German.lproj/Sections.strings: -------------------------------------------------------------------------------- 1 | "Addons" = "Erweiterungen"; 2 | "Administration" = "Verwaltung"; 3 | "Adult" = "Ab 18"; 4 | "App Addons" = "Programm-Erweiterugen"; 5 | "Archiving" = "Archivierung"; 6 | "Battery" = "Batterie"; 7 | "Carrier Bundles" = "Telefongesellschaft-Pakete"; 8 | "Carriers" = "Telefongesellschaften"; 9 | "Complete" = "Vollständig"; 10 | "Data Storage" = "Speicherplatzverwaltung"; 11 | "Development" = "Entwicklung"; 12 | "Dialer" = "Wählhilfen"; 13 | "Dictionaries" = "Wörterbücher"; 14 | "Dock" = "Dock"; 15 | "eBooks" = "eBooks"; 16 | "Education" = "Bildung"; 17 | "Emulation" = "Emulation"; 18 | "Entertainment" = "Unterhaltung"; 19 | "Games" = "Spiele"; 20 | "Icy" = "Icy"; 21 | "Java" = "Java"; 22 | "Keyboards" = "Tastaturen"; 23 | "Localization" = "Lokalisierung"; 24 | "LockScreen" = "Lockscreen"; 25 | "Messaging" = "Nachrichtendienste"; 26 | "Multimedia" = "Multimedia"; 27 | "Networking" = "Netzwerk"; 28 | "Notifications" = "Mitteilugen"; 29 | "Packaging" = "Paketverwaltung"; 30 | "Productivity" = "Produktivität / Kreativität"; 31 | "Repositories" = "Quellen"; 32 | "Ringtones" = "Klingeltöne"; 33 | "Scripting" = "Skriptsprachen"; 34 | "Security" = "Sicherheit"; 35 | "Sliders" = "Slider"; 36 | "SMS" = "SMS"; 37 | "Social" = "Soziale Netze"; 38 | "System" = "System"; 39 | "Terminal Support" = "Konsolen-Support"; 40 | "Text Editors" = "Texteditoren"; 41 | "Themes" = "Themes"; 42 | "Toys" = "Spielereien"; 43 | "Tweaks" = "Tweaks / Tuning"; 44 | "Utilities" = "Dienstprogramme"; 45 | "Videos" = "Videos"; 46 | "Wallpaper" = "Hintergrundbilder"; 47 | "Weather" = "Wetter"; 48 | "WebClips" = "Web-Schnipsel"; 49 | "Widgets" = "Widgets"; 50 | -------------------------------------------------------------------------------- /MobileCydia.app/Icon-Small-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Icon-Small-50.png -------------------------------------------------------------------------------- /MobileCydia.app/Icon-Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Icon-Small.png -------------------------------------------------------------------------------- /MobileCydia.app/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Icon-Small@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | CFBundleDevelopmentRegion 7 | en 8 | 9 | CFBundleExecutable 10 | Cydia 11 | 12 | CFBundleIdentifier 13 | com.saurik.Cydia 14 | 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | 18 | CFBundleName 19 | Cydia 20 | 21 | CFBundlePackageType 22 | APPL 23 | 24 | CFBundleShortVersionString 25 | 0.9 26 | 27 | CFBundleSignature 28 | ???? 29 | 30 | CFBundleVersion 31 | 0.9 32 | 33 | SBUsesNetwork 34 | 11 35 | 36 | CFBundleURLTypes 37 | 38 | 39 | CFBundleURLName 40 | Cydia Internal URL 41 | CFBundleURLSchemes 42 | 43 | cydia 44 | 45 | 46 | 47 | 48 | DTSDKName 49 | iphoneos2.0.saurik 50 | 51 | MinimumOSVersion 52 | 2.0 53 | 54 | UIDeviceFamily 55 | 56 | 1 57 | 2 58 | 59 | 60 | UISupportedInterfaceOrientations 61 | 62 | UIInterfaceOrientationPortrait 63 | 64 | 65 | UISupportedInterfaceOrientations~ipad 66 | 67 | UIInterfaceOrientationPortrait 68 | UIInterfaceOrientationPortraitUpsideDown 69 | UIInterfaceOrientationLandscapeLeft 70 | UIInterfaceOrientationLandscapeRight 71 | 72 | 73 | CFBundleIconFile 74 | iconClassic.png 75 | 76 | CFBundleIconFiles 77 | 78 | icon.png 79 | icon-72.png 80 | icon@2x.png 81 | Icon-Small.png 82 | Icon-Small-50.png 83 | Icon-Small@2x.png 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 102 | 103 | UIApplicationExitsOnSuspend 104 | 105 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /MobileCydia.app/Purposes/commercial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Purposes/commercial.png -------------------------------------------------------------------------------- /MobileCydia.app/Purposes/console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Purposes/console.png -------------------------------------------------------------------------------- /MobileCydia.app/Purposes/daemon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Purposes/daemon.png -------------------------------------------------------------------------------- /MobileCydia.app/Purposes/extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Purposes/extension.png -------------------------------------------------------------------------------- /MobileCydia.app/Purposes/library.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Purposes/library.png -------------------------------------------------------------------------------- /MobileCydia.app/Purposes/uikit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Purposes/uikit.png -------------------------------------------------------------------------------- /MobileCydia.app/Purposes/x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Purposes/x.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Hunspell Dictionaries 7 | Dictionaries 8 | 9 | Utility 10 | Utilities 11 | 12 | Themes (Springboard) 13 | Themes (SpringBoard) 14 | 15 | Themes (SummerBoard) 16 | Themes (SpringBoard) 17 | 18 | Themes (Systen) 19 | Themes (System) 20 | 21 | Intelliborn 22 | Utilities 23 | 24 | SMS 25 | Messaging 26 | 27 | CarrierBundle 28 | Carrier Bundles 29 | 30 | Messages 31 | Messaging 32 | 33 | Themes (Locksceen) 34 | Themes (LockScreen) 35 | 36 | Themes (Lockscree) 37 | Themes (LockScreen) 38 | 39 | Themes (Losckscreen) 40 | Themes (LockScreen) 41 | 42 | Themes (Video) 43 | Themes (Apps) 44 | 45 | Utilites 46 | Utilities 47 | 48 | Themes (Lockscreen) 49 | Themes (LockScreen) 50 | 51 | Themes (Complet) 52 | Themes (Complete) 53 | 54 | Themes (Widgets) 55 | Themes (Addons) 56 | 57 | Wallpapers 58 | Wallpaper 59 | 60 | Messageing 61 | Messaging 62 | 63 | Network 64 | Networking 65 | 66 | Ringtone 67 | Ringtones 68 | 69 | Tweak 70 | Tweaks 71 | 72 | Tweaks 2.0 73 | Tweaks 74 | 75 | Tweaks 2.1 76 | Tweaks 77 | 78 | Tweaks 2.2 79 | Tweaks 80 | 81 | Tweaks 3.0 82 | Tweaks 83 | 84 | SBSettings Addons 85 | Addons (SBSettings) 86 | 87 | LockInfo Addons 88 | Addons (LockInfo) 89 | 90 | App Addons 91 | Addons 92 | 93 | App Addons (Iconoclasm) 94 | Addons (Iconoclasm) 95 | 96 | App Addons (OpenNotifier) 97 | Addons (OpenNotifier) 98 | 99 | BossPaper Addons 100 | Addons (BossPaper) 101 | 102 | Lockinfo Addons 103 | Addons (LockInfo) 104 | 105 | Dictionaries (Hunspell) 106 | Dictionaries 107 | 108 | Addons (Bootlogo) 109 | Addons (BootLogo) 110 | 111 | Addons (BootLogos) 112 | Addons (BootLogo) 113 | 114 | Addons (BootLogo 115 | Addons (BootLogo) 116 | 117 | eBooks 118 | Books 119 | 120 | Themes (WinterBoard) 121 | Themes 122 | 123 | Themes (Weather) 124 | Themes (Apps) 125 | 126 | Themes (Videos) 127 | Themes (Apps) 128 | 129 | Themes (SMS) 130 | Themes (Apps) 131 | 132 | Themes (iPad) 133 | Themes 134 | 135 | Themes (Dock) 136 | Themes (SpringBoard) 137 | 138 | Themes (Icy) 139 | Themes (Apps) 140 | 141 | Themes (Dialer) 142 | Themes (Apps) 143 | 144 | Themes (Battery) 145 | Themes (LockScreen) 146 | 147 | Themes (SYSTEM) 148 | Themes (System) 149 | 150 | WebApps 151 | Site-Specific Apps 152 | 153 | FontSwap 154 | Addons (FontSwap) 155 | 156 | Cydgets (Lock) 157 | Addons (Cydget) 158 | 159 | Themes (App Addons) 160 | Themes (Addons) 161 | 162 | 163 | 164 | -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Addons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Addons.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Administration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Administration.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Archiving.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Archiving.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Blanks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Blanks.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Books.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Books.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Carrier_Bundles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Carrier_Bundles.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Communication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Communication.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Data_Storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Data_Storage.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Development.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Development.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Dictionaries.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Dictionaries.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Education.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Education.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Entertainment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Entertainment.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Fonts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Fonts.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Games.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Games.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Health_and_Fitness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Health_and_Fitness.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Imaging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Imaging.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Java.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Java.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Keyboards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Keyboards.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Localization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Localization.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Messaging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Messaging.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Multimedia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Multimedia.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Navigation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Navigation.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Networking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Networking.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Packaging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Packaging.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Productivity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Productivity.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Repositories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Repositories.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Ringtones.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Ringtones.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Scripting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Scripting.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Security.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Site-Specific_Apps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Site-Specific_Apps.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Social.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Soundboards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Soundboards.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/System.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/System.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Terminal_Support.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Terminal_Support.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Text_Editors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Text_Editors.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Themes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Themes.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Toys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Toys.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Tweaks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Tweaks.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Utilities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Utilities.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Wallpaper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Wallpaper.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/WebClips.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/WebClips.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/Widgets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/Widgets.png -------------------------------------------------------------------------------- /MobileCydia.app/Sections/X_Window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/Sections/X_Window.png -------------------------------------------------------------------------------- /MobileCydia.app/changes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/changes.png -------------------------------------------------------------------------------- /MobileCydia.app/changes@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/changes@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/chevron@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/chevron@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/compose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/compose.png -------------------------------------------------------------------------------- /MobileCydia.app/configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/configure.png -------------------------------------------------------------------------------- /MobileCydia.app/el.lproj/Sections.strings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Addons 6 | Προσθήκες 7 | Administration 8 | Διαχείριση 9 | App Addons 10 | Προσθήκες εφαρμογών 11 | Archiving 12 | Συμπίεση 13 | Battery 14 | Μπαταρία 15 | Books 16 | Βιβλία 17 | Carrier Bundles 18 | Πακέτα Παρόχων 19 | Carriers 20 | Πάροχοι 21 | Complete 22 | Ολοκληρωμένα 23 | Data Storage 24 | Αποθήκευση δεδομένων 25 | Development 26 | Ανάπτυξη εφαρμογών 27 | Dialer 28 | Dialer 29 | Dictionaries 30 | Λεξικά 31 | Dock 32 | Dock 33 | Education 34 | Εκπαίδευση 35 | Emulation 36 | Εξομοίωση 37 | Entertainment 38 | Διασκέδαση 39 | Fonts 40 | Γραμματοσειρές 41 | Games 42 | Παιχνίδια 43 | Icy 44 | Icy 45 | Java 46 | Java 47 | Keyboards 48 | Πληκτρολόγια 49 | Localization 50 | Τοπικές ρυθμίσεις 51 | LockScreen 52 | Οθόνη Κλειδώματος 53 | Messaging 54 | Μηνύματα 55 | Multimedia 56 | Πολυμέσα 57 | Navigation 58 | Πλοήγηση 59 | Networking 60 | Δικτύωση 61 | Notifications 62 | Ειδοποιήσεις 63 | Packaging 64 | Packaging 65 | Productivity 66 | Δημιουργικότητα 67 | Repositories 68 | Repositories 69 | Ringtones 70 | Ήχοι κλήσης 71 | SMS 72 | SMS 73 | Scripting 74 | Scripting 75 | Security 76 | Ασφάλεια 77 | Sliders 78 | Sliders 79 | Social 80 | Κοινωνικά 81 | System 82 | Σύστημα 83 | Terminal Support 84 | Υποστήριξη Τερματικού 85 | Text Editors 86 | Επεξεργαστές Κειμένου 87 | Themes 88 | Θέματα 89 | Toys 90 | Παιχνιδάκια 91 | Tweaks 92 | Βελτιώσεις 93 | Utilities 94 | Εργαλεία 95 | Wallpaper 96 | Ταπετσαρία 97 | Weather 98 | Καιρός 99 | WebClips 100 | WebClips 101 | Widgets 102 | Widgets 103 | eBooks 104 | eBooks 105 | 106 | 107 | -------------------------------------------------------------------------------- /MobileCydia.app/error.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 38 |
39 | 40 |
41 | 42 |
()
45 | 46 |
47 | -------------------------------------------------------------------------------- /MobileCydia.app/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/folder.png -------------------------------------------------------------------------------- /MobileCydia.app/folder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/folder@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/home-Selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/home-Selected.png -------------------------------------------------------------------------------- /MobileCydia.app/home-Selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/home-Selected@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/home.png -------------------------------------------------------------------------------- /MobileCydia.app/home@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/home@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/icon-72.png -------------------------------------------------------------------------------- /MobileCydia.app/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/icon.png -------------------------------------------------------------------------------- /MobileCydia.app/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/icon@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/iconClassic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/iconClassic.png -------------------------------------------------------------------------------- /MobileCydia.app/install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/install.png -------------------------------------------------------------------------------- /MobileCydia.app/install@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/install@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/installed.png -------------------------------------------------------------------------------- /MobileCydia.app/installed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/installed@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/installing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/installing.png -------------------------------------------------------------------------------- /MobileCydia.app/localize.js: -------------------------------------------------------------------------------- 1 | document.addEventListener("DOMContentLoaded", function () { 2 | var results = document.evaluate("//*[@localize]", document, null, XPathResult.ANY_TYPE, null); 3 | var result, nodes = []; 4 | while (result = results.iterateNext()) 5 | nodes.push(result); 6 | for (var index in nodes) { 7 | var node = nodes[index]; 8 | var key = node.getAttribute('localize'); 9 | var value = cydia.localize(key, node.innerHTML); 10 | if (node.nodeName == 'TITLE') 11 | document.title = value; 12 | else 13 | node.innerHTML = value; 14 | } 15 | }); 16 | -------------------------------------------------------------------------------- /MobileCydia.app/manage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 69 | 100 | -------------------------------------------------------------------------------- /MobileCydia.app/manage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/manage.png -------------------------------------------------------------------------------- /MobileCydia.app/manage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/manage@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/packages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/packages.png -------------------------------------------------------------------------------- /MobileCydia.app/reload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/reload.png -------------------------------------------------------------------------------- /MobileCydia.app/removing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/removing.png -------------------------------------------------------------------------------- /MobileCydia.app/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/search.png -------------------------------------------------------------------------------- /MobileCydia.app/search@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/search@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/source.png -------------------------------------------------------------------------------- /MobileCydia.app/source@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/source@2x.png -------------------------------------------------------------------------------- /MobileCydia.app/sources.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/sources.png -------------------------------------------------------------------------------- /MobileCydia.app/storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/storage.png -------------------------------------------------------------------------------- /MobileCydia.app/unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/MobileCydia.app/unknown.png -------------------------------------------------------------------------------- /MobileCydia.app/zh_CN.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "ABOUT" = "关于"; 2 | "ABOUT_CYDIA" = "关于 Cydia Installer"; 3 | "ACCEPT_NEW_COPY" = "接受新的副本"; 4 | "ADD" = "添加"; 5 | "ADD_ANYWAY" = "仍然添加"; 6 | "ADD_SOURCE" = "添加源"; 7 | "ADMINISTRATIVE_INFORMATION" = "管理信息"; 8 | "ADVANCED_SEARCH" = "高级搜索"; 9 | "ALL_PACKAGES" = "全部软件包"; 10 | "APPLE" = "Apple"; 11 | "AUTHOR" = "作者"; 12 | "AVAILABLE_UPGRADES" = "可用更新"; 13 | "BROWSER" = "浏览器"; 14 | "BY" = "by: %@"; 15 | "CANCEL" = "取消"; 16 | "CANCEL_CLEAR" = "取消并清除"; 17 | "CANCEL_OPERATION" = "取消操作"; 18 | "CANNOT_COMPLY" = "无法执行"; 19 | "CANNOT_COMPLY_EX" = "因所依赖的软件包未找到或存在冲突软件包,操作无法完成。"; 20 | "CANNOT_LOCATE_PACKAGE" = "找不到软件包"; 21 | "CHANGES" = "变更"; 22 | "CHANGE_PACKAGE_SETTINGS" = "更改软件包设置"; 23 | "CLEAN_ARCHIVES" = "清除存档"; 24 | "CLEAR" = "清除"; 25 | "CLOSE" = "关闭"; 26 | "CLOSE_CYDIA" = "关闭 Cydia"; 27 | "COLON_DELIMITED" = "%@:%@"; 28 | "COMING_SOON" = "即将推出!"; 29 | "COMMA_DELIMITED" = "%@,%@"; 30 | "COMMERCIAL_APPLICATIONS" = "商业软件"; 31 | "COMPLETE" = "完成"; 32 | "COMPLETE_UPGRADE" = "全部更新"; 33 | "CONFIGURATION_UPGRADE" = "更新设置"; 34 | "CONFIGURATION_UPGRADE_EX" = "下列文件已被软件包维护者和您自己(或脚本)更改过。"; 35 | "CONFIRM" = "确认"; 36 | "CONSOLE_PACKAGE" = "命令行软件包"; 37 | "CONSOLE_UTILITIES_DAEMONS" = "命令行工具及驻留进程"; 38 | "CONTINUE_QUEUING" = "继续队列"; 39 | "COUNTS_NONZERO_EX" = "我只不过计算了一些看起来很重要的数值,而且这些数值加起来不为零。这很吓人。我不知道我为什么不喜欢这样,但我仍然认为 APT 应该是很稳定的,这个不应该发生。"; 40 | "CREDITS" = "软件信息"; 41 | "CYDIA_STORE" = "Cydia 在线商店"; 42 | "DATABASE" = "数据库"; 43 | "DETAILS" = "详情"; 44 | "DEVELOPER" = "开发者"; 45 | "DEVELOPERS_ONLY" = "仅限开发者"; 46 | "DEVELOPER_EX" = "所有内容,包括底层的内容。"; 47 | "DISK_FREEING" = "磁盘空间释放"; 48 | "DISK_USING" = "磁盘空间占用"; 49 | "DONATE_USING" = "使用 %@ 捐赠"; 50 | "DONE" = "完成"; 51 | "DOUBLE_QUOTED" = "“%@”"; 52 | "DOWNGRADE" = "降级"; 53 | "DOWNLOADING" = "下载"; 54 | "DOWNLOADING_" = "下载 %@"; 55 | "EDIT" = "编辑"; 56 | "ELISION" = "%@…"; 57 | "ENTERED_BY_USER" = "由用户输入"; 58 | "ENTER_APT_URL" = "输入 Cydia/APT 地址"; 59 | "ERROR" = "错误"; 60 | "ESSENTIAL_UPGRADE" = "必要更新"; 61 | "ESSENTIAL_UPGRADES" = "%d 个必要更新"; 62 | "ESSENTIAL_UPGRADE_EX" = "一个或多个必要软件包已过期,不更新有可能会导致系统错误。"; 63 | "EXCLAMATION" = "%@!"; 64 | "EXIT_WHEN_COMPLETE" = "(Cydia 会在完成后退出。)"; 65 | "EXPANDED_SIZE" = "解包大小"; 66 | "EXPERT" = "专业人士"; 67 | "FAQ" = "常见问题"; 68 | "FEATURED_PACKAGES" = "精选软件包"; 69 | "FEATURED_THEMES" = "精选主题"; 70 | "FILES" = "文件"; 71 | "FILESYSTEM_CONTENT" = "文件系统"; 72 | "FILES_INSTALLED_TO" = "文件安装到 %@"; 73 | "FOLLOW_ON_TWITTER" = "在推特上收听 %@"; 74 | "FORCE_REMOVAL" = "强制卸载"; 75 | "FORCIBLY_CLEAR" = "强制清除"; 76 | "FREE_APPLICATIONS" = "免费软件"; 77 | "FREE_EXTENSIONS" = "免费扩展"; 78 | "FREQUENTLY_ASKED_QUESTIONS" = "常见问题"; 79 | "FROM" = "来自 %@"; 80 | "FROWNY_PANTS" = "Frowny Pants"; 81 | "FUTURE_FEATURE_ROADMAP" = "开发路线图"; 82 | "HACKER" = "骇客"; 83 | "HACKER_EX" = "添加命令行工具。"; 84 | "HALFINSTALLED_PACKAGE" = "半安装软件包"; 85 | "HALFINSTALLED_PACKAGES" = "%d 个半安装软件包"; 86 | "HALFINSTALLED_PACKAGE_EX" = "若软件包的脚本执行失败,该软件包便会成为“半配置”或“半安装”状态。这些错误无法自行消失,并可能造成持续的影响。您可以先手动删除有错误的脚本,然后强制卸载软件包。"; 87 | "HOME" = "主页"; 88 | "ID" = "标识"; 89 | "IGNORED_UPGRADES" = "已忽略的更新"; 90 | "IGNORE_UPGRADES" = "忽略更新"; 91 | "IGNORE_UPGRADES_EX" = "选择全部更新时排除此软件包。"; 92 | "ILLEGAL_PACKAGE_IDENTIFIER" = "非法软件包标识"; 93 | "INSTALL" = "安装"; 94 | "INSTALLED" = "已安装"; 95 | "INSTALLED_BY_PACKAGE" = "由软件包安装"; 96 | "INSTALLED_DETAILS" = "已安装软件包"; 97 | "INSTALLED_FILES" = "已安装文件"; 98 | "KEEP_OLD_COPY" = "保留旧的副本"; 99 | "LOADING" = "载入中"; 100 | "LOADING_DATA" = "加载数据"; 101 | "LOCAL" = "本地"; 102 | "LOGIN" = "登入"; 103 | "MAILING_LISTS" = "邮件列表"; 104 | "MAINTAINER" = "联系"; 105 | "MANAGE" = "管理"; 106 | "MODIFICATIONS" = "更改"; 107 | "MODIFY" = "更改"; 108 | "MORE_INFORMATION" = "更多信息"; 109 | "MORE_PACKAGE_SOURCES" = "更多软件源"; 110 | "NAME" = "名称"; 111 | "NETWORK_ERROR" = "网络错误"; 112 | "NEVER_OR_UNKNOWN" = "从不或未知"; 113 | "NEW" = "新的"; 114 | "NEW_AT" = "在 %@ 更新"; 115 | "NEW_INSTALL" = "新安装"; 116 | "NO" = "否"; 117 | "NOTE" = "记录"; 118 | "NOT_RATED" = "未评级"; 119 | "NOT_REPOSITORY" = "未找到软件源"; 120 | "NOT_REPOSITORY_EX" = "软件源未找到。可能是因为您添加的是 Cydia 不支持的 Installer 软件源。并且,此界面仅适用于完整的软件源网络地址。如果您自己搭建了一个软件源,欢迎联系 Cydia 的作者。"; 121 | "NO_SECTION" = "(无分类)"; 122 | "OK" = "确定"; 123 | "OKAY" = "确定"; 124 | "PACKAGES" = "软件包"; 125 | "PACKAGES_EX" = "查看已安装软件包信息或管理已安装的软件包。"; 126 | "PACKAGE_CANNOT_BE_FOUND" = "在当前软件源中无法找到软件包:\n%@\n添加更多软件源或许能够解决此问题。"; 127 | "PACKAGE_CANNOT_BE_FOUND_EX" = "该问题亦可能由其它因素引起。最常见的情况是您的软件包目录已过期。请点击“变更”中的“刷新”按钮以手动刷新目录。该软件包也许不存在。也有可能是您使用的是较老的固件版本:用户应该尽量根据 Apple 官方信息保持固件的更新。"; 128 | "PACKAGE_DAMAGED" = "软件包已损坏"; 129 | "PACKAGE_DETAILS" = "软件包详情"; 130 | "PACKAGE_QUEUE" = "软件包队列"; 131 | "PARENTHETICAL" = "%@(%@)"; 132 | "PASSWORD" = "密码"; 133 | "PERFORM_SELECTIONS" = "执行选择"; 134 | "PREPARE_ARCHIVES" = "准备存档"; 135 | "PREPARING_FILESYSTEM" = "准备文件系统"; 136 | "PRODUCTS" = "产品"; 137 | "PURGE" = "清除"; 138 | "QUESTION" = "%@?"; 139 | "QUEUE" = "队列"; 140 | "QUEUED_FOR" = "队列 %@"; 141 | "Q_D" = "队列"; 142 | "REBOOT_DEVICE" = "重启设备"; 143 | "RECENT_CHANGES_UPDATES" = "最近更新"; 144 | "RECOMMENDED_BOOKS" = "推荐书目"; 145 | "REFRESH" = "刷新"; 146 | "REFRESHING_DATA" = "刷新数据"; 147 | "REINSTALL" = "重新安装"; 148 | "RELOAD" = "重新加载"; 149 | "RELOADING_DATA" = "重新加载数据"; 150 | "RELOAD_SPRINGBOARD" = "重新加载 SpringBoard"; 151 | "REMOVE" = "卸载"; 152 | "REMOVING_ESSENTIALS" = "卸载必要软件包"; 153 | "REMOVING_ESSENTIALS_EX" = "此操作涉及卸载一个或多个 Cydia 或 iPhoneOS 运行所必需的软件包。如果继续操作,您可能无法使用 Cydia 修复任何错误。"; 154 | "REPAIRING" = "修复"; 155 | "REPOSITORY_SIGNATURE" = "查看软件源签名"; 156 | "REQUEST_ADVERTISING_SPACE" = "获取广告栏"; 157 | "REQUIREMENTS_FOR_LISTING" = "列表需求"; 158 | "RESTART_SPRINGBOARD" = "重启 SpringBoard"; 159 | "RESUBMIT_FORM" = "您确定要再次提交此表格?"; 160 | "RESUMING_AT" = "继续在"; 161 | "RETURN_TO_CYDIA" = "回到 Cydia"; 162 | "ROLE_EX" = "Cydia 中可下载的软件包并非为所有用户而设计,因此请明确自己的身份以帮助 Cydia 过滤显示某些软件包。\n\n该项设定可在“管理”标签(iPhone 或 iPod Touch)或“软件源”标签(iPad)中的“设置”更改。"; 163 | "RUNNING" = "运行中"; 164 | "SAFE" = "安全"; 165 | "SAMPLE" = "示例"; 166 | "SCREENSHOT" = "预览"; 167 | "SCREENSHOTS" = "预览"; 168 | "SEARCH" = "搜索"; 169 | "SEARCH_EX" = "软件名或描述"; 170 | "SEARCH_HELP" = "输入内容以过滤;点击“%@”开始搜索。"; 171 | "SECTION" = "分类"; 172 | "SECTIONS" = "分类"; 173 | "SECTION_VISIBILITY" = "可见分类"; 174 | "SEE_WHAT_CHANGED" = "查看更新详情"; 175 | "SETTINGS" = "设置"; 176 | "SHOW_ALL_CHANGES" = "显示所有变更"; 177 | "SHOW_ALL_CHANGES_EX" = "Cydia 只会显示已安装软件包的更新,避免某些软件开发者的骚扰。\n\n启用此选项使 Cydia 显示未安装软件包的更新。"; 178 | "SIGNED_PACKAGE" = "此软件包已通过验证。"; 179 | "SIMPLE" = "简单"; 180 | "SINGLE_QUOTED" = "‘%@’"; 181 | "SLASH_DELIMITED" = "%@ / %@"; 182 | "SOURCES" = "软件源"; 183 | "SOURCES_EX" = "列出现有软件源或添加软件源。"; 184 | "SOURCE_DETAILS" = "软件源信息"; 185 | "SOURCE_WARNING" = "软件源警告"; 186 | "SPONSOR" = "保证"; 187 | "SPONSORING_PRODUCTS" = "保证产品"; 188 | "STATISTICS" = "统计数据"; 189 | "STILL_BROKEN_EX" = "尝试修正损坏选择失败。"; 190 | "STORAGE" = "存储详情"; 191 | "STORAGE_EX" = "查看您还有多少剩余空间可供安装新的软件包。"; 192 | "SUBMIT" = "提交"; 193 | "SUPPORT_KNOWN_ISSUES" = "支持与已知问题"; 194 | "TEMPORARY_IGNORE" = "暂时忽略"; 195 | "THANK_YOU" = "感谢"; 196 | "UNABLE_TO_COMPLY" = "无法执行"; 197 | "UNABLE_TO_COMPLY_EX" = "此操作涉及卸载一个或多个 Cydia 或 iPhoneOS 运行所必需的软件包。如果您确定要继续强制执行此操作,请在设置中打开高级模式。"; 198 | "UNABLE_TO_LOAD" = "无法加载"; 199 | "UNKNOWN" = "未知"; 200 | "UNSAFE" = "不安全"; 201 | "UPDATING_DATABASE" = "正在更新数据库"; 202 | "UPDATING_SOURCES" = "正在更新软件源"; 203 | "UPGRADE" = "更新"; 204 | "UPGRADE_ESSENTIAL" = "只更新必要软件包"; 205 | "UPGRADING_TO_READ_THIS" = "升级到 %@?先看看这个"; 206 | "USER" = "用户"; 207 | "USERNAME" = "用户名"; 208 | "USER_EX" = "软件、工具和主题。"; 209 | "USER_GUIDES" = "用户指南"; 210 | "VERIFICATION_ERROR" = "验证错误"; 211 | "VERIFYING_URL" = "正在验证地址"; 212 | "VERSION" = "版本"; 213 | "WARNING" = "警告"; 214 | "WELCOME_TO_CYDIA" = "欢迎使用 Cydia™"; 215 | "WHO_ARE_YOU" = "您的身份是?"; 216 | "YES" = "是"; 217 | -------------------------------------------------------------------------------- /MobileCydia.app/zh_TW.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | "ABOUT" = "關於"; 2 | "ABOUT_CYDIA" = "關於 Cydia Installer"; 3 | "ACCEPT_NEW_COPY" = "接受新的副本"; 4 | "ADD" = "新增"; 5 | "ADD_ANYWAY" = "仍然新增"; 6 | "ADD_SOURCE" = "新增源"; 7 | "ADMINISTRATIVE_INFORMATION" = "管理資訊"; 8 | "ADVANCED_SEARCH" = "進階搜尋"; 9 | "ALL_PACKAGES" = "所有套件"; 10 | "APPLE" = "Apple"; 11 | "AUTHOR" = "作者"; 12 | "AVAILABLE_UPGRADES" = "可用更新"; 13 | "BROWSER" = "流覽器"; 14 | "BY" = "by %@"; 15 | "CANCEL" = "取消"; 16 | "CANCEL_CLEAR" = "取消並清除"; 17 | "CANCEL_OPERATION" = "取消操作"; 18 | "CANNOT_COMPLY" = "無法執行"; 19 | "CANNOT_COMPLY_EX" = "因所依賴的套件未找到或存在衝突套件,操作無法完成。"; 20 | "CANNOT_LOCATE_PACKAGE" = "找不到套件"; 21 | "CHANGES" = "變更"; 22 | "CHANGE_PACKAGE_SETTINGS" = "更改套件設定"; 23 | "CLEAN_ARCHIVES" = "清除存檔"; 24 | "CLEAR" = "清除"; 25 | "CLOSE" = "關閉"; 26 | "CLOSE_CYDIA" = "關閉 Cydia"; 27 | "COLON_DELIMITED" = "%@:%@"; 28 | "COMING_SOON" = "即將推出!"; 29 | "COMMA_DELIMITED" = "%@,%@"; 30 | "COMMERCIAL_APPLICATIONS" = "付費軟體"; 31 | "COMPLETE" = "完成"; 32 | "COMPLETE_UPGRADE" = "全部更新"; 33 | "CONFIGURATION_UPGRADE" = "更新設定"; 34 | "CONFIGURATION_UPGRADE_EX" = "下列檔案已被套件維護者和您自己(或安裝指令)更改過。"; 35 | "CONFIRM" = "確認"; 36 | "CONSOLE_PACKAGE" = "終端程式"; 37 | "CONSOLE_UTILITIES_DAEMONS" = "終端工具及駐留進程"; 38 | "CONTINUE_QUEUING" = "繼續安裝佇列"; 39 | "COUNTS_NONZERO_EX" = "我只不過計算了一些看起來很重要的數值,而且這些數值加起來不為零。這很嚇人。我不知道我為什麼不喜歡這樣,但我仍然認為 APT 應該是很穩定的,這個不應該發生。"; 40 | "CREDITS" = "軟體資訊"; 41 | "CYDIA_STORE" = "Cydia 線上商店"; 42 | "DATABASE" = "資料庫"; 43 | "DETAILS" = "資訊"; 44 | "DEVELOPER" = "開發者"; 45 | "DEVELOPERS_ONLY" = "僅限開發者"; 46 | "DEVELOPER_EX" = "所有內容,包括底層的內容。"; 47 | "DISK_FREEING" = "磁碟空间释放"; 48 | "DISK_USING" = "磁碟空間佔用"; 49 | "DONATE_USING" = "使用 %@ 捐贈"; 50 | "DONE" = "完成"; 51 | "DOUBLE_QUOTED" = "“%@”"; 52 | "DOWNGRADE" = "降級"; 53 | "DOWNLOADING" = "下載"; 54 | "DOWNLOADING_" = "下載 %@"; 55 | "EDIT" = "編輯"; 56 | "ELISION" = "%@…"; 57 | "ENTERED_BY_USER" = "由使用者新增"; 58 | "ENTER_APT_URL" = "輸入 Cydia/APT URL"; 59 | "ERROR" = "錯誤"; 60 | "ESSENTIAL_UPGRADE" = "必要更新"; 61 | "ESSENTIAL_UPGRADES" = "%d 個必要更新"; 62 | "ESSENTIAL_UPGRADE_EX" = "一個或多個必要套件已過期,不更新有可能會導致系統錯誤。"; 63 | "EXCLAMATION" = "%@!"; 64 | "EXIT_WHEN_COMPLETE" = "(Cydia 會在完成時退出。)"; 65 | "EXPANDED_SIZE" = "安裝大小"; 66 | "EXPERT" = "進階"; 67 | "FAQ" = "常見問題"; 68 | "FEATURED_PACKAGES" = "精選套件"; 69 | "FEATURED_THEMES" = "精選佈景"; 70 | "FILES" = "檔案"; 71 | "FILESYSTEM_CONTENT" = "檔案內容"; 72 | "FILES_INSTALLED_TO" = "檔案安裝到 %@"; 73 | "FOLLOW_ON_TWITTER" = "在 Twitter 上收聽 %@"; 74 | "FORCE_REMOVAL" = "強制移除"; 75 | "FORCIBLY_CLEAR" = "強制清除"; 76 | "FREE_APPLICATIONS" = "免費軟體"; 77 | "FREE_EXTENSIONS" = "免費外掛"; 78 | "FREQUENTLY_ASKED_QUESTIONS" = "常見問題"; 79 | "FROM" = "來自 %@"; 80 | "FROWNY_PANTS" = "Frowny Pants"; 81 | "FUTURE_FEATURE_ROADMAP" = "開發路線圖"; 82 | "HACKER" = "進階"; 83 | "HACKER_EX" = "新增終端工具。"; 84 | "HALFINSTALLED_PACKAGE" = "半安裝套件"; 85 | "HALFINSTALLED_PACKAGES" = "%d 個半安裝套件"; 86 | "HALFINSTALLED_PACKAGE_EX" = "若套件的安裝指令執行失敗,該套件便會成為“半配置”或“半安裝”狀態。這些錯誤不會自行消失,並可能造成後續的影響。您可以先手動刪除有錯誤的安裝指令,然後強制移除套件。"; 87 | "HOME" = "主頁"; 88 | "ID" = "ID"; 89 | "IGNORED_UPGRADES" = "已忽略的更新"; 90 | "IGNORE_UPGRADES" = "忽略更新"; 91 | "IGNORE_UPGRADES_EX" = "選擇全部更新時排除該套件。"; 92 | "ILLEGAL_PACKAGE_IDENTIFIER" = "非法套件ID"; 93 | "INSTALL" = "安裝"; 94 | "INSTALLED" = "已安裝"; 95 | "INSTALLED_BY_PACKAGE" = "由套件安裝"; 96 | "INSTALLED_DETAILS" = "已安裝套件"; 97 | "INSTALLED_FILES" = "已安裝檔案"; 98 | "KEEP_OLD_COPY" = "保留舊的副本"; 99 | "LOADING" = "載入中"; 100 | "LOADING_DATA" = "載入資料"; 101 | "LOCAL" = "本地"; 102 | "LOGIN" = "登入"; 103 | "MAILING_LISTS" = "郵件列表"; 104 | "MAINTAINER" = "聯絡"; 105 | "MANAGE" = "管理"; 106 | "MODIFICATIONS" = "更改"; 107 | "MODIFY" = "更改"; 108 | "MORE_INFORMATION" = "更多資訊"; 109 | "MORE_PACKAGE_SOURCES" = "更多軟體源"; 110 | "NAME" = "名稱"; 111 | "NETWORK_ERROR" = "網路錯誤"; 112 | "NEVER_OR_UNKNOWN" = "從不或未知"; 113 | "NEW" = "新的"; 114 | "NEW_AT" = "在 %@ 更新"; 115 | "NEW_INSTALL" = "新安裝"; 116 | "NO" = "否"; 117 | "NOTE" = "記錄"; 118 | "NOT_RATED" = "未評級"; 119 | "NOT_REPOSITORY" = "未找到軟體源"; 120 | "NOT_REPOSITORY_EX" = "軟體源未找到。可能是因為您新增的是 Cydia 不支援的 Installer 軟體源。並且,此介面僅適用於完整的軟體源網路位址。如果您自己搭建了一個軟體源,歡迎聯繫 Cydia 的作者。"; 121 | "NO_SECTION" = "(無分類)"; 122 | "OK" = "確定"; 123 | "OKAY" = "確定"; 124 | "PACKAGES" = "安裝套件"; 125 | "PACKAGES_EX" = "查看或移除已安裝的套件。"; 126 | "PACKAGE_CANNOT_BE_FOUND" = "在當前軟體源中無法找到套件:\n%@\n新增更多軟體源或許能夠解決此問題。"; 127 | "PACKAGE_CANNOT_BE_FOUND_EX" = "該問題亦可能由其它因素引起。最常見的情況是您的套件目錄已過期。請點擊“變更”中的“刷新”按鈕以手動刷新目錄。該套件也許不存在。也有可能是您使用的是較老的韌體版本:使用者應該儘量根據 Apple 官方資訊保持韌體的更新。"; 128 | "PACKAGE_DAMAGED" = "套件已損壞"; 129 | "PACKAGE_DETAILS" = "套件資訊"; 130 | "PACKAGE_QUEUE" = "套件安裝佇列"; 131 | "PARENTHETICAL" = "%@(%@)"; 132 | "PASSWORD" = "密碼"; 133 | "PERFORM_SELECTIONS" = "執行選定"; 134 | "PREPARE_ARCHIVES" = "準備歸檔"; 135 | "PREPARING_FILESYSTEM" = "準備檔案系統"; 136 | "PRODUCTS" = "產品"; 137 | "PURGE" = "清除"; 138 | "QUESTION" = "%@?"; 139 | "QUEUE" = "安裝佇列"; 140 | "QUEUED_FOR" = "安裝佇列 %@"; 141 | "Q_D" = "安裝佇列"; 142 | "REBOOT_DEVICE" = "重啟設備"; 143 | "RECENT_CHANGES_UPDATES" = "最近更新"; 144 | "RECOMMENDED_BOOKS" = "推薦書目"; 145 | "REFRESH" = "更新"; 146 | "REFRESHING_DATA" = "更新資料"; 147 | "REINSTALL" = "重新安裝"; 148 | "RELOAD" = "重新載入"; 149 | "RELOADING_DATA" = "更新資料"; 150 | "RELOAD_SPRINGBOARD" = "重新載入 SpringBoard"; 151 | "REMOVE" = "移除"; 152 | "REMOVING_ESSENTIALS" = "移除必要套件"; 153 | "REMOVING_ESSENTIALS_EX" = "此操作涉及移除一個或多個 Cydia 或 iOS 運行所必需的套件。如果繼續操作,您可能無法使用 Cydia 修復任何錯誤。"; 154 | "REPAIRING" = "修復"; 155 | "REPOSITORY_SIGNATURE" = "查看軟體源簽名"; 156 | "REQUEST_ADVERTISING_SPACE" = "獲取廣告欄"; 157 | "REQUIREMENTS_FOR_LISTING" = "列表需求"; 158 | "RESTART_SPRINGBOARD" = "重啟 SpringBoard"; 159 | "RESUBMIT_FORM" = "您確定要再次送出此表格?"; 160 | "RESUMING_AT" = "繼續在"; 161 | "RETURN_TO_CYDIA" = "回到 Cydia"; 162 | "ROLE_EX" = "Cydia 中可下載的套件並非為所有使用者而設計,因此請明確自己的身份以説明 Cydia 過濾顯示某些套件。\n\n該項設定可在“管理”標籤(iPhone 或 iPod Touch)或“軟體源”標籤(iPad)中的“設定”更改。"; 163 | "RUNNING" = "運行中"; 164 | "SAFE" = "安全"; 165 | "SAMPLE" = "示例"; 166 | "SCREENSHOT" = "預覽"; 167 | "SCREENSHOTS" = "預覽"; 168 | "SEARCH" = "搜尋"; 169 | "SEARCH_EX" = "軟體名或描述"; 170 | "SEARCH_HELP" = "輸入內容以過濾;點擊“%@”開始搜尋。"; 171 | "SECTION" = "分類"; 172 | "SECTIONS" = "分類"; 173 | "SECTION_VISIBILITY" = "可見分類"; 174 | "SEE_WHAT_CHANGED" = "查看更新資訊"; 175 | "SETTINGS" = "設定"; 176 | "SHOW_ALL_CHANGES" = "顯示所有變更"; 177 | "SHOW_ALL_CHANGES_EX" = "Cydia 只會顯示已安裝套件的更新以避免某些軟體開發者的騷擾。\n\n啟用此選項以使 Cydia 顯示未安裝套件的更新。"; 178 | "SIGNED_PACKAGE" = "此套件已通過驗證。"; 179 | "SIMPLE" = "簡單"; 180 | "SINGLE_QUOTED" = "‘%@’"; 181 | "SLASH_DELIMITED" = "%@ / %@"; 182 | "SOURCES" = "軟體源"; 183 | "SOURCES_EX" = "列出現有軟體源或新增軟體源。"; 184 | "SOURCE_DETAILS" = "軟體源資訊"; 185 | "SOURCE_WARNING" = "軟體源警告"; 186 | "SPONSOR" = "保證"; 187 | "SPONSORING_PRODUCTS" = "保證產品"; 188 | "STATISTICS" = "統計資料"; 189 | "STILL_BROKEN_EX" = "嘗試修正損壞選擇失敗。"; 190 | "STORAGE" = "儲存空間資訊"; 191 | "STORAGE_EX" = "查看您還有多少剩餘空間以供安裝新的套件。"; 192 | "SUBMIT" = "送出"; 193 | "SUPPORT_KNOWN_ISSUES" = "支持與已知問題"; 194 | "TEMPORARY_IGNORE" = "暫時忽略"; 195 | "THANK_YOU" = "感謝"; 196 | "UNABLE_TO_COMPLY" = "無法執行"; 197 | "UNABLE_TO_COMPLY_EX" = "此操作涉及移除一個或多個 Cydia 或 iPhoneOS 運行所必需的套件。如果您確定要繼續強制執行此操作,請在設定中打開進階模式。"; 198 | "UNABLE_TO_LOAD" = "無法載入"; 199 | "UNKNOWN" = "未知"; 200 | "UNSAFE" = "不安全"; 201 | "UPDATING_DATABASE" = "正在更新資料庫"; 202 | "UPDATING_SOURCES" = "正在更新軟體源"; 203 | "UPGRADE" = "更新"; 204 | "UPGRADE_ESSENTIAL" = "必要更新"; 205 | "UPGRADING_TO_READ_THIS" = "升級到 %@?先看看這個"; 206 | "USER" = "使用者"; 207 | "USERNAME" = "使用者名稱"; 208 | "USER_EX" = "軟體、工具和佈景。"; 209 | "USER_GUIDES" = "使用者指南"; 210 | "VERIFICATION_ERROR" = "驗證錯誤"; 211 | "VERIFYING_URL" = "正在驗證 URL"; 212 | "VERSION" = "版本"; 213 | "WARNING" = "警告"; 214 | "WELCOME_TO_CYDIA" = "歡迎使用 Cydia™"; 215 | "WHO_ARE_YOU" = "您的身份是?"; 216 | "YES" = "是"; 217 | -------------------------------------------------------------------------------- /Sources.h: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #ifndef Sources_H 41 | #define Sources_H 42 | 43 | #include 44 | 45 | void CydiaWriteSources(); 46 | void CydiaAddSource(NSDictionary *source); 47 | void CydiaAddSource(NSString *href, NSString *distribution, NSArray *sections = nil); 48 | 49 | #endif//Sources_H 50 | -------------------------------------------------------------------------------- /Sources.list/saurik.list: -------------------------------------------------------------------------------- 1 | # DO NOT EDIT | This is the story of a time long ago, A time of myth and legend, when the Earth was still young. 2 | # The ancient gods were petty and cruel, and they plagued mankind with suffering and beseiged them with terrors. 3 | -------------------------------------------------------------------------------- /Sources.mm: -------------------------------------------------------------------------------- 1 | /* Cydia - iPhone UIKit Front-End for Debian APT 2 | * Copyright (C) 2008-2012 Jay Freeman (saurik) 3 | */ 4 | 5 | /* Modified BSD License {{{ */ 6 | /* 7 | * Redistribution and use in source and binary 8 | * forms, with or without modification, are permitted 9 | * provided that the following conditions are met: 10 | * 11 | * 1. Redistributions of source code must retain the 12 | * above copyright notice, this list of conditions 13 | * and the following disclaimer. 14 | * 2. Redistributions in binary form must reproduce the 15 | * above copyright notice, this list of conditions 16 | * and the following disclaimer in the documentation 17 | * and/or other materials provided with the 18 | * distribution. 19 | * 3. The name of the author may not be used to endorse 20 | * or promote products derived from this software 21 | * without specific prior written permission. 22 | * 23 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' 24 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 25 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 | * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE 28 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 29 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 30 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 31 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 32 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 33 | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR 34 | * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 36 | * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | */ 38 | /* }}} */ 39 | 40 | #include 41 | #include 42 | #include 43 | 44 | #include 45 | 46 | extern _H Sources_; 47 | extern bool Changed_; 48 | 49 | void CydiaWriteSources() { 50 | FILE *file(fopen("/etc/apt/sources.list.d/cydia.list", "w")); 51 | _assert(file != NULL); 52 | 53 | fprintf(file, "deb http://apt.saurik.com/ ios/%.2f main\n", kCFCoreFoundationVersionNumber); 54 | 55 | for (NSString *key in [Sources_ allKeys]) { 56 | NSDictionary *source([Sources_ objectForKey:key]); 57 | 58 | NSArray *sections([source objectForKey:@"Sections"] ?: [NSArray array]); 59 | 60 | fprintf(file, "%s %s %s%s%s\n", 61 | [[source objectForKey:@"Type"] UTF8String], 62 | [[source objectForKey:@"URI"] UTF8String], 63 | [[source objectForKey:@"Distribution"] UTF8String], 64 | [sections count] == 0 ? "" : " ", 65 | [[sections componentsJoinedByString:@" "] UTF8String] 66 | ); 67 | } 68 | 69 | fclose(file); 70 | } 71 | 72 | void CydiaAddSource(NSDictionary *source) { 73 | [Sources_ setObject:source forKey:[NSString stringWithFormat:@"%@:%@:%@", [source objectForKey:@"Type"], [source objectForKey:@"URI"], [source objectForKey:@"Distribution"]]]; 74 | Changed_ = true; 75 | } 76 | 77 | void CydiaAddSource(NSString *href, NSString *distribution, NSArray *sections) { 78 | if (href == nil || distribution == nil) 79 | return; 80 | 81 | CydiaAddSource([NSMutableDictionary dictionaryWithObjectsAndKeys: 82 | @"deb", @"Type", 83 | href, @"URI", 84 | distribution, @"Distribution", 85 | sections ?: [NSMutableArray array], @"Sections", 86 | nil]); 87 | } 88 | -------------------------------------------------------------------------------- /Trusted.gpg/bigboss.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/Trusted.gpg/bigboss.gpg -------------------------------------------------------------------------------- /Trusted.gpg/modmyi.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/Trusted.gpg/modmyi.gpg -------------------------------------------------------------------------------- /Trusted.gpg/saurik.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/Trusted.gpg/saurik.gpg -------------------------------------------------------------------------------- /Trusted.gpg/zodttd.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/Trusted.gpg/zodttd.gpg -------------------------------------------------------------------------------- /Version.mm: -------------------------------------------------------------------------------- 1 | #include 2 | #include "Version.h" 3 | NSString *Cydia_ = @ CYDIA_VERSION; 4 | -------------------------------------------------------------------------------- /cfversion.mm: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main() { 5 | printf("%.2f\n", kCFCoreFoundationVersionNumber); 6 | return 0; 7 | } 8 | -------------------------------------------------------------------------------- /compiling.txt: -------------------------------------------------------------------------------- 1 | 0) use a Mac (I'm sorry, I really am) 2 | 1) install the official Apple iOS SDK 3 | 2) install Fink (the only sane choice) 4 | 3) activate Fink (. /sw/bin/init.sh) 5 | 4) sudo fink install bash ldid tar wget xz 6 | 5) run ./sysroot.sh and wait a bit 7 | 6) type "make" to compile the executable 8 | -------------------------------------------------------------------------------- /control.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | src=$1 3 | dir=$2 4 | dir=${dir:=_} 5 | sed -e "s@^\(Version:\).*@\1 $(./version.sh)@" "${src}" 6 | echo "Installed-Size: $(du -s "${dir}" | cut -f 1)" 7 | -------------------------------------------------------------------------------- /cydia-lproj.control: -------------------------------------------------------------------------------- 1 | Package: cydia-lproj 2 | Priority: required 3 | Section: Packaging 4 | Maintainer: Jay Freeman (saurik) 5 | Architecture: iphoneos-arm 6 | Version: 7 | Replaces: cydia 8 | Depends: cydia 9 | Description: languages and translations for Cydia 10 | Name: Cydia Translations 11 | Author: Jay Freeman (saurik) 12 | Depiction: http://cydia.saurik.com/info/cydia-lproj/ 13 | Tag: purpose::uikit, cydia::essential, role::enduser 14 | -------------------------------------------------------------------------------- /cydia.control: -------------------------------------------------------------------------------- 1 | Package: cydia 2 | Priority: required 3 | Section: Packaging 4 | Maintainer: Jay Freeman (saurik) 5 | Architecture: iphoneos-arm 6 | Version: 7 | Replaces: bigboss, bigbossbetarepo, com.sosiphone.addcydia, cydia-sources, ispazio.net, modmyifone, saurik, ste, yellowsn0w.com, zodttd 8 | Depends: apr-lib, apt7-lib, apt7-key, cydia-lproj, darwintools, debianutils, org.thebigboss.repo.icons, pcre, sed, shell-cmds, system-cmds, uikittools (>= 1.1.4) 9 | Conflicts: bigboss, bigbossbetarepo, com.sosiphone.addcydia, cydia-sources, ispazio.net, modmyifone, ste, yellowsn0w.com, zodttd 10 | Pre-Depends: debianutils 11 | Provides: bigbossbetarepo, cydia-sources 12 | Description: graphical iPhone front-end for APT 13 | Name: Cydia Installer 14 | Author: Jay Freeman (saurik) 15 | Depiction: http://cydia.saurik.com/info/cydia/ 16 | Tag: purpose::uikit, cydia::essential, role::enduser 17 | -------------------------------------------------------------------------------- /entitlements.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | com.apple.coreaudio.allow-amr-decode 5 | 6 | 7 | com.apple.coremedia.allow-protected-content-playback 8 | 9 | 10 | com.apple.managedconfiguration.profiled-access 11 | 12 | 13 | com.apple.springboard.opensensitiveurl 14 | 15 | 16 | dynamic-codesigning 17 | 18 | 19 | com.apple.springboard.launchapplications 20 | 21 | 22 | keychain-access-groups 23 | 24 | com.apple.cfnetwork 25 | com.apple.identities 26 | com.apple.mobilesafari 27 | 28 | 29 | platform-application 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- 1 | dev := $(shell xcode-select --print-path)/Platforms/iPhoneOS.platform/Developer 2 | sdks := $(dev)/SDKs 3 | ioss := $(sort $(patsubst $(sdks)/iPhoneOS%.sdk,%,$(wildcard $(sdks)/iPhoneOS*.sdk))) 4 | ios := $(word $(words $(ioss)),$(ioss)) 5 | 6 | # if you can tolerate clang, set this to blank 7 | gcc := 4.2 8 | 9 | ifeq ($(gcc),) 10 | gxx := $(dev)/usr/bin/clang++ 11 | else 12 | gxx := $(dev)/usr/bin/g++ 13 | endif 14 | 15 | flags := 16 | link := 17 | libs := 18 | 19 | ifeq (o,O) # gzip is actually better 20 | dpkg := /Library/Cydia/bin/dpkg-deb 21 | ifeq ($(wildcard $(dpkg)),$(dpkg)) 22 | dpkg := $(dpkg) -zlzma 23 | else 24 | dpkg := dpkg-deb -zbzip2 25 | endif 26 | else 27 | dpkg := dpkg-deb 28 | endif 29 | 30 | sdk := $(sdks)/iPhoneOS$(ios).sdk 31 | 32 | flags += -F$(sdk)/System/Library/PrivateFrameworks 33 | flags += -I. -isystem sysroot/usr/include 34 | flags += -fmessage-length=0 35 | flags += -g0 -O2 36 | flags += -fvisibility=hidden 37 | 38 | flags += -Wall 39 | 40 | ifeq ($(gcc),) 41 | flags += -Wno-unknown-warning-option 42 | flags += -Wno-logical-op-parentheses 43 | else 44 | flags += -fobjc-exceptions 45 | flags += -fno-guess-branch-probability 46 | endif 47 | 48 | flags += -Wno-deprecated-declarations 49 | 50 | xflags := 51 | xflags += -fobjc-call-cxx-cdtors 52 | xflags += -fvisibility-inlines-hidden 53 | 54 | link += -Lsysroot/usr/lib 55 | link += -multiply_defined suppress 56 | 57 | libs += -framework CoreFoundation 58 | libs += -framework CoreGraphics 59 | libs += -framework Foundation 60 | libs += -framework GraphicsServices 61 | libs += -framework IOKit 62 | libs += -framework JavaScriptCore 63 | libs += -framework QuartzCore 64 | libs += -framework SpringBoardServices 65 | libs += -framework SystemConfiguration 66 | libs += -framework WebCore 67 | libs += -framework WebKit 68 | 69 | libs += -lapr-1 70 | libs += -lapt-pkg 71 | libs += -lpcre 72 | 73 | uikit := 74 | uikit += -framework UIKit 75 | 76 | backrow := 77 | backrow += -FAppleTV -framework BackRow -framework AppleTV 78 | 79 | version := $(shell ./version.sh) 80 | 81 | cycc = $(gxx) -mthumb -arch armv6 -o $@ -miphoneos-version-min=2.0 -isysroot $(sdk) -idirafter /usr/include -F{sysroot,}/Library/Frameworks 82 | #cycc = cycc -r4.2 -i$(ios) -o$@ 83 | 84 | ifneq ($(gcc),) 85 | cycc += -Xarch_armv6 -mcpu=arm1176jzf-s 86 | endif 87 | 88 | dirs := Menes CyteKit Cydia SDURLCache 89 | 90 | code := $(foreach dir,$(dirs),$(wildcard $(foreach ext,h hpp c cpp m mm,$(dir)/*.$(ext)))) 91 | code := $(filter-out SDURLCache/SDURLCacheTests.m,$(code)) 92 | code += MobileCydia.mm Version.mm iPhonePrivate.h Cytore.hpp lookup3.c Sources.h Sources.mm 93 | 94 | source := $(filter %.m,$(code)) $(filter %.mm,$(code)) 95 | source += $(filter %.c,$(code)) $(filter %.cpp,$(code)) 96 | header := $(filter %.h,$(code)) $(filter %.hpp,$(code)) 97 | 98 | object := $(source) 99 | object := $(object:.c=.o) 100 | object := $(object:.cpp=.o) 101 | object := $(object:.m=.o) 102 | object := $(object:.mm=.o) 103 | object := $(object:%=Objects/%) 104 | 105 | images := $(shell find MobileCydia.app/ -type f -name '*.png') 106 | images := $(images:%=Images/%) 107 | 108 | lproj_deb := debs/cydia-lproj_$(version)_iphoneos-arm.deb 109 | 110 | all: MobileCydia 111 | 112 | clean: 113 | rm -f MobileCydia postinst 114 | rm -rf Objects/ Images/ 115 | 116 | Objects/%.o: %.c $(header) 117 | @mkdir -p $(dir $@) 118 | @echo "[cycc] $<" 119 | @$(cycc) -c -x c $< 120 | 121 | Objects/%.o: %.m $(header) 122 | @mkdir -p $(dir $@) 123 | @echo "[cycc] $<" 124 | @$(cycc) -c $< $(flags) 125 | 126 | Objects/%.o: %.mm $(header) 127 | @mkdir -p $(dir $@) 128 | @echo "[cycc] $<" 129 | @$(cycc) -c $< $(flags) $(xflags) 130 | 131 | Objects/Version.o: Version.h 132 | 133 | Images/%.png: %.png 134 | @mkdir -p $(dir $@) 135 | @echo "[pngc] $<" 136 | @./pngcrush.sh $< $@ 137 | 138 | sysroot: sysroot.sh 139 | @echo "Your ./sysroot/ is either missing or out of date. Please read compiling.txt for help." 1>&2 140 | @echo 1>&2 141 | @exit 1 142 | 143 | MobileCydia: sysroot $(object) entitlements.xml 144 | @echo "[link] $(object:Objects/%=%)" 145 | @$(cycc) $(filter %.o,$^) $(flags) $(link) $(libs) $(uikit) 146 | @mkdir -p bins 147 | @cp -a $@ bins/$@-$(version) 148 | @echo "[strp] $@" 149 | @strip -no_uuid $@ 150 | @echo "[sign] $@" 151 | @ldid -T0 -Sentitlements.xml $@ || { rm -f $@ && false; } 152 | 153 | CydiaAppliance: CydiaAppliance.mm 154 | $(cycc) $(filter %.mm,$^) $(flags) $(link) -bundle $(libs) $(backrow) 155 | 156 | cfversion: cfversion.mm 157 | $(cycc) $(filter %.mm,$^) $(flags) -framework CoreFoundation 158 | @ldid -T0 -S $@ 159 | 160 | postinst: postinst.mm Sources.mm Sources.h CyteKit/stringWithUTF8Bytes.mm CyteKit/stringWithUTF8Bytes.h CyteKit/UCPlatform.h 161 | $(cycc) $(filter %.mm,$^) $(flags) $(link) -framework CoreFoundation -framework Foundation -framework UIKit -lpcre 162 | @ldid -T0 -S $@ 163 | 164 | debs/cydia_$(version)_iphoneos-arm.deb: MobileCydia preinst postinst cfversion $(images) $(shell find MobileCydia.app) cydia.control Library/firmware.sh Library/startup 165 | sudo rm -rf _ 166 | mkdir -p _/var/lib/cydia 167 | 168 | mkdir -p _/etc/apt 169 | cp -a Trusted.gpg _/etc/apt/trusted.gpg.d 170 | cp -a Sources.list _/etc/apt/sources.list.d 171 | 172 | mkdir -p _/usr/libexec 173 | cp -a Library _/usr/libexec/cydia 174 | cp -a sysroot/usr/bin/du _/usr/libexec/cydia 175 | cp -a cfversion _/usr/libexec/cydia 176 | 177 | mkdir -p _/System/Library 178 | cp -a LaunchDaemons _/System/Library/LaunchDaemons 179 | 180 | mkdir -p _/Applications 181 | cp -a MobileCydia.app _/Applications/Cydia.app 182 | rm -rf _/Applications/Cydia.app/*.lproj 183 | cp -a MobileCydia _/Applications/Cydia.app/MobileCydia 184 | 185 | cd MobileCydia.app && find . -name '*.png' -exec cp -af ../Images/MobileCydia.app/{} ../_/Applications/Cydia.app/{} ';' 186 | 187 | mkdir -p _/Applications/Cydia.app/Sources 188 | ln -s /usr/share/bigboss/icons/bigboss.png _/Applications/Cydia.app/Sources/apt.bigboss.us.com.png 189 | ln -s /usr/share/bigboss/icons/planetiphones.png _/Applications/Cydia.app/Sections/"Planet-iPhones Mods.png" 190 | 191 | #mkdir -p _/Applications/AppleTV.app/Appliances 192 | #cp -a Cydia.frappliance _/Applications/AppleTV.app/Appliances 193 | #cp -a CydiaAppliance _/Applications/AppleTV.app/Appliances/Cydia.frappliance 194 | 195 | #mkdir -p _/Applications/Lowtide.app/Appliances 196 | #ln -s {/Applications/AppleTV,_/Applications/Lowtide}.app/Appliances/Cydia.frappliance 197 | 198 | mkdir -p _/DEBIAN 199 | ./control.sh cydia.control _ >_/DEBIAN/control 200 | cp -a preinst postinst _/DEBIAN/ 201 | 202 | find _ -exec touch -t "$$(date -j -f "%s" +"%Y%m%d%H%M.%S" "$$(git show --format='format:%ct' | head -n 1)")" {} ';' 203 | 204 | sudo chown -R 0 _ 205 | sudo chgrp -R 0 _ 206 | sudo chmod 6755 _/Applications/Cydia.app/MobileCydia 207 | 208 | mkdir -p debs 209 | ln -sf debs/cydia_$(version)_iphoneos-arm.deb Cydia.deb 210 | $(dpkg) -b _ Cydia.deb 211 | @echo "$$(stat -L -f "%z" Cydia.deb) $$(stat -f "%Y" Cydia.deb)" 212 | 213 | $(lproj_deb): $(shell find MobileCydia.app -name '*.strings') cydia-lproj.control 214 | sudo rm -rf __ 215 | mkdir -p __/Applications/Cydia.app 216 | 217 | cp -a MobileCydia.app/*.lproj __/Applications/Cydia.app 218 | 219 | mkdir -p __/DEBIAN 220 | ./control.sh cydia-lproj.control __ >__/DEBIAN/control 221 | 222 | sudo chown -R 0 __ 223 | sudo chgrp -R 0 __ 224 | 225 | mkdir -p debs 226 | ln -sf debs/cydia-lproj_$(version)_iphoneos-arm.deb Cydia_.deb 227 | $(dpkg) -b __ Cydia_.deb 228 | @echo "$$(stat -L -f "%z" Cydia_.deb) $$(stat -f "%Y" Cydia_.deb)" 229 | 230 | package: debs/cydia_$(version)_iphoneos-arm.deb $(lproj_deb) 231 | 232 | .PHONY: all clean package 233 | -------------------------------------------------------------------------------- /pngcrush.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | png=$1 4 | out=$2 5 | 6 | steps=() 7 | 8 | src=${out}.src.png 9 | dst=${out}.dst.png 10 | 11 | copy=("${src}" "${dst}") 12 | 13 | function step() { 14 | "$@" 15 | mv -f "${dst}" "${src}" 16 | steps+=($(stat -f "%z" "${src}")) 17 | } 18 | 19 | pngcrush=$(xcode-select --print-path)/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush 20 | 21 | if grep CgBI "${png}" &>/dev/null; then 22 | if [[ ${png} != ${out} ]]; then 23 | cp -a "${png}" "${out}" 24 | fi 25 | 26 | exit 0 27 | fi 28 | 29 | step cp -fa "${png}" "${dst}" 30 | 31 | #step "${pngcrush}" -q -rem alla -reduce -brute -iphone "${copy[@]}" 32 | 33 | #step "${pngcrush}" -q -rem alla -reduce -brute "${copy[@]}" 34 | #step pincrush "${copy[@]}" 35 | 36 | step "${pngcrush}" -q -rem alla -reduce -iphone "${copy[@]}" 37 | 38 | #"${pngcrush}" -q -rem alla -reduce -brute -iphone "${png}" 1.png 39 | #"${pngcrush}" -q -iphone _.png 2.png 40 | #ls -la 1.png 2.png 41 | 42 | mv -f "${src}" "${out}" 43 | 44 | echo -n "${png##*/} " 45 | for ((i = 0; i != ${#steps[@]}; ++i)); do 46 | if [[ $i != 0 ]]; then 47 | echo -n " " 48 | fi 49 | 50 | echo -n "${steps[i]}" 51 | done 52 | 53 | printf $' %.0f%%\n' "$((steps[${#steps[@]}-1] * 100 / steps[0]))" 54 | -------------------------------------------------------------------------------- /postinst.mm: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include "CyteKit/PerlCompatibleRegEx.hpp" 9 | 10 | _H Sources_; 11 | bool Changed_; 12 | 13 | _H System_; 14 | 15 | int main(int argc, const char *argv[]) { 16 | if (argc < 2 || strcmp(argv[1], "configure") != 0) 17 | return 0; 18 | 19 | NSAutoreleasePool *pool([[NSAutoreleasePool alloc] init]); 20 | 21 | size_t size; 22 | sysctlbyname("kern.osversion", NULL, &size, NULL, 0); 23 | char *osversion = new char[size]; 24 | if (sysctlbyname("kern.osversion", osversion, &size, NULL, 0) != -1) 25 | System_ = [NSString stringWithUTF8String:osversion]; 26 | 27 | NSDictionary *metadata([[[NSMutableDictionary alloc] initWithContentsOfFile:@"/var/lib/cydia/metadata.plist"] autorelease]); 28 | NSUInteger version(0); 29 | 30 | if (metadata != nil) { 31 | Sources_ = [metadata objectForKey:@"Sources"]; 32 | 33 | if (NSNumber *number = [metadata objectForKey:@"Version"]) 34 | version = [number unsignedIntValue]; 35 | } 36 | 37 | if (Sources_ == nil) 38 | Sources_ = [NSMutableDictionary dictionaryWithCapacity:8]; 39 | 40 | if (version == 0) { 41 | CydiaAddSource(@"http://apt.thebigboss.org/repofiles/cydia/", @"stable", [NSMutableArray arrayWithObject:@"main"]); 42 | CydiaAddSource(@"http://apt.modmyi.com/", @"stable", [NSMutableArray arrayWithObject:@"main"]); 43 | CydiaAddSource(@"http://cydia.zodttd.com/repo/cydia/", @"stable", [NSMutableArray arrayWithObject:@"main"]); 44 | CydiaAddSource(@"http://repo666.ultrasn0w.com/", @"./"); 45 | } 46 | 47 | CydiaWriteSources(); 48 | 49 | [pool release]; 50 | return 0; 51 | } 52 | -------------------------------------------------------------------------------- /preinst: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | declare -a cydia 4 | cydia=($CYDIA) 5 | 6 | if [[ $1 == upgrade ]]; then 7 | if [[ ${CYDIA+@} ]]; then 8 | if [[ ${cydia[1]} -lt 1 ]]; then 9 | echo 'PLEASE RESTART CYDIA!' 10 | echo 'PLEASE RESTART CYDIA!' 11 | echo 'PLEASE RESTART CYDIA!' 12 | else 13 | eval "echo 'finish:reopen' >&${cydia[0]}" 14 | fi 15 | fi 16 | fi 17 | 18 | exit 0 19 | -------------------------------------------------------------------------------- /rowhammer_test: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/un1xpwner/Cydia/d1e38cc9fd53ca97e9df6245b6d7ed2440aafc40/rowhammer_test -------------------------------------------------------------------------------- /sysroot.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [[ ${BASH_VERSION} != 4* ]]; then 4 | echo "bash 4.0 required" 1>&2 5 | exit 1 6 | fi 7 | 8 | set -o pipefail 9 | set -e 10 | 11 | shopt -s extglob 12 | shopt -s nullglob 13 | 14 | for command in unlzma wget; do 15 | if ! which "${command}" &>/dev/null; then 16 | echo "Cannot run \`${command}\`. Please read compiling.txt." 1>&2 17 | exit 1 18 | fi 19 | done 20 | 21 | if tar --help | grep bsdtar &>/dev/null; then 22 | echo "Running \`tar\` is bsdtar :(. Please read compiling.txt." 1>&2 23 | exit 1 24 | fi 25 | 26 | rm -rf sysroot 27 | mkdir sysroot 28 | cd sysroot 29 | 30 | repository=http://apt.saurik.com/ 31 | distribution=tangelo 32 | component=main 33 | architecture=iphoneos-arm 34 | 35 | declare -A dpkgz 36 | dpkgz[gz]=gunzip 37 | dpkgz[lzma]=unlzma 38 | 39 | function extract() { 40 | package=$1 41 | url=$2 42 | 43 | wget -O "${package}.deb" "${url}" 44 | for z in lzma gz; do 45 | compressed=data.tar.${z} 46 | 47 | if ar -x "${package}.deb" "${compressed}" 2>/dev/null; then 48 | ${dpkgz[${z}]} "${compressed}" 49 | break 50 | fi 51 | done 52 | 53 | if ! [[ -e data.tar ]]; then 54 | echo "unable to extract package" 1>&2 55 | exit 1 56 | fi 57 | 58 | ls -la data.tar 59 | tar -xf ./data.tar 60 | rm -f data.tar 61 | } 62 | 63 | declare -A urls 64 | 65 | urls[apr]=http://apt.saurik.com/debs/apr_1.3.3-4_iphoneos-arm.deb 66 | urls[apr-lib]=http://apt.saurik.com/debs/apr-lib_1.3.3-2_iphoneos-arm.deb 67 | urls[apt7]=http://apt.saurik.com/debs/apt7_0.7.25.3-6_iphoneos-arm.deb 68 | urls[apt7-lib]=http://apt.saurik.com/debs/apt7-lib_0.7.25.3-9_iphoneos-arm.deb 69 | urls[coreutils]=http://apt.saurik.com/debs/coreutils_7.4-11_iphoneos-arm.deb 70 | urls[mobilesubstrate]=http://apt.saurik.com/debs/mobilesubstrate_0.9.3367-1_iphoneos-arm.deb 71 | urls[pcre]=http://apt.saurik.com/debs/pcre_7.9-3_iphoneos-arm.deb 72 | 73 | if [[ 0 ]]; then 74 | wget -qO- "${repository}dists/${distribution}/${component}/binary-${architecture}/Packages.bz2" | bzcat | { 75 | regex='^([^ \t]*): *(.*)' 76 | declare -A fields 77 | 78 | while IFS= read -r line; do 79 | if [[ ${line} == '' ]]; then 80 | package=${fields[package]} 81 | if [[ -n ${urls[${package}]} ]]; then 82 | filename=${fields[filename]} 83 | urls[${package}]=${repository}${filename} 84 | fi 85 | 86 | unset fields 87 | declare -A fields 88 | elif [[ ${line} =~ ${regex} ]]; then 89 | name=${BASH_REMATCH[1],,} 90 | value=${BASH_REMATCH[2]} 91 | fields[${name}]=${value} 92 | fi 93 | done 94 | } 95 | fi 96 | 97 | for package in "${!urls[@]}"; do 98 | extract "${package}" "${urls[${package}]}" 99 | done 100 | 101 | rm -f *.deb 102 | 103 | if substrate=$(readlink usr/include/substrate.h); then 104 | if [[ ${substrate} == /* ]]; then 105 | ln -sf "../..${substrate}" usr/include/substrate.h 106 | fi 107 | fi 108 | 109 | mkdir -p usr/include 110 | cd usr/include 111 | 112 | mkdir CoreFoundation 113 | wget -O CoreFoundation/CFBundlePriv.h "http://www.opensource.apple.com/source/CF/CF-550/CFBundlePriv.h?txt" 114 | wget -O CoreFoundation/CFPriv.h "http://www.opensource.apple.com/source/CF/CF-550/CFPriv.h?txt" 115 | wget -O CoreFoundation/CFUniChar.h "http://www.opensource.apple.com/source/CF/CF-550/CFUniChar.h?txt" 116 | 117 | if true; then 118 | mkdir -p WebCore 119 | wget -O WebCore/WebCoreThread.h 'http://www.opensource.apple.com/source/WebCore/WebCore-658.28/wak/WebCoreThread.h?txt' 120 | wget -O WebCore/WebEvent.h 'http://www.opensource.apple.com/source/WebCore/WebCore-658.28/platform/iphone/WebEvent.h?txt' 121 | else 122 | wget -O WebCore.tgz http://www.opensource.apple.com/tarballs/WebCore/WebCore-658.28.tar.gz 123 | tar -zx --transform 's@^[^/]*/@WebCore.d/@' -f WebCore.tgz 124 | 125 | mkdir WebCore 126 | cp -a WebCore.d/{*,rendering/style,platform/graphics/transforms}/*.h WebCore 127 | cp -a WebCore.d/platform/{animation,graphics,network,text}/*.h WebCore 128 | cp -a WebCore.d/{accessibility,platform{,/{graphics,network,text}}}/{cf,mac,iphone}/*.h WebCore 129 | cp -a WebCore.d/bridge/objc/*.h WebCore 130 | 131 | wget -O JavaScriptCore.tgz http://www.opensource.apple.com/tarballs/JavaScriptCore/JavaScriptCore-554.1.tar.gz 132 | #tar -zx --transform 's@^[^/]*/API/@JavaScriptCore/@' -f JavaScriptCore.tgz $(tar -ztf JavaScriptCore.tgz | grep '/API/[^/]*.h$') 133 | tar -zx \ 134 | --transform 's@^[^/]*/@@' \ 135 | --transform 's@^icu/@@' \ 136 | -f JavaScriptCore.tgz $(tar -ztf JavaScriptCore.tgz | sed -e ' 137 | /\/icu\/unicode\/.*\.h$/ p; 138 | /\/profiler\/.*\.h$/ p; 139 | /\/runtime\/.*\.h$/ p; 140 | /\/wtf\/.*\.h$/ p; 141 | d; 142 | ') 143 | fi 144 | 145 | for framework in ApplicationServices CoreServices IOKit IOSurface JavaScriptCore WebKit; do 146 | ln -s /System/Library/Frameworks/"${framework}".framework/Headers "${framework}" 147 | done 148 | 149 | for framework in /System/Library/Frameworks/CoreServices.framework/Frameworks/*.framework; do 150 | name=${framework} 151 | name=${name%.framework} 152 | name=${name##*/} 153 | ln -s "${framework}/Headers" "${name}" 154 | done 155 | 156 | mkdir -p Cocoa 157 | cat >Cocoa/Cocoa.h <GraphicsServices/GraphicsServices.h </dev/null; then 12 | version=${version}~srk 13 | fi 14 | 15 | define="#define CYDIA_VERSION \"${version}\"" 16 | before=$(cat Version.h 2>/dev/null) 17 | 18 | if [[ ${before} != ${define} ]]; then 19 | echo "${define}" >Version.h 20 | fi 21 | 22 | echo "${version}" 23 | --------------------------------------------------------------------------------