3
votes

How can I access SMC information - such as CPU temps and fan speeds, from within an app sandbox (to be app store compliant). I can't see an available API, and yet there are apps on the app store that accomplish this functionality - for instance: https://itunes.apple.com/gb/app/monity/id915542151?mt=12

I can get my app to work fine outside of a sandbox (it uses IOKit Framework), but as soon as I put it in the sandbox to make it app store compliant it's dead as there's no available entitlement.

If there's no obvious way to achieve this, is there a means of using some sort of temporary entitlement?

Edit - I can get it to work with the following temporary entitlement:

com.apple.security.temporary-exception.sbpl string (allow iokit-open)

However I do not believe that this would be approved by apple.

1
I expect a kernel driver is involved; just guessing though.trojanfoe
Do you have documentation/tutorial there on his github page and source code of SystemInfoKit? The user has deleted everythingSkrewEverything
i have the source code downloaded from GitHub but none of the instructions that were kept on the (very helpful) website.Rhys Lewis

1 Answers

3
votes

Running a quick dump of the Monity widget's symbol table, it would appear to use this older iStat implementation, which in turn is mostly based on the IOKitLib userspace API (as opposed to IOKit itself). Does this differ from what you had been attempting? (Care to provide a few more details?)