OSStatus myStatus; AuthorizationFlags myFlags = kAuthorizationFlagDefaults; AuthorizationRef myAuthorizationRef; myStatus = AuthorizationCreate(NULL, kAuthorizationEmptyEnvironment, myFlags, &myAuthorizationRef); if (myStatus != errAuthorizationSuccess) return myStatus; AuthorizationItem myItems = {kAuthorizationRightExecute, 0, NULL, 0}; AuthorizationRights myRights = {1, &myItems}; myFlags = kAuthorizationFlagDefaults | kAuthorizationFlagInteractionAllowed | kAuthorizationFlagPreAuthorize | kAuthorizationFlagExtendRights; myStatus = AuthorizationCopyRights (myAuthorizationRef, &myRights, NULL, myFlags, NULL ); if (myStatus != errAuthorizationSuccess) return; myFlags = kAuthorizationFlagDefaults; char myReadBuffer[128]; char myToolPath1[] = "/bin/cp"; char *myArguments1[] = { "-R", [kextPath fileSystemRepresentation], [pathToInstalledKext fileSystemRepresentation], NULL }; FILE *myCommunicationsPipe1 = NULL; myStatus = AuthorizationExecuteWithPrivileges(myAuthorizationRef, myToolPath1, myFlags, myArguments1, &myCommunicationsPipe1); read (fileno (myCommunicationsPipe1),myReadBuffer, sizeof (myReadBuffer));