No way to get basic process information when SIP is enabled

Originator:craig.hockenberry
Number:rdar://21966395 Date Originated:23-Jul-2015
Status:Closed Resolved:
Product:OS X Product Version:10.11
Classification:Serious Reproducible:Always
 
Traditionally, task_for_pid() along with task_info() and mach_vm_region() have been used to get basic information for a process. When System Integrity Protection (SIP) is enabled, that no longer works.

An example of how this type of information is collected is shown here:

https://github.com/chockenberry/iPulse/blob/master/AGProcess.m

I’d like to see a mechanism to retrieve basic information about a process that avoids task_for_pid (and the corresponding danger of code injection, etc.)

Ideally, there would be a way to get a list of all processes and then a way to collect basic statistics for each one. The information that would be helpful is:

• Process name and id
• CPU usage (as a percentage)
• CPU time (both user and system)
• Memory usage (as a percentage)
• Memory size (both virtual and resident)
• Task events (fault counts, pages in/out)

The information could then be presented in a way that allows the user to keep an eye on what their Mac is doing at a glance (in the Dock, menubar or small window.) Activity Monitor can show this information, but not in a compact way that’s always visible.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!