├── xCon.deb ├── Makefile ├── Layout ├── DEBIAN │ └── control └── Library │ └── MobileSubstrate │ └── DynamicLibraries │ └── xCon.plist ├── README └── Tweak.xm /xCon.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rawmx/xCon/HEAD/xCon.deb -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | include theos/makefiles/common.mk 2 | 3 | TWEAK_NAME = xCon 4 | xCon_FILES = Tweak.xm 5 | 6 | include $(THEOS_MAKE_PATH)/tweak.mk 7 | -------------------------------------------------------------------------------- /Layout/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: com.n00neimp0rtant.xcon 2 | Name: xCon 3 | Depends: mobilesubstrate 4 | Conflicts: com.n00neimp0rtant.dtvpatch 5 | Version: 0.0.5 6 | Architecture: iphoneos-arm 7 | Description: bypass jailbreak protection 8 | Maintainer: n00neimp0rtant 9 | Author: n00neimp0rtant 10 | Section: Tweaks 11 | -------------------------------------------------------------------------------- /Layout/Library/MobileSubstrate/DynamicLibraries/xCon.plist: -------------------------------------------------------------------------------- 1 | { 2 | Filter = { 3 | Bundles = ( 4 | "com.bloomberg.mobile.anywhere", 5 | "com.timewarnercable.simulcast", 6 | "com.directv.mobile.iphone.nomad.production", 7 | "com.lovefilm.ipad", 8 | "com.bhn.simulcast", 9 | "com.cablevision.rDVR", 10 | "com.good.gmmiphone", 11 | "com.idealbinary.rapunzel", 12 | "com.verizon.ams.flexview", 13 | "com.directv.mobile.ipad.nagivator.production", 14 | ); 15 | }; 16 | } -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | ex-con, n. (informal) 2 | 3 | an ex-convict; a former inmate of a prison. 4 | 5 | ============================================================== 6 | 7 | Latest build: 0.0.5 8 | 9 | I am unable to test many of these apps myself, so you have to give me a thumbs-up or -down. 10 | 11 | 12 | 13 | WORKING: 14 | 15 | - Bloomberg Anywhere: confirmed 16 | - Bright House: appears to work, needs confirmed 17 | - DirecTV iPad: confirmed 18 | - Grimm Rapunzel 3D: appears to work, needs confirmed 19 | - Time Warner Cable: confirmed 20 | - Verizon FiOS OnDemand: appears to work, needs confirmed 21 | 22 | 23 | 24 | NOT YET WORKING: 25 | 26 | - Cablevision: not yet implemented 27 | - Cisco M-Learning: implemented but not committed 28 | - DirecTV Nomad: not yet implemented 29 | - Golden Cinema: not yet implemented 30 | - Good For Enterprise: partial support 31 | - LOVEFiLM Player: not yet implemented -------------------------------------------------------------------------------- /Tweak.xm: -------------------------------------------------------------------------------- 1 | // Bloomberg Anywhere 2 | 3 | %hook CitrixApplicationDelegate 4 | -(void)checkTimeBomb 5 | { 6 | // I don't know what this is, but I don't like it. 7 | NSLog(@"Attempt to check time bomb caught and DENIED!!!!!"); 8 | } 9 | -(BOOL)isJailbroken 10 | { 11 | return NO; 12 | } 13 | %end 14 | 15 | %hook BBAAppDelegate 16 | -(BOOL)isJailbroken 17 | { 18 | return NO; 19 | } 20 | %end 21 | 22 | 23 | 24 | 25 | 26 | 27 | // Cablevision 28 | 29 | %hook NSFileManager 30 | 31 | -(BOOL)fileExistsAtPath:(NSString*)path 32 | { 33 | NSLog(@"checking if file exists at path: %@", path); 34 | %orig; 35 | } 36 | 37 | -(BOOL)fileExistsAtPath:(NSString*)path isDirectory:(BOOL*)isDirectory 38 | { 39 | NSLog(@"checking if folder exists at path %@," path); 40 | %orig; 41 | } 42 | 43 | %end 44 | 45 | 46 | 47 | 48 | 49 | 50 | // DirecTV iPad 51 | 52 | %hook DTVApplicationBase 53 | -(BOOL)isDeviceJailbroken 54 | { 55 | return NO; 56 | } 57 | %end 58 | 59 | %hook ApplicationSettings 60 | -(BOOL)optionJailbreakCheckEnabled 61 | { 62 | return NO; 63 | } 64 | -(void)setOptionJailbreakCheckEnabled:(BOOL)enabled 65 | { 66 | %orig(NO); 67 | } 68 | %end 69 | 70 | 71 | 72 | 73 | 74 | // Good For Enterprise 75 | // Not yet fully compatible, but progress 76 | 77 | %hook JailbreakEnhacement 78 | -(id)init 79 | { 80 | NSLog(@"n00neimp0rtant here, let's get busy"); 81 | return %orig; 82 | } 83 | 84 | +(BOOL)partitionsModified 85 | { 86 | NSLog(@"Checking partition modification, giving fake thumbs-up"); 87 | return NO; 88 | } 89 | 90 | +(BOOL)servicesModified 91 | { 92 | NSLog(@"Checking service modification, giving fake thumbs-up"); 93 | return NO; 94 | } 95 | 96 | +(BOOL)checkFileSystemWithPath:(id)path forPermissions:(id)permissions 97 | { 98 | BOOL original = %orig; 99 | NSLog(@"Checking file system."); 100 | NSLog(@"path: %@", path); 101 | NSLog(@"permissions is of class type: %@", NSStringFromClass([permissions class])); 102 | NSLog(@"permissions: %@", permissions); 103 | if(original) NSLog(@"giving me a yes..."); 104 | else NSLog(@"giving me a no..."); 105 | NSLog(@"leaving well enough alone for now."); 106 | return original; 107 | } 108 | 109 | +(BOOL)canUseFork 110 | { 111 | NSLog(@"Checking if can fork processes."); 112 | BOOL original = %orig; 113 | if(original) NSLog(@"giving me a yes..."); 114 | else NSLog(@"giving me a no..."); 115 | NSLog(@"giving fake thumbs-up"); 116 | return NO; 117 | } 118 | 119 | +(BOOL)kernelStateModified 120 | { 121 | NSLog(@"Checking if kernel state modified, giving fake thumbs-up"); 122 | return NO; 123 | } 124 | 125 | +(BOOL)devReadPermissionModified:(id)modified 126 | { 127 | NSLog(@"Checking if dev read permissions are modified."); 128 | NSLog(@"modified is of class type: %@", NSStringFromClass([modified class])); 129 | NSLog(@"modified: %@", modified); 130 | BOOL original = %orig; 131 | if(original) NSLog(@"giving me a yes..."); 132 | else NSLog(@"giving me a no..."); 133 | NSLog(@"might as well give fake thumbs-up"); 134 | return NO; 135 | } 136 | +(BOOL)filePermission:(id)permission 137 | { 138 | NSLog(@"Checking file permission."); 139 | NSLog(@"permission is of class type: %@", NSStringFromClass([permission class])); 140 | NSLog(@"permission: %@", permission); 141 | BOOL original = %orig; 142 | if(original) NSLog(@"giving me a yes..."); 143 | else NSLog(@"giving me a no..."); 144 | NSLog(@"leaving well enough alone for now."); 145 | return original; 146 | } 147 | 148 | +(BOOL)checkCompilianceEarlyViolated 149 | { 150 | NSLog(@"Compliance violated early. Giving fake thumbs-up"); 151 | return NO; 152 | } 153 | 154 | +(BOOL)checkComplianceNewlyViolated 155 | { 156 | NSLog(@"Compliance newly violated. Giving fake thumbs-up"); 157 | return NO; 158 | } 159 | %end 160 | 161 | 162 | 163 | 164 | 165 | // Grimm 166 | // Should work, but app itself looks broken on iOS 5? 167 | 168 | %hook FlurrySession 169 | -(id)init 170 | { 171 | NSLog(@"n00neimp0rtant here, we're in"); 172 | return %orig; 173 | } 174 | +(BOOL)deviceIsJailbroken 175 | { 176 | NSLog(@"App wants to know if it is jailbroken"); 177 | return NO; 178 | } 179 | +(BOOL)appIsCracked 180 | { 181 | NSLog(@"App wants to know if it is cracked"); 182 | return NO; 183 | } 184 | %end 185 | 186 | 187 | 188 | 189 | 190 | 191 | // TWCTV 192 | 193 | %hook XXUnknownSuperclass 194 | -(BOOL)isJailbroken 195 | { 196 | return NO; 197 | } 198 | %end 199 | 200 | %hook TWCCustomMessages 201 | -(void)setJailbroken_device_not_allowed:(NSString*)string 202 | { 203 | %orig(@"If you're reading this, my jailbreak patch failed. Contact me @n00neimp0rtant so we can get this fixed."); 204 | } 205 | 206 | -(NSString*)jailbroken_device_not_allowed 207 | { 208 | return [NSString stringWithFormat:@"If you're reading this, my jailbreak patch failed. Contact me @n00neimp0rtant so we can get this fixed."]; 209 | } 210 | %end 211 | 212 | %hook TWCTVAppDelegate 213 | -(void)handleJailbrokenDevice 214 | { 215 | NSLog(@"n00neimp0rtant here! nooping handleJailbrokenDevice"); 216 | } 217 | %end 218 | 219 | %hook TWCAppSettings 220 | -(BOOL)disable_jailbreak_detect 221 | { 222 | return YES; 223 | } 224 | -(void)setDisable_jailbreak_detect:(BOOL)disable 225 | { 226 | %orig(YES); 227 | } 228 | %end 229 | 230 | 231 | 232 | 233 | 234 | // Verizon OnDemand 235 | 236 | %hook SecureMediaManager 237 | -(void)checkRegisterNotification:(id)notification 238 | { 239 | id original = notification; 240 | NSNotification* newNotif = [NSNotification notificationWithName: [original name] object: [original object] userInfo: [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:1], @"registerComplete", [NSNumber numberWithInt:1], @"registerStatus", nil]]; 241 | %log; 242 | NSLog(@"about to actually return this fake notification: %@", newNotif); 243 | %orig(newNotif); 244 | } 245 | %end 246 | %hook mscSingleton 247 | -(void)smInitNotificationHandler:(id)handler 248 | { 249 | id original = handler; 250 | NSNotification* newNotif = [NSNotification notificationWithName: [original name] object: [original object] userInfo: [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:1], @"initStatus", nil]]; 251 | %log; 252 | NSLog(@"about to actually return this fake notification: %@", newNotif); 253 | %orig(newNotif); 254 | } 255 | %end 256 | 257 | 258 | 259 | 260 | // fledgling hack stuff on Nomad, currently crashes app 261 | 262 | /*%hook NSObject 263 | -(id)init 264 | { 265 | id obj = %orig; 266 | NSLog(@"about to init a(n) %@", NSStringFromClass([obj class])); 267 | return obj; 268 | } 269 | %end 270 | 271 | %hook NSComparisonPredicate 272 | + (NSPredicate *)predicateWithLeftExpression:(NSExpression *)lhs rightExpression:(NSExpression *)rhs modifier:(NSComparisonPredicateModifier)modifier type:(NSPredicateOperatorType)type options:(NSComparisonPredicateOptions)options { %log; return %orig; } 273 | + (NSPredicate *)predicateWithLeftExpression:(NSExpression *)lhs rightExpression:(NSExpression *)rhs customSelector:(SEL)selector { %log; return %orig; } 274 | - (id)initWithLeftExpression:(NSExpression *)lhs rightExpression:(NSExpression *)rhs modifier:(NSComparisonPredicateModifier)modifier type:(NSPredicateOperatorType)type options:(NSComparisonPredicateOptions)options { %log; return %orig; } 275 | - (id)initWithLeftExpression:(NSExpression *)lhs rightExpression:(NSExpression *)rhs customSelector:(SEL)selector { %log; return %orig; } 276 | - (NSPredicateOperatorType)predicateOperatorType { %log; return %orig; } 277 | - (NSComparisonPredicateModifier)comparisonPredicateModifier { %log; return %orig; } 278 | - (NSExpression *)leftExpression { %log; return %orig; } 279 | - (NSExpression *)rightExpression { %log; return %orig; } 280 | - (SEL)customSelector { %log; return %orig; } 281 | - (NSComparisonPredicateOptions)options { %log; return %orig; } 282 | %end 283 | %hook NSString 284 | - (NSUInteger)length { %log; return %orig; } 285 | - (unichar)characterAtIndex:(NSUInteger)index { %log; return %orig; } 286 | %end 287 | %hook NSString 288 | - (void)getCharacters:(unichar *)buffer range:(NSRange)aRange { %log; %orig; } 289 | - (NSString *)substringFromIndex:(NSUInteger)from { %log; return %orig; } 290 | - (NSString *)substringToIndex:(NSUInteger)to { %log; return %orig; } 291 | - (NSString *)substringWithRange:(NSRange)range { %log; return %orig; } 292 | - (NSComparisonResult)compare:(NSString *)string { %log; return %orig; } 293 | - (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask { %log; return %orig; } 294 | - (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)compareRange { %log; return %orig; } 295 | - (NSComparisonResult)compare:(NSString *)string options:(NSStringCompareOptions)mask range:(NSRange)compareRange locale:(id)locale { %log; return %orig; } 296 | - (NSComparisonResult)caseInsensitiveCompare:(NSString *)string { %log; return %orig; } 297 | - (NSComparisonResult)localizedCompare:(NSString *)string { %log; return %orig; } 298 | - (NSComparisonResult)localizedCaseInsensitiveCompare:(NSString *)string { %log; return %orig; } 299 | //- (NSComparisonResult)localizedStandardCompare:(NSString *)string NS_AVAILABLE(10_6, 4_0) { %log; return %orig; } 300 | - (BOOL)isEqualToString:(NSString *)aString { %log; return %orig; } 301 | - (BOOL)hasPrefix:(NSString *)aString { %log; return %orig; } 302 | - (BOOL)hasSuffix:(NSString *)aString { %log; return %orig; } 303 | - (NSRange)rangeOfString:(NSString *)aString { %log; return %orig; } 304 | - (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask { %log; return %orig; } 305 | - (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange { %log; return %orig; } 306 | //- (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask range:(NSRange)searchRange locale:(NSLocale *)locale NS_AVAILABLE(10_5, 2_0) { %log; return %orig; } 307 | - (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSet { %log; return %orig; } 308 | - (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSet options:(NSStringCompareOptions)mask { %log; return %orig; } 309 | - (NSRange)rangeOfCharacterFromSet:(NSCharacterSet *)aSet options:(NSStringCompareOptions)mask range:(NSRange)searchRange { %log; return %orig; } 310 | - (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)index { %log; return %orig; } 311 | //- (NSRange)rangeOfComposedCharacterSequencesForRange:(NSRange)range NS_AVAILABLE(10_5, 2_0) { %log; return %orig; } 312 | - (NSString *)stringByAppendingString:(NSString *)aString { %log; return %orig; } 313 | //- (NSString *)stringByAppendingFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2) { %log; return %orig; } 314 | - (double)doubleValue { %log; return %orig; } 315 | - (float)floatValue { %log; return %orig; } 316 | - (int)intValue { %log; return %orig; } 317 | - (NSInteger)integerValue NS_AVAILABLE(10_5, 2_0) { %log; return %orig; } 318 | - (long long)longLongValue NS_AVAILABLE(10_5, 2_0) { %log; return %orig; } 319 | - (BOOL)boolValue NS_AVAILABLE(10_5, 2_0) { %log; return %orig; } 320 | - (NSArray *)componentsSeparatedByString:(NSString *)separator { %log; return %orig; } 321 | //- (NSArray *)componentsSeparatedByCharactersInSet:(NSCharacterSet *)separator NS_AVAILABLE(10_5, 2_0) { %log; return %orig; } 322 | - (NSString *)commonPrefixWithString:(NSString *)aString options:(NSStringCompareOptions)mask { %log; return %orig; } 323 | - (NSString *)uppercaseString { %log; return %orig; } 324 | - (NSString *)lowercaseString { %log; return %orig; } 325 | - (NSString *)capitalizedString { %log; return %orig; } 326 | - (NSString *)stringByTrimmingCharactersInSet:(NSCharacterSet *)set { %log; return %orig; } 327 | - (NSString *)stringByPaddingToLength:(NSUInteger)newLength withString:(NSString *)padString startingAtIndex:(NSUInteger)padIndex { %log; return %orig; } 328 | - (void)getLineStart:(NSUInteger *)startPtr end:(NSUInteger *)lineEndPtr contentsEnd:(NSUInteger *)contentsEndPtr forRange:(NSRange)range { %log; %orig; } 329 | - (NSRange)lineRangeForRange:(NSRange)range { %log; return %orig; } 330 | - (void)getParagraphStart:(NSUInteger *)startPtr end:(NSUInteger *)parEndPtr contentsEnd:(NSUInteger *)contentsEndPtr forRange:(NSRange)range { %log; %orig; } 331 | - (NSRange)paragraphRangeForRange:(NSRange)range { %log; return %orig; } 332 | //- (void)enumerateSubstringsInRange:(NSRange)range options:(NSStringEnumerationOptions)opts usingBlock:(void (^)(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop))block NS_AVAILABLE(10_6, 4_0) { %log; %orig; } 333 | //- (void)enumerateLinesUsingBlock:(void (^)(NSString *line, BOOL *stop))block NS_AVAILABLE(10_6, 4_0) { %log; %orig; } 334 | - (NSString *)description { %log; return %orig; } 335 | - (NSUInteger)hash { %log; return %orig; } 336 | - (NSStringEncoding)fastestEncoding { %log; return %orig; } 337 | - (NSStringEncoding)smallestEncoding { %log; return %orig; } 338 | - (NSData *)dataUsingEncoding:(NSStringEncoding)encoding allowLossyConversion:(BOOL)lossy { %log; return %orig; } 339 | - (NSData *)dataUsingEncoding:(NSStringEncoding)encoding { %log; return %orig; } 340 | - (BOOL)canBeConvertedToEncoding:(NSStringEncoding)encoding { %log; return %orig; } 341 | - (__strong const char *)cStringUsingEncoding:(NSStringEncoding)encoding { %log; return %orig; } 342 | - (BOOL)getCString:(char *)buffer maxLength:(NSUInteger)maxBufferCount encoding:(NSStringEncoding)encoding { %log; return %orig; } 343 | - (BOOL)getBytes:(void *)buffer maxLength:(NSUInteger)maxBufferCount usedLength:(NSUInteger *)usedBufferCount encoding:(NSStringEncoding)encoding options:(NSStringEncodingConversionOptions)options range:(NSRange)range remainingRange:(NSRangePointer)leftover { %log; return %orig; } 344 | - (NSUInteger)maximumLengthOfBytesUsingEncoding:(NSStringEncoding)enc { %log; return %orig; } 345 | - (NSUInteger)lengthOfBytesUsingEncoding:(NSStringEncoding)enc { %log; return %orig; } 346 | - (NSString *)decomposedStringWithCanonicalMapping { %log; return %orig; } 347 | - (NSString *)precomposedStringWithCanonicalMapping { %log; return %orig; } 348 | - (NSString *)decomposedStringWithCompatibilityMapping { %log; return %orig; } 349 | - (NSString *)precomposedStringWithCompatibilityMapping { %log; return %orig; } 350 | //- (NSString *)stringByFoldingWithOptions:(NSStringCompareOptions)options locale:(NSLocale *)locale NS_AVAILABLE(10_5, 2_0) { %log; return %orig; } 351 | //- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange NS_AVAILABLE(10_5, 2_0) { %log; return %orig; } 352 | //- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement NS_AVAILABLE(10_5, 2_0) { %log; return %orig; } 353 | //- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement NS_AVAILABLE(10_5, 2_0) { %log; return %orig; } 354 | - (__strong const char *)UTF8String { %log; return %orig; } 355 | + (NSStringEncoding)defaultCStringEncoding { %log; return %orig; } 356 | + (const NSStringEncoding *)availableStringEncodings { %log; return %orig; } 357 | + (NSString *)localizedNameOfStringEncoding:(NSStringEncoding)encoding { %log; return %orig; } 358 | - (id)init { %log; return %orig; } 359 | - (id)initWithCharactersNoCopy:(unichar *)characters length:(NSUInteger)length freeWhenDone:(BOOL)freeBuffer { %log; return %orig; } 360 | - (id)initWithCharacters:(const unichar *)characters length:(NSUInteger)length { %log; return %orig; } 361 | - (id)initWithUTF8String:(const char *)nullTerminatedCString { %log; return %orig; } 362 | - (id)initWithString:(NSString *)aString { %log; return %orig; } 363 | //- (id)initWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2) { %log; return %orig; } 364 | //- (id)initWithFormat:(NSString *)format arguments:(va_list)argList NS_FORMAT_FUNCTION(1,0) { %log; return %orig; } 365 | //- (id)initWithFormat:(NSString *)format locale:(id)locale, ... NS_FORMAT_FUNCTION(1,3) { %log; return %orig; } 366 | //- (id)initWithFormat:(NSString *)format locale:(id)locale arguments:(va_list)argList NS_FORMAT_FUNCTION(1,0) { %log; return %orig; } 367 | //- (id)initWithData:(NSData *)data encoding:(NSStringEncoding)encoding { %log; return %orig; } 368 | //- (id)initWithBytes:(const void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding { %log; return %orig; } 369 | //- (id)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)len encoding:(NSStringEncoding)encoding freeWhenDone:(BOOL)freeBuffer { %log; return %orig; } 370 | + (id)string { %log; return %orig; } 371 | + (id)stringWithString:(NSString *)string { %log; return %orig; } 372 | //+ (id)stringWithCharacters:(const unichar *)characters length:(NSUInteger)length { %log; return %orig; } 373 | + (id)stringWithUTF8String:(const char *)nullTerminatedCString { %log; return %orig; } 374 | //+ (id)stringWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2) { %log; return %orig; } 375 | //+ (id)localizedStringWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2) { %log; return %orig; } 376 | - (id)initWithCString:(const char *)nullTerminatedCString encoding:(NSStringEncoding)encoding { %log; return %orig; } 377 | + (id)stringWithCString:(const char *)cString encoding:(NSStringEncoding)enc { %log; return %orig; } 378 | - (id)initWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error { %log; return %orig; } 379 | - (id)initWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error { %log; return %orig; } 380 | + (id)stringWithContentsOfURL:(NSURL *)url encoding:(NSStringEncoding)enc error:(NSError **)error { %log; return %orig; } 381 | + (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error { %log; return %orig; } 382 | - (id)initWithContentsOfURL:(NSURL *)url usedEncoding:(NSStringEncoding *)enc error:(NSError **)error { %log; return %orig; } 383 | - (id)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error { %log; return %orig; } 384 | + (id)stringWithContentsOfURL:(NSURL *)url usedEncoding:(NSStringEncoding *)enc error:(NSError **)error { %log; return %orig; } 385 | + (id)stringWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error { %log; return %orig; } 386 | - (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error { %log; return %orig; } 387 | - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error { %log; return %orig; } 388 | 389 | %end 390 | %hook NSMutableString 391 | - (void)replaceCharactersInRange:(NSRange)range withString:(NSString *)aString { %log; %orig; } 392 | %end 393 | %hook NSMutableString 394 | - (void)insertString:(NSString *)aString atIndex:(NSUInteger)loc { %log; %orig; } 395 | - (void)deleteCharactersInRange:(NSRange)range { %log; %orig; } 396 | - (void)appendString:(NSString *)aString { %log; %orig; } 397 | //- (void)appendFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2) { %log; %orig; } 398 | - (void)setString:(NSString *)aString { %log; %orig; } 399 | - (id)initWithCapacity:(NSUInteger)capacity { %log; return %orig; } 400 | + (id)stringWithCapacity:(NSUInteger)capacity { %log; return %orig; } 401 | - (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange { %log; return %orig; } 402 | %end 403 | %hook NSString 404 | - (id)propertyList { %log; return %orig; } 405 | - (NSDictionary *)propertyListFromStringsFileFormat { %log; return %orig; } 406 | %end 407 | %hook NSString 408 | //- (const char *)cString NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 409 | //- (const char *)lossyCString NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 410 | //- (NSUInteger)cStringLength NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 411 | - (void)getCString:(char *)bytes NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; %orig; } 412 | - (void)getCString:(char *)bytes maxLength:(NSUInteger)maxLength NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; %orig; } 413 | - (void)getCString:(char *)bytes maxLength:(NSUInteger)maxLength range:(NSRange)aRange remainingRange:(NSRangePointer)leftoverRange NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; %orig; } 414 | - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 415 | - (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 416 | - (id)initWithContentsOfFile:(NSString *)path NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 417 | - (id)initWithContentsOfURL:(NSURL *)url NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 418 | + (id)stringWithContentsOfFile:(NSString *)path NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 419 | + (id)stringWithContentsOfURL:(NSURL *)url NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 420 | - (id)initWithCStringNoCopy:(char *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)freeBuffer NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 421 | - (id)initWithCString:(const char *)bytes length:(NSUInteger)length NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 422 | - (id)initWithCString:(const char *)bytes NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 423 | + (id)stringWithCString:(const char *)bytes length:(NSUInteger)length NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 424 | + (id)stringWithCString:(const char *)bytes NS_DEPRECATED(10_0, 10_4, 2_0, 2_0) { %log; return %orig; } 425 | - (void)getCharacters:(unichar *)buffer { %log; %orig; } 426 | %end 427 | %hook NSSimpleCString 428 | %end 429 | %hook NSConstantString 430 | %end*/ 431 | --------------------------------------------------------------------------------