[15] RFR: JDK-8246094: [macos] Sound Recording and playback is not working

Erik Joelsson erik.joelsson at oracle.com
Tue Jul 21 19:24:43 UTC 2020


Here is a late fix for Macos Catalina. In JDK-8244951, I added a missing 
entitlement to enable sound recording with the hardened runtime signing. 
It was later discovered that this wasn't quite enough. To be able to 
record sound you also need to specify a certain key in your Info.plist, 
NSMicrophoneUsageDescription. The value of this field is displayed to 
the user the first time the JDK wants to record sound. We also 
discovered that the way the JDK is laid out in the Macos specific bundle 
format, the global Info.plist is not actually considered when looking 
for this particular key, but rather the plist info we embed in the java 
executable.

This patch adds the new key to all the affected plists (JDK global, JRE 
global and the one being embedded in executables). We also noted that 
the bundle ID and version numbers had an effect on how this key was 
resolved, and to get somewhat better behavior, I'm also unifying the 
embedded values for those keys (which were hard coded today) with what 
we already put in the global Info.plist for the JDK. A followup bug 
where we more fully explore what the CFBundleIdentifier, CFBundleVersion 
and CFBundleShortVersionString values should actually be is planned for 
a later release.

With this fix, it's now verified possible to record sound on a Macos 
Catalina machine.

Webrev: http://cr.openjdk.java.net/~erikj/8246094/webrev.01/index.html

Bug: https://bugs.openjdk.java.net/browse/JDK-8246094

/Erik




More information about the build-dev mailing list