Resetting Tethering-Related Privacy Permissions on a Mac

Apple’s ill-designed and negligently implemented USB tethering permission checking is responsible for 90% of the support requests we receive these days. In this post I’ll discuss how to reset these permissions to restore access to USB connected cameras.

It is ill-designed, because: a) Instead of a single, clearly defined permission, it asks users for two seemingly unrelated ones: “Photos” and “Removable Volumes” on a Mac; “Camera” and “Files and Folders” plus a third tethering confirmation prompt on iOS. This is untidy and confusing, and people tend to deny them causing trouble down the road. b) It grossly violates the “principle of least privilege” by granting apps access to resources they have nothing to do with, and even don’t need at all.

The negligent implementation is clear from the very existence of this post, as well as a former one describing how Apple’s buggy code caused months of headache, brand damage and extra support costs last year.

Before you ask, I have reported these things to Apple countless times, even offered my help, but they continue to show zero interest in cleaning up this steaming manure pile. It wouldn’t be a problem if we weren’t forced to use Apple’s frameworks for USB communication, but we are.

The privacy permissions database itself is also a fragile component that tends to get corrupted randomly. Fortunately there’s a tool called tccutil designed to manage the database. This is a command line tool, so launch Terminal before proceeding.

First, you are advised to reset permissions for a given app. The app is specified with its “bundle id”, a unique name that identifies it for macOS.

The command to use for our ShutterCount app is:

tccutil reset All com.direstudio.ShutterCount

For ShutterCount Pro:

tccutil reset All com.direstudio.ShutterCount.pro

For Kuuvik Capture 5:

tccutil reset All com.direstudio.KuuvikCapture.5

And for earlier Kuuvik Capture versions:

tccutil reset All com.direstudio.KuuvikCapture

Everything is case sensitive, so I recommend to copy and paste the command into Terminal (and of course press Enter at the end). I also recommend disconnecting your camera and rebooting your Mac before issuing the command.

If that doesn’t help, you can try resetting the database more aggressively with:

tccutil reset All
tccutil reset Photos
tccutil reset SystemPolicyRemovableVolumes

If the reset was successful, your Mac should prompt for Photos and Removable Volumes access the next time you launch the app and connect a camera via USB.

If these steps doesn’t resolve the problem then I would suggest sending a problem report from within the app: click Report a Problem in the Help menu. Then complete and send the email. I would strongly recommend that you also complain to the party responsible for the issue: Apple, via its product feedback form.

I would like to note that Wi-Fi / Ethernet connections are not affected, because those do not rely on Apple’s code, but are handled entirely by mine.

ShutterCount 4.8 Released

The latest update to my ShutterCount app is now available on the App Store for Mac, iPhone and iPad. This update brings a few under-the-hood changes.

The computer technology world is loud with privacy-related issues these days, and we highly value Apple’s efforts at the conceptual level. Unfortunately, their implementation is a hot mess, being a constant source of headache for me in the last couple of years.

Case in point: iOS 14 requests the user’s permission to allow an app to access the local network, which for example ShutterCount requires for Wi-Fi and Ethernet camera pairing and connections. For several users, this is just one more annoying popup, and choose “Don’t Allow” just to be safe. And then they try to pair a network camera, which will fail. In better case they contact our support, but leaving a bad review tends to be the norm.

Wouldn’t it be nice to ask iOS about the state of this permission before pairing so that we can inform the user that he/she denied access? Absolutely, but iOS doesn’t provide that functionality for developers… Half-baked mess…

Fortunately we were able to develop a clever workaround and the app warns users about the missing permission right on the spot.

Well, people who ignore every and all error messages will still be a problem, but that’s a topic for another day.

The next change is that ShutterCount on iOS 14 no longer needs full Photos access to read a Nikon or Pentax shutter counter from a photo.

Just choose the image from your photo library, and that’s all. On the flip side, if that image happens to be in iCloud, we can’t show you a download progress indicator, because Apple forgot to provide download progress information. Half-baked mess again…

Now something we’re very proud of:

We are in the business of making and selling software to you, and not selling your private life to some sneaky data brokers. This is one reason why the prices of our apps are what they are.

Lastly, we’ve updated error messages on the Mac to cover the situation where the connection can’t be made because of a corrupted memory card.

The update is free for existing users. New users can download ShutterCount from the respective App Store.

A Long Time Infringing App Has Been Removed From the Mac App Store

In October, 2013 we released ShutterCount, the world’s first Canon EOS shutter count reader app for the Mac. Six months later another app appeared on the Mac App Store, whose appearance, messages and web site showed eerie resemblance to ours. While keeping an eye on EOS Inspector, we continued to innovate further, bringing exciting new features to our customers.

Stemming from two years of research, ShutterCount scored another first in June, 2017 with the ability to work with new Canon cameras having a radically new counter mechanism.

A year later we were shocked to find that version 2 of EOS Inspector (subsequently renamed to ShutterCheck), which Konstantin Pavlikhin began selling at the time, went far beyond visual similarity and was in fact – as it has been established by evidence-based independent copyright expert opinion – based on key intellectual property illegally obtained from our app.

We strongly believe in competition, but do not tolerate intellectual property theft. We are determined to pursue our rights even if legal processes take a long time – just like in this case.

On November 16, 2020 Apple received the evidence-based independent copyright expert opinion referred to above that states that the infringement indeed takes place:

“This conduct (of Mr. Pavlikhin) – with regard to the unlawful acts of use – infringes the legitimate interests of the Hungarian software’s author and does not meet the requirements of fair conduct.”

Since Mr. Pavlikhin demonstrated no interest in stopping this purposeful infringement, Apple pulled his app from the Mac App Store on December 9, 2020.

We applaud this decision, as it shows Apple’s respect for original innovations of hard-working creative people.

ShutterCount 4.7 Released

The latest update to my ShutterCount app became available on the App Store earlier this week.

Newer Canon cameras, such as the EOS R and 1D X Mark III, feature a fully electronic shutter. Since it’s fully electronic, using it doesn’t count as “real, proper” shutter actuation. But as the cameras report the number of images taken with it, we thought letting you know that number would be a fun little addition to the app.

Mechanical and electronic shutter actuation counters on the Distribution Chart

The Distribuiotn Chart is the only place where the electronic counter is displayed, all other tabs use just the mechanical counter that actually contributes to shutter wear. As a consequence, you need either the Pro edition or the Live View pack for this feature to work. Cameras that provide this info are the 1D X Mark III, R, and “partially” the R5.

Partially, because there’s one more bug in the R5 firmware… Customers started reporting problems with the R5’s counter not being properly updated. We begun investigating these issues, and then suddenly the counter of my own R5 dropped from 3000 back to 1000.

Further analysis discovered that the camera fails to properly update or even corrupt the counter value. So now the app displays a warning if this is detected, and instead of the mechanical only counter, the value we display will include electronic actuations.

Handling the shutter counter bug found in the EOS R5 firmware

Yes, it may show a bigger number, but much better than having nothing at all. We sincerely hope that Canon will address this in a future firmware update.

Speaking of camera firmware bugs, we’ve added an interesting new feature that allows you to display the raw copyright information as appears in the camera’s memory. I was surprised to discover that Canon EOS firmware fails to properly handle this personal data, leading to potential leaks. Read my former post for full explanation.

Besides displaying raw copyright information, you now have a tool to properly, securely wipe owner name, author name, copyright and (if the camera supports it) IPTC information before selling a camera, for example. Both of these features are available from the Camera menu on a Mac and on the Camera Settings screen (available from the More tab) on iOS. Both require either the Pro edition or the Plus Pack, and can be used while a camera is connected.

I would like to note that in iOS 14.2 Apple finally fixed the non-operation USB connection bug introduced with iOS 14.0, so you can use this convenient connection method again.

Version 4.7 is also optimized for macOS Big Sur and runs natively on Apple Silicon Macs. The update is available on the respective App Store for your Mac, iPhone or iPad.