Zoom gained access to private iPad camera API for special multitasking
Table of Contents
App developer Jeremy Provost discovered that Apple has given Zoom access to a private iPad camera API. With that, the meeting app is the only one, except by Apple’s FaceTime, being able to use the camera during iPad Split View multitasking.
With this feature only available on the Zoom app, it gives an advantage to the app among the others, since the user can use the Split View multitasking to access Twitter, a notes app, etc.
As Provost explains in his blog post, when he first discovered Zoom could take advantage of the Split View feature, he started to search for the process for other developers being able to do the same.
“We asked Zoom and to our surprise, they gave us the answer, and in the process revealed an apparently private process, available only to those deemed worthy by Apple.“
To receive access to some API, Apple must give an “entitlement,” which is a right or privilege that grants an executable particular capabilities. Apple explains:
“For example, an app needs the
HomeKit Entitlement— along with explicit user consent — to access a user’s home automation network. An app stores its entitlements as key-value pairs embedded in the code signature of its binary executable.“
While Apple provides public documentation and a process for requesting access to entitlements, for example, Provost discovered that there isn’t a public process for requesting this specific API.
As we’ve been informed, it is called com.apple.developer.avfoundation.multitasking-camera-access. Unfortunately, unlike with CarPlay there is no public process for requesting this entitlement. In fact, its existence is not even documented by Apple publicly. Go ahead and Google it, you’ll only turn up the Zoom Developer Forum.
While it’s still unknown why Apple only gave this particular feature for the Zoom app — as the company says, it treats every developer the same, on Thursday, App Store VP testified in Epic trial as emails revealed special API access for Hulu and other devs:
“One email shows there was an internal question about why Hulu was able to switch between App Store billing and Hulu billing. As it turns out, Hulu is part of a “set of whitelisted developers” with access to the subscription cancel/refund API. The company had initially given Hulu access to this API to support upgrade and downgrade plan changes before this was natively built-in to the App Store.“
On the other hand, in the ‘Spring Loaded’ event in April, Apple announced a feature called Center Stage, exclusively available on the M1 iPad Pro, and will let all videoconference apps be able to take advantage of it if their developers choose to.
With the Center Stage feature, the Ultra-Wide front camera will be able to track the user in a conference and position him in the center of the frame. As for now, if you use an iPad in landscape mode, you’ll probably not look good in front of the camera.
iPad Camera Multitasking
A few months back I was surprised to see that Zoom had somehow been able to tap into using the camera during iPad Split View multitasking. This is an obvious feature for a videoconferencing app so that you can keep one eye on your meeting while you consult notes, look at a presentation, or slack off on Twitter.
I scoured the web and found no reference to how to enable this feature for our own iOS Zoom client, Participant for Zoom. We asked Zoom and to our surprise they gave us the answer, and in the process revealed an apparently private process, available only to those deemed worthy by Apple.
This capability is enabled by means of an entitlement. You can read more about entitlements here. In order to access certain OS features, app developers enable public entitlements, like iCloud access or push notifications. But for quite some time there have also existed private entitlements. One example is the ability for an app to integrate with CarPlay.
Apple provides public documentation and a process for requesting CarPlay access that any developer can apply for. Of course, Apple wisely restricts what types of apps can integrate with CarPlay. You need to fall into one of the following categories:
- EV Charging
- Quick Food Ordering
Once Apple has granted you the entitlement it will appear in your developer account for you to add to a particular app.
So then, what is the entitlement for iPad Camera Multitasking? As we’ve been informed, it is called com.apple.developer.avfoundation.multitasking-camera-access. Unfortunately, unlike with CarPlay there is no public process for requesting this entitlement. In fact, its existence is not even documented by Apple publicly. Go ahead and Google it, you’ll only turn up the Zoom Developer Forum.
It’s understandable that this entitlement may not be appropriate for every app, or perhaps there may be ways for it to be abused. Maybe it makes sense for there to be an approval process, like with CarPlay. But it doesn’t make sense for this to be private, undocumented, and only accessible to Apple’s preferred partners. You can’t say “we treat every developer the same” while privately giving special capabilities to certain developers.
We’ve gone ahead and reached out to Apple through their developer contact page and made a request for “iPad Camera Multitasking”. We’ll see where this goes.