From 187129d314af3235a19d6c3abdc669b5144880687f9cc3d47011f7ac22ac3372 Mon Sep 17 00:00:00 2001 From: Kira Date: Thu, 28 May 2026 00:42:31 +0200 Subject: [PATCH] Added secure boot status to sysinfo. --- src/kira_sysinfo.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/kira_sysinfo.rs b/src/kira_sysinfo.rs index 0d2ae1e..ba51827 100644 --- a/src/kira_sysinfo.rs +++ b/src/kira_sysinfo.rs @@ -95,3 +95,37 @@ pub fn get_gpus_list() -> Vec { res } + +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Clone, Deserialize)] +pub struct SecureBootStatus { + pub installed: bool, + pub guid: String, + pub setup_mode: bool, + pub secure_boot: bool, + pub vendors: Vec, + pub firmware_quirks: Vec, +} + +pub fn get_secure_boot_status() -> Result { + use std::process::Command; + + //sbctl --json status + match Command::new("sbctl").args(["--json", "status"]).output() { + Ok(cmd_output) => { + if cmd_output.status.success() { + match serde_json::from_slice(&cmd_output.stdout) { + Ok(res) => Ok(res), + Err(ex) => Err(ex.to_string()), + } + } else { + Err(format!( + "Error getting disk devices list: {}", + String::from_utf8(cmd_output.stderr).unwrap_or("UNKNOWN".into()) + )) + } + } + Err(ex) => Err(ex.to_string()), + } +}