In Munki 6.3, to deal with the new App Management privacy control introduced in macOS Ventura, a new compiled tool was developed. Internally, it’s called “munkishim”, and serves to launch the managedsoftwareupdate process in a way that admins can use MDM to grant App Management permissions.
This video covers the problem, and the solution adopted in Munki 6.3 (and continuing through Munki 6.7):
One reason this issue was tricky to address in Munki 6 is that most of the command-line tools in Munki 6 are actually Python _scripts_, and it’s not possible to usefully sign Python scripts in a way that’s helpful to grant PPPC permissions via MDM.
In Munki 7, the command-line tools are all compiled Swift executables and can be signed. This eliminates the need for the munkishim.
But managedsoftwareupdate is still often launched by /usr/bin/munki/supervisor. Due to how macOS determines the “responsible process” this means that sometimes “supervisor” will be the responsible process. But if an admins runs managedsoftwareupdate via the Terminal, _managedsoftwareupdate_ will be the responsible process…
This is problematic for a couple of reasons:
1) Prompts to allow “supervisor” to access various PPPC permissions might be confusing
2) Admins will need to use MDM to give both “supervisor” and “managedsoftwareupdate” PPPC permissions.
An alternative might be to adopt a tactic used by the munkishim tool, and modify supervisor to disclam responsibility for its children. IOW, when supervisor launches managedsoftwareupdate, it tells the OS it’s not responsible for managesoftwareupdate. This then causes the OS to treat managedsoftwareupdate as the responsible process.
The advantage to this approach would be that _only_ managedsoftwareupdate might trigger PPPC/TCC prompts, and admins need only use MDM to approve managesoftwareupdate to have App Management or Full Disk Access rights (or any other TCC rights you wanted to grant it).
Curious about others’ thoughts here.
-Greg