kext requirement for macOS version

  • 1
  • Problem
  • Updated 1 year ago
With the version SnagIT 4 in the Mac App Store and the feature listed with the ability to audio capture system sound, I was excited to try this out as we sometime need to record collaborations (Skype/Lync). After downloading the App from the Mac App Store, clicking the record audio option informs you to go to the support site where you have to download and install another package. This package appears to install a kext to my system (com.techsmith.TACC). Obviously kexts are forbidden by Apple as part of the Mac App Store requirements. So here I would say TechSmith pulled a fast one and is really trying to skirt the issue of why Apple has this restriction in place. While I contacted Apple and they are investing further, they also refunded my purchase. 

My question to TechSmith is: This is not acceptable. I purchase Apps from the Mac App Store because of the strict requirements Apple has in place to ensure the Apps are compliant and not putting my system at risk. Skirting the issue like this shows a lack of respect for users and Apple with the requirements. This is especially true in that you can achieve the same features implementing a compliant solution using Audio Extensions which are fully allowed by Apple and Apps for the Mac App Store. When is TechSmith going to fix their mistake by:
1. Be transparent to users that audio recording requires a separate download to make it work vs. what is promised in the Mac App Store description for the App
2. Fix the problem permanently by properly writing the audio recording portion into a proper Audio Extension and not as a kernel extension. 


For now I have a workaround using Loopback from Rogue Amoeba (more features, fully implemented with Audio Extension) and the built in Quicktime recording feature in macOS.

TechSmith lost more respect and integrity points over this issue not to mention SnagIT can't be the recommended go-to App for other Mac users wanting to record screen and audio (e.g. you lost sales). 

A response from TechSmith management would be appreciated. 
Photo of Cory Johnson

Cory Johnson

  • 5 Posts
  • 0 Reply Likes
  • frustrated

Posted 4 years ago

  • 1
Photo of Paul Middlin

Paul Middlin, Employee

  • 1329 Posts
  • 338 Reply Likes

Hi Cory,

Thank you for your detailed post. I'm happy to offer up an explanation of why we chose to go the route that we did. Regardless though, your point is still well made that we have used a technology that in the wrong hands could certainly be dangerous. It's up to you if you find it too risky. We do of course take our users' security seriously though.

The reason we went with a kext instead here is that we simply could not record everything that users need to in an easy to set up way. You can, with Audio Extension Units, create what looks like a device to output to from your other apps that we can then record. However, you have to go to this effort and adjust those apps to use it. It can be confusing or difficult to set up, and we don't think that most of our users would understand how to do this, or remember to do it reliably. 

The kext, by comparison, is much more reliable and requires less setup for users. For apps installed outside the app store, they don't even need the additional download. Within the app store, it makes for an extra step, but much less than the audio units would require. 

I hope this explanation is helpful to you, but again we respect and understand your decision not to use the app given its use of a kext, and I'm sorry to hear you won't be a customer.

-Paul Middlin
Software Architect [Snagit/Camtasia for Mac]

Photo of Cory Johnson

Cory Johnson

  • 5 Posts
  • 0 Reply Likes
Thanks for the reply Paul.

Unfortunately from my view, the risk imposed with the decision insert yourself into the kernel doesn't justify the requirements in this case. There is a reason Apple makes an approved method available and also marks the developer documents for writing kexts with the statement of "Keep Out". 

Additionally I don't agree the comment that the Audio Extension route doesn't allow for a simple approach for the user. It is simply a different implementation and I'd imagine one that TechSmith hasn't attempted before (and were probably comfortable and had existing code laying around for the kernel approach). If I check the box in SnagIT to record audio, SnagIT can transparently create that virtual audio device and flip to using it for the input. As the user adds inputs and Apps to the list of audio sources to record, SnagIT can transparently add those. To the end user, it is all seamless. There is no "adjust those Apps" to use it. In fact, there is no interaction or adjusting of any other Apps at all. So here, I think TechSmith needs to go back and really look at this as it isn't a hard problem to solve. 

So again, thank you for the response. It is appreciated. I would end with the comment that SnagIT is a good App but has the potential to be a great one. If you can do some digging and implement the Audio Extension design, remove the required kext and manual download and install of it by the user, not only will you have complete compliance to Apple's requirements, but you will remove the risks and SnagIT will be a really great App for your users. 

Cheers. 
Photo of bobbo

bobbo

  • 1 Post
  • 0 Reply Likes
I'm sorry, but this is super-OCD nonsense. Getting paranoid and militant about a simple driver is over the top. Kexts are not "keep out" - please provide a link to Apple's documentation that says third-party developers are not allowed to develop drivers (i.e. kexts). There is a reason /Library/Extensions exists, and why TechSmith - correctly - install their TACC.kext driver into it. Because that is the location for third-party drivers. Similarly, CUDA (as another example) installs into /Library/Frameworks.
You would appear to be quite happy for GarageBand from the App Store to download and install mega-GB of additional stuff - that is delivered into /Library/Application Support, not contained within the app bundle - but somehow this one is over the line. You are okay for Evernote from the MAS to run a helper utility in the background.
Unfortunately, a little bit of knowledge is just enough to get some users into trouble with thinking they are experts in the management of their machines.
In future, perhaps TechSmith should hobble their products, remove features and capabilities in order to satisfy your über-vigilance.
(You're one of those people who run MacCleaner and Memory Cleaner, aren't you?)
Photo of Cory Johnson

Cory Johnson

  • 5 Posts
  • 0 Reply Likes
Sorry, perhaps you've missed the memo from Apple over the last 3 years. They have now posted https://developer.apple.com/library/content/technotes/tn2459/_index.html which covers 1) kexts are not allowed to load by default and 2) will not load unless the user overrides the security controls in macOS. There is a fundamental reason the core audio frameworks are there: use them. Snagit needs to quit being lazy and fix it (by reusing the obsolete sound flower code base). 
Photo of Cory Johnson

Cory Johnson

  • 5 Posts
  • 0 Reply Likes
So just to review: Should Snagit not fix their issue and use a proper audio extension, they will include steps for the end user to approve the security exception notice in System Preferences and Security within 30 minutes of installing Snagit or else the system audio capture will not work. Sounds like a great user experience. 
Photo of Glenn Hoeppner

Glenn Hoeppner, Employee

  • 1914 Posts
  • 378 Reply Likes
I just wanted to update this thread to say that Snagit versions 2018.2.5 and 2019.1.0 no longer depend on kernel extensions to record system audio. This is only true for the DMG-based versions. No update on the App Store version at this time.

-Glenn 
(Edited)
Photo of Cory Johnson

Cory Johnson

  • 5 Posts
  • 0 Reply Likes
Great news. Thanks for addressing this. Looking forward to the App Store updated version also getting addressed. 
Photo of Glenn Hoeppner

Glenn Hoeppner, Employee

  • 1914 Posts
  • 378 Reply Likes
I'm not sure which specific version of the App Store version of Snagit shipped with the new system audio recording, but it is also in the App Store version. Sorry for failing to update the thread with that information in a timely manner.