title: Set Firmware Password Command description: Change or clear the firmware password on a device. payload: requesttype: SetFirmwarePassword supportedOS: iOS: introduced: n/a macOS: introduced: '10.13' accessrights: DeviceLockAndRemovePasscode devicechannel: true userchannel: false supervised: false requiresdep: false userenrollment: mode: forbidden tvOS: introduced: n/a visionOS: introduced: n/a watchOS: introduced: n/a content: Changes or clears the firmware password for the device. Requires the "Device lock and passcode removal right". This command is not available on a Mac with Apple silicon. payloadkeys: - key: CurrentPassword type: presence: optional content: The current password, which you must set if the device has a firmware password. - key: NewPassword type: presence: required content: The new firmware password. Set to an empty string to clear the password. The characters in this value must consist of low-ASCII, printable characters (`0x20` through `0x7E`) to ensure that all characters are enterable on the EFI login screen. - key: AllowOroms type: presence: optional default: false content: If `true`, enable ROMs. responsekeys: - key: SetFirmwarePassword type: presence: required content: A dictionary containing the results of the command. subkeys: - key: PasswordChanged type: presence: required content: If `true`, the password change succeeded. notes: - title: '' content: |- This command has a throttle interval to prevent executing it more frequently than every 30 seconds. Requests that occur within the throttle interval return an error. > Important: > There's no way to set or clear a firmware password in MDM without knowing the current password, unless the server provides a way to prompt the administrator for the current password. Contact AppleCare service and support if the current password is unknown. After processing the command, the device restarts so that the new firmware password takes effect. This command returns an error and fails if a firmware password is already pending. Refer to the following sections to determine supported channels and requirements, and to see an example request and response. This command isn't supported on a Mac with Apple silicon.