Updating extensions for iOS 8
Let's collect knowledge like we did with Updating extensions for iOS 7 - paste in your notes and share what you've learned, and somebody else will organize it later. :) If you want to collaborate over IRC, see IRC for how to connect to #theos and #iphonedev.
Hey developer, you can add your knowledge here! Yes, you! Make an account and edit this page!
What has changed in iOS 8?
- The term 'Display Identifier' has been removed from SpringBoard. Methods that used the term usually have a 'Bundle Identifier' equivalent; e.g. -[SBApplicationController applicationWithDisplayIdentifier:] and -[SBApplication displayIdentifier] are now -[SBApplicationController applicationWithBundleIdentifier] and -[SBApplication bundleIdentifier]
- "Has anyone looked into granting entitlements in iOS 8? It would appear the popular method of hooking "_XPCConnectionHasEntitlement" no longer works." "I haven't had a whole lot of time to do testing or look for better methods but I found "_BSAuditTokenTaskHasEntitlement" which appears to have a similar function to "_XPCConnectionHasEntitlement", its part of the "assertiond" process which must be hooked in order to access it, so far it's worked. More specifically, part of the "BaseBoard" private framework within "assertiond"."
- Mobile application containers are at /var/mobile/Containers/Application
- Looks like certain apps dont have privileges for IORegistryEntryCreateCFProperty anymore (Safari, Mail)
- xTM3x has been doing some research into preference saving
What is new in iOS 8, and how does it work?
- "would anyone happen to know what the view Reachability invokes is?" "no idea, but my wild guess would be that it's springboard contexthostview for that app."
- FrontBoard is a new thing
- Apple seems to call the iOS side Octavia and the OS X side Nero
Which tools and other preexisting things are still working on iOS 8? Which ones don't work?
- The package
syslogd to /var/log/syslogseems to not be working. An alternative - also as listed on TheiPhoneWiki.
- "Does Theos work on iOS 8?" uroboro responds here
- libsymbolicate doesn't work on 8... (VMUHeader is gone from Symbolication.framework)
- RocketBootstrap seems to work
- PLBatteryPropertiesEntry no longer seems to exist for getting current battery info such as: [PLBatteryPropertiesEntry batteryPropertiesEntry].currentCapacity. You can still use:
io_service_t powerSource = IOServiceGetMatchingService(kIOMasterPortDefault, IOServiceMatching("IOPMPowerSource")); CFNumberRef currentCapacityNum = (CFNumberRef)IORegistryEntryCreateCFProperty(powerSource, CFSTR(kIOPMPSCurrentCapacityKey), kCFAllocatorDefault, 0);
Random assorted other notes
- iOS 8.0 Headers and another set of SpringBoard headers (made with two different class dumping tools).
- In things like SBStarkBanner* classes, Stark is the codename for the blur-heavy UI since iOS 7