I'm on Catalina 10.15.6.
Previously, you could write shell scripts that would set the boot volume and restart the Mac, either by using
bless --mount X --setBoot or by using
systemsetup -setstartupdisk, but neither of these commands seem to work now when System Integrity Protection is enabled.
There must be some way to automate this, since the System Preferences app is able to change your boot disk without SIP being disabled, you just need to provide an admin password. What mechanism does the pref pane use to set the bootup disk now? Can we invoke it in a shell script?