On Feb 21, 2014, at 2:30 PM, SevenBits <sevenbitst...@gmail.com> 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 (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to