[runtime] iOS-Runtime-Headers

Dynamically Generated iOS Headers

https://github.com/nst/iOS-Runtime-Headers

Here are iOS Objective-C headers as derived from runtime introspection.

The headers were generated using RuntimeBrowser for iPhone.

这个是在运行时导出的所有的 Objective-C 的头文件。

这些头文件都是通过 RuntimeBrowser for iPhone 来生成的。

Search(搜索

You can search the headers with github search:

https://github.com/search?type=Code&q=repo:nst/iOS-Runtime-Headers+hack

你可以在github上用下面的方式来搜索:

https://github.com/search?type=Code&q=repo:nst/iOS-Runtime-Headers+hack

Sample usage(使用

You can use the headers this way:

你可以用下面的方式来使用这些头文件:

NSBundle *b = [NSBundle bundleWithPath:@"/System/Library/PrivateFrameworks/GAIA.framework"];
BOOL success = [b load];

Class SKTelephonyController = NSClassFromString(@"SKTelephonyController");
id tc = [SKTelephonyController sharedInstance];

NSLog(@"-- myPhoneNumber: %@", [tc myPhoneNumber]);
NSLog(@"-- imei: %@", [tc imei]);

Note that many other unique identifiers can be retrieved:

记住哦亲,许多唯一标示符都是能找到的哦:

Class AADeviceInfo = NSClassFromString(@"AADeviceInfo");
NSLog(@"-- serialNumber: %@", [AADeviceInfo serialNumber]);
NSLog(@"-- udid: %@", [AADeviceInfo udid]);
NSLog(@"-- appleIDClientIdentifier: %@", [AADeviceInfo appleIDClientIdentifier]);

id deviceInfo = [[[AADeviceInfo alloc] init] autorelease];
NSLog(@"-- wifiMacAddress: %@", [deviceInfo wifiMacAddress]);

Class OSDBattery = NSClassFromString(@"OSDBattery");
NSLog(@"-- battery serial number: %@", [OSDBattery _getBatterySerialNumber]);

Timeline(时间线

  • Green == public(公开的
  • Red == private(私有的
  • Blue == dylib(动态加载的

The code to draw this picture is inhttps://github.com/nst/RuntimeBrowser/tree/master/tools/ios_headers_history.

原文地址:https://www.cnblogs.com/YouXianMing/p/3659410.html