New permissions showing up for my app on MacOS Catalina

Hello other developers.



Today I came here with a doubt and to verify if I can find a solution.



I work for a company that created a java application for MAC. The problem arose with the new Catalina.



Now when the application is installed two new permissions appear on the security. "Full Disk Access" and "Input Monitoring"



The application requires keyboard input and downloads a file to a temporary folder, then moves it to the USB.



I wanted to check if there is any possibility do make this permissions not show up, as the client doesn't want them to appear.



Or the only solution would be to change the app so for example we wouldn't acces the keyboard?



Thanks in advance and best regards.

Replies

macOS 10.15 has a number of new user data protection features. You can learn more about these in WWDC 2019 Session 701 Advances in macOS Security. Focusing on the input monitoring case for the moment, a normal app should never trigger that. It’s only triggered if you use an API that watches input events across the entire system. I don’t see any need for your app to do that, so I’m curious what API you’re using and why.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Hello!


Thank you very much for your help.


For mouse input what we use on our application is javafx https://docs.oracle.com/javase/8/javafx/api/javafx/scene/input/MouseEvent.html


We also use java/awt/DefaultKeyboardFocus


And NodeBuilder


JavaFx - version 8


Thanks

OK, but I was looking for information on what Apple API you’re using. You should, in general, be able to get mouse events without triggering this privacy restriction. If you’re using a third-party library, and thus are not sure what Apple API you’re using, you’ll have to escalate this with the library’s vendor.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Hello, We are not using a external API as we are using java and all of this events are java responsability. Thanks

we are using java and all of this events are java responsability.

Understood, which is why I suggested that you escalate this to your tool’s vendor.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"