Re: Disabling screen capture
Re: Disabling screen capture
- Subject: Re: Disabling screen capture
- From: Ron Hunsinger <email@hidden>
- Date: Fri, 21 Feb 2014 15:56:48 -0800
On Feb 21, 2014, at 2:30 PM, SevenBits <email@hidden> wrote:
> Well, yes, but Apple has the source code to OS X. There’s an important difference in that users cannot simply just delete important OS components. In some other operating systems (e.g Linux) everything works with packages and you can simply uninstall packages that are not required, like web browsers and networking capability.
Who said anything about needing the source to the OS?
The "it" that I said was doable was the business of booting off a disk image. That's just a couple of calls to hdiutil and friends.
To prepare the disk image, copy into it all of /System except the screen-sharing parts. (It might be enough just to leave out the parts of /System/Library/Launch{Agents,Daemons} that enable features you don't want enabled.) Do not copy anything from /Applications. (Not copying /Applications/Utilities/Grab.app disables the screen-capture keyboard shortcuts.)
It is true that you cannot just delete important OS components. That's why I suggested instead either hiding them (with a virtual filesystem) or omitting them (by not copying them to a disk image). Neither screen sharing nor screen capture is an "important OS component", so that's OK. And the originals are still in place, so a simple restart brings everything back to normal.
Another possibility is to require the testee to log into an ad hoc user account, one in which you are free to disable undesirable features, either via parental controls or by manipulating that user's launch services database to disable keyboard shortcuts. That reduces the problem to making sure the user is actually logged in as the user you control. (Or not. Let them know up front that if they launch your app under their own user account, it WILL be left with diminished capabilities.) Parental controls with a Simple Finder is pretty close to kiosk mode.
Consider using launchctl to stop dangerous (to you) daemons, like screen sharing. Leave out the -w flag to make the suspension temporary, so the user can always get back to full functionality with a simple restart, even if a bug in your app prevents you from cleaning up.
-Ron Hunsinger
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden