From 3c5bb8d0968a094ab759d117917f3b65a880b4ac Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Sun, 14 Jul 2024 14:09:02 +0800 Subject: [PATCH 1/9] windows: Add option to dump versions of all drivers Signed-off-by: Daniel Schaefer --- README.md | 2 + framework_lib/src/commandline/clap_std.rs | 5 + framework_lib/src/commandline/mod.rs | 9 + framework_lib/src/commandline/uefi.rs | 1 + framework_lib/src/lib.rs | 2 + framework_lib/src/wmi.rs | 301 ++++++++++++++++++++++ 6 files changed, 320 insertions(+) create mode 100644 framework_lib/src/wmi.rs diff --git a/README.md b/README.md index 0e89f34b..9f37ec9c 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ see the [Support Matrices](support-matrices.md). - [x] HDMI Expansion Card (`--dp-hdmi-update`) - [x] DisplayPort Expansion Card (`--dp-hdmi-update`) - [ ] Audio Expansion Card + - [x] Get driver version for all devices (Windows only) (`--drivers`) ###### System Status @@ -196,6 +197,7 @@ Options: Enable/disable touchscreen [possible values: true, false] --console Get EC console, choose whether recent or to follow the output [possible values: recent, follow] --reboot-ec Control EC RO/RW jump [possible values: reboot, jump-ro, jump-rw, cancel-jump, disable-jump] + --drivers Display Windows Driver versions --hash Hash a file of arbitrary data --driver Select which driver is used. By default portio is used [possible values: portio, cros-ec, windows] --pd-addrs diff --git a/framework_lib/src/commandline/clap_std.rs b/framework_lib/src/commandline/clap_std.rs index 3c81c755..da907f38 100644 --- a/framework_lib/src/commandline/clap_std.rs +++ b/framework_lib/src/commandline/clap_std.rs @@ -218,6 +218,10 @@ struct ClapCli { #[arg(long)] ec_hib_delay: Option>, + /// Display Windows Driver versions + #[arg(long)] + drivers: bool, + /// Hash a file of arbitrary data #[arg(long)] hash: Option, @@ -404,6 +408,7 @@ pub fn parse(args: &[String]) -> Cli { console: args.console, reboot_ec: args.reboot_ec, ec_hib_delay: args.ec_hib_delay, + drivers: args.drivers, hash: args.hash.map(|x| x.into_os_string().into_string().unwrap()), driver: args.driver, pd_addrs, diff --git a/framework_lib/src/commandline/mod.rs b/framework_lib/src/commandline/mod.rs index 87b08e3f..bfb8f3b4 100644 --- a/framework_lib/src/commandline/mod.rs +++ b/framework_lib/src/commandline/mod.rs @@ -60,6 +60,9 @@ use crate::touchscreen; use crate::uefi::enable_page_break; use crate::util; use crate::util::{Config, Platform, PlatformFamily}; +#[cfg(target_os = "windows")] +use crate::wmi; + #[cfg(feature = "hidapi")] use hidapi::HidApi; use sha2::{Digest, Sha256, Sha384, Sha512}; @@ -189,6 +192,7 @@ pub struct Cli { pub reboot_ec: Option, pub ec_hib_delay: Option>, pub hash: Option, + pub drivers: bool, pub pd_addrs: Option<(u16, u16)>, pub pd_ports: Option<(u8, u8)>, pub has_mec: Option, @@ -1038,6 +1042,11 @@ pub fn run_with_args(args: &Cli, _allupdate: bool) -> i32 { flash_ec(&ec, ec_bin_path, EcFlashType::Ro); } else if let Some(ec_bin_path) = &args.flash_rw_ec { flash_ec(&ec, ec_bin_path, EcFlashType::Rw); + } else if args.drivers { + #[cfg(target_os = "windows")] + wmi::print_drivers(); + #[cfg(not(target_os = "windows"))] + println!("Driver Version only supported on Windows"); } else if let Some(hash_file) = &args.hash { println!("Hashing file: {}", hash_file); #[cfg(feature = "uefi")] diff --git a/framework_lib/src/commandline/uefi.rs b/framework_lib/src/commandline/uefi.rs index 626f0bd0..ba92a4ee 100644 --- a/framework_lib/src/commandline/uefi.rs +++ b/framework_lib/src/commandline/uefi.rs @@ -101,6 +101,7 @@ pub fn parse(args: &[String]) -> Cli { console: None, reboot_ec: None, ec_hib_delay: None, + drivers: false, hash: None, // This is the only driver that works on UEFI driver: Some(CrosEcDriverType::Portio), diff --git a/framework_lib/src/lib.rs b/framework_lib/src/lib.rs index a237326a..f2589cad 100644 --- a/framework_lib/src/lib.rs +++ b/framework_lib/src/lib.rs @@ -45,6 +45,8 @@ pub mod smbios; #[cfg(feature = "uefi")] pub mod uefi; mod util; +#[cfg(target_os = "windows")] +pub mod wmi; pub mod built_info { // The file has been placed there by the build script. diff --git a/framework_lib/src/wmi.rs b/framework_lib/src/wmi.rs new file mode 100644 index 00000000..62abed76 --- /dev/null +++ b/framework_lib/src/wmi.rs @@ -0,0 +1,301 @@ +use std::collections::HashMap; +use wmi::*; + +// TODO: +// - [ ] Critical +// - [ ] Figure out why the CSME version is old +// - Looks like that depends on the CPU/CSME type +// - [x] Figure out how "Intel Chipset" shows up, I can't find any drivers +// - It's present in Win32_Product +// - [ ] Intel WiFi driver in Win32_SystemDriver is old, but in Win32_PnpSignedDriver is correct. Which one is used? +// - [x] Provide nice alias for driver names +// - [ ] Display drivers even when they're missing to make sure we find those that didn't install +// - [ ] Make more efficient by querying only the drivers we care about +// - [ ] Figure out why IGCC versios shows same as graphics driver +// - [ ] Figure out how to read HSA "Realtek Audio Console" version + +// Helpful commands +// Win32_SystemDriver +// get-wmiobject Win32_SystemDriver | select DisplayName,Name,@{n="version";e={(gi $_.pathname).VersionInfo.FileVersion}},PathName +// Get-WmiObject -query "SELECT * FROM CIM_Datafile WHERE Name = 'C:\Windows\system32\drivers\xinputhid.sys'" +// Get-WmiObject -query "SELECT * FROM Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0" +// +// Win32_PnpSignedDriver +// get-wmiobject Win32_PnpSignedDriver | select Manufacturer,DeviceName,HardwareID,DriverVersion +// get-wmiobject Win32_PnpSignedDriver | where manufacturer -like 'Goodix' | select Manufacturer,DeviceName,HardwareID,DriverVersion +// get-wmiobject Win32_PnpSignedDriver | where manufacturer -like 'Intel' | select Manufacturer,DeviceName,HardwareID,DriverVersion +// +// Win32_Product +// Get-WmiObject -Class Win32_Product | select IdentifyingNumber, Name, Version + +pub fn print_yellow_bangs() { + println!("Devices with Yellow Bangs"); + debug!("Opening WMI"); + let wmi_con = WMIConnection::new(COMLibrary::new().unwrap()).unwrap(); + debug!("Querying WMI"); + let results: Vec> = wmi_con + .raw_query("SELECT * FROM Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0") + .unwrap(); + + if results.is_empty() { + println!(" None"); + return; + } + + for bang in results.iter() { + // println!(" {:#?}", results); + // TODO: Unpack the Variant types + // TODO: Use serde + let description = if let Variant::String(s) = &bang["Description"] { + s + } else { + &"".to_string() + }; + println!(" {}", description); + println!(" Compatible IDs: {:?}", &bang["CompatibleID"]); + println!(" Hardware IDs: {:?}", &bang["HardwareID"]); + println!(" DeviceID: {:?}", &bang["DeviceID"]); + println!(" PNPDeviceID: {:?}", &bang["PNPDeviceID"]); + println!( + " ConfigManagerErrorCode {:?}", + &bang["ConfigManagerErrorCode"] + ); + println!(" Status {:?}", &bang["Status"]); + // Other values that don't seem to have useful information + // ConfigManagerUserConfig: Bool (false) + // ErrorCleared: ? (Null) + // CreationClassName: String ("Win32_PnPEntity") + // Present: Bool (true) + // InstallDate: ? (Null) + // ErrorDescription: ? (Null) + // Caption: String ("Multimedia Audio Controller") + // LastErrorCode: ? (Null) + // Availability: ? (Null) + // PowerManagementCapabilities: Array ([]) + // PowerManagementSupported: ? (Null) + // PNPClass: ? (Null) + // StatusInfo: ? (Null) + } +} + +const PNP_DRIVERS: &[&str] = &[ + // Manufacturer DeviceName HardWareID DriverVersion + // ------------ ---------- ---------- ------------- + // Goodix Framework Fingerprint Reader USB\VID_27C6&PID_609C&REV_0100 3.12804.0.240 + "Framework Fingerprint Reader", + // TODO: Wrong version + // Intel Corporation Intel(R) Graphics Command Center SWC\101.5522_VEN8086_IGCC + // "Intel(R) Graphics Command Center", + + // Intel Corporation Intel(R) Wi-Fi 6E AX210 160MHz PCI\VEN_8086&DEV_2725&SUBSYS_00248086&REV_1A 23.60.0.10 + "Intel(R) Wi-Fi 6E AX210 160MHz", + // Don't need, already in system_drivers + // Intel Corporation Intel(R) Wireless Bluetooth(R) USB\VID_8087&PID_0032&REV_0000 23.60.0.1 + // "Intel(R) Wireless Bluetooth(R)", + + // Intel(R) Platform Monito… Intel(R) Platform Monitoring Technology (PMT) Driver PCI\VEN_8086&DEV_7D0D&SUBSYS_0009F111&REV_01 3.1.2.2 + "Intel(R) Platform Monitoring Technology (PMT) Driver", + // Also in system_drivers + // Not using the one here, because it doesn't show up when the card isn't plugged in + // Genesys Logic Framework SD Expansion Card USB\VID_32AC&PID_0009&REV_0003 4.5.10.201 +]; + +const PRODUCTS: &[&str] = &[ + // TODO: Can I rely on the IdentifyingNumber GUID? + // IdentifyingNumber Name Version + // ----------------- ---- ------- + // {BAB97289-552B-49D5-B1E7-95DB4E4D2DEF} Intel(R) Chipset Device Software 10.1.19627.84… + "Intel(R) Chipset Device Software", + // {00000060-0230-1033-84C8-B8D95FA3C8C3} Intel(R) Wireless Bluetooth(R) 23.60.0.1 + // {1C1EBF97-5EC2-4C01-BCFC-037D140796B4} Intel(R) Serial IO 30.100.2405.44 +]; + +pub fn print_drivers() { + print_yellow_bangs(); + + println!("Drivers"); + let wmi_con = WMIConnection::new(COMLibrary::new().unwrap()).unwrap(); + + // PNP Drivers + let results: Vec> = wmi_con + .raw_query( + "SELECT Manufacturer,DeviceName,HardwareID,DriverVersion FROM Win32_PnpSignedDriver", + ) + .unwrap(); + for val in results.iter() { + let device_name = if let Variant::String(s) = &val["DeviceName"] { + s + } else { + &"".to_string() + }; + let version = if let Variant::String(s) = &val["DriverVersion"] { + s + } else { + &"".to_string() + }; + + // Skip those that we don't care about + if !PNP_DRIVERS.contains(&device_name.as_str()) { + continue; + } + println!(" {}", device_name); + println!(" Version: {}", version); + } + + // Products + let results: Vec> = wmi_con + .raw_query("SELECT IdentifyingNumber, Name, Version FROM Win32_Product") + .unwrap(); + for val in results.iter() { + let name = if let Variant::String(s) = &val["Name"] { + s + } else { + &"".to_string() + }; + let version = if let Variant::String(s) = &val["Version"] { + s + } else { + &"".to_string() + }; + + // Skip those that we don't care about + if !PRODUCTS.contains(&name.as_str()) { + continue; + } + println!(" {}", name); + println!(" Version: {}", version); + } + + // System Drivers + //const system_drivers: HashMap<&str, Option<&str>> = HashMap::from([ + let system_drivers = HashMap::from([ + // [ ] 13 Goodix + // TODO: Can find via Win32_PnpSignedDriver, Manufacturer 'Goodix', DeviceName 'Framework Fingerprint Reader' + // HardwareID: USB\VID_27C6&PID_609C&REV_0100 + + // [ ] 12 Intel Platform Monitoring Technology + // Can find in PNP + + // [x] 11 Intel PROSet Bluetooth + ("ibtusb", None), // Intel(R) Wireless Bluetooth(R) + // [ ] 10 Intel PROSet WiFi + // TODO: The first two show old version - Is the wrong version used? + // "Netwtw14", // Intel® Smart Sound Technology BUS + // "Netwtw10", // Intel® Smart Sound Technology BUS + // "Netwtw16", // This one has the correct version, but it doesn't show up + + // [x] 09 Realtek Audio + ("IntcAzAudAddService", None), // Service for Realtek HD Audio (WDM) + // [x] 08 Intel Smart Sound Technology + ("IntcAudioBus", None), // Intel® Smart Sound Technology BUS + //"IntcOED", // Intel® Smart Sound Technology OED + //"IntcUSB", // Intel® Smart Sound Technology for USB Audio + + // [x] 07 Intel Dynamic Tuning Technology + ("ipf_acpi", Some("Intel Dynamic Tuning Technology")), + // "ipf_cpu", + // "ipf_lf", + + // [x] 06 Intel NPU + ("npu", Some("Intel NPU")), + // [x] 05 Intel Graphics + ("igfxn", Some("Intel Graphics")), // igfxn + // [x] 04 Intel Serial IO + // Don't need to show GPIO and I2C versions, we don't need GPIO driver anyways + // "iaLPSS2_GPIO2_MTL", // Serial IO GPIO Driver v2 + // "iagpio", // Intel Serial IO GPIO Controller Driver + // "iai2c", // Serial IO I2C Host Controller + // "iaLPSS2i_GPIO2" + // "iaLPSS2i_GPIO2_BXT_P", + // "iaLPSS2i_GPIO2_CNL", + // "iaLPSS2i_GPIO2_GLK", + ("iaLPSS2_I2C_MTL", Some("Intel Serial IO")), // Serial IO I2C Driver v2 + // "iaLPSS2i_I2C", + // "iaLPSS2i_I2C_BXT_P", + // "iaLPSS2i_I2C_CNL", + // "iaLPSS2i_I2C_GLK", + + // [ ] 03 Intel Management Engine + // TODO: Shows old version 2406.5.5.0 instead of 2409.5.63.0 + ("MEIx64", None), // Intel(R) Management Engine Interface + // [x] 02 Intel GNA Scoring Accelerator + ("IntelGNA", None), // Intel(R) GNA Scoring Accelerator service + // [ ] 01 Intel Chipset + // TODO: How to find? + // Can't find it anywhere, not in Device Manager, not in Win32_SystemDriver, not in Win32_PnpSignedDriver + + // Framework provided drivers + // Realtek USB FE/1GbE/2.5GbE NIC Family Windows 10 64-bit Driver + ( + "rtux64w10", + Some("Realtek/Framework Ethernet Expansion Card"), + ), + // Genesys Logic Storage Driver + ("GeneStor", Some("Genesys/Framework SD Expansion Card")), + //"IntcAzAudAddService", // Service for Realtek HD Audio (WDM) + //"intelpmax", // Intel(R) Dynamic Device Peak Power Manager Driver + //"IntelPMT", // Intel(R) Platform Monitoring Technology Service + ]); + + let results: Vec> = wmi_con + .raw_query("SELECT DisplayName,Name,PathName FROM Win32_SystemDriver") + .unwrap(); + for val in results.iter() { + let display_name = if let Variant::String(s) = &val["DisplayName"] { + s + } else { + &"".to_string() + }; + let name = if let Variant::String(s) = &val["Name"] { + s + } else { + &"".to_string() + }; + let path_name = if let Variant::String(s) = &val["PathName"] { + s + } else { + &"".to_string() + }; + + // select * from CIM_Datafile" & _ " where Name = '" & Replace(strPath, "\", "\\") & + // C:\Windows\system32\drivers\xinputhid.sys + // Get-WmiObject -query "SELECT Version FROM CIM_Datafile WHERE Name = 'C:\\Windows\\system32\\drivers\\xinputhid.sys'" + if !path_name.starts_with("C:") { + debug!("Skipping path_name: {:?}", path_name); + // TODO: Probably a UNC path, not sure how to handle it, let's skip it + continue; + } + let query = format!( + "SELECT Version FROM CIM_Datafile WHERE Name = '{}'", + path_name.replace("\\", "\\\\") + ); + let results: Vec> = wmi_con.raw_query(query).unwrap(); + let version = if let Variant::String(s) = &results[0]["Version"] { + s + } else { + "" + }; + + // Skip those that we don't care about + let str_name: &str = name; + //if let Ok(alias) = system_drivers.binary_search_by(|(k, _)| k.cmp(&str_name)).map(|x| system_drivers[x].1) { + if let Some(alias) = system_drivers.get(&str_name) { + let alias = if let Some(alias) = alias { + *alias + } else { + display_name + }; + println!(" {}", alias); + debug!(" Display: {}", display_name); + debug!(" Name: {}", name); + debug!(" Path: {}", path_name); + println!(" Version: {}", version); + } else { + //println!("Not found: {}", display_name); + //println!(" Name: '{}'", name); + //debug!(" Path: {}", path_name); + //println!(" Version: {}", version); + continue; + } + } +} From 4f598f9ab2ae576e39252d450eb62479c42e5ebd Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Wed, 17 Jul 2024 17:18:09 +0800 Subject: [PATCH 2/9] windows: Add app icon Signed-off-by: Daniel Schaefer --- Cargo.lock | 1126 +++++++++++++++++++++---------- framework_tool/Cargo.toml | 1 + framework_tool/build.rs | 15 +- res/framework_startmenuicon.ico | Bin 0 -> 89962 bytes 4 files changed, 773 insertions(+), 369 deletions(-) create mode 100644 res/framework_startmenuicon.ico diff --git a/Cargo.lock b/Cargo.lock index 465dc6e0..fe65c8ed 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11,6 +11,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -22,9 +28,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -37,49 +43,50 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "once_cell", + "windows-sys 0.59.0", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "bit_field" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4" +checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" [[package]] name = "bitflags" @@ -89,15 +96,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] @@ -115,9 +122,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.12.1" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "cargo-lock" @@ -127,17 +134,19 @@ checksum = "031718ddb8f78aa5def78a09e90defe30151d1f6c672f937af4dd916429ed996" dependencies = [ "semver", "serde", - "toml", + "toml 0.5.11", "url", ] [[package]] name = "cc" -version = "1.0.79" +version = "1.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" dependencies = [ "jobserver", + "libc", + "shlex", ] [[package]] @@ -154,22 +163,22 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ + "android-tzdata", "iana-time-zone", - "num-integer", "num-traits", "serde", - "winapi", + "windows-link", ] [[package]] name = "clap" -version = "4.5.13" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" dependencies = [ "clap_builder", "clap_derive", @@ -186,9 +195,9 @@ dependencies = [ [[package]] name = "clap-verbosity-flag" -version = "2.2.1" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d19864d6b68464c59f7162c9914a0b569ddc2926b4a2d71afe62a9738eff53" +checksum = "34c77f67047557f62582784fd7482884697731b2932c7d37ced54bce2312e1e2" dependencies = [ "clap", "log", @@ -196,9 +205,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" dependencies = [ "anstream", "anstyle", @@ -208,37 +217,27 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "clap_lex" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" - -[[package]] -name = "codespan-reporting" -version = "0.11.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "convert_case" @@ -264,15 +263,15 @@ checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -287,61 +286,17 @@ dependencies = [ "typenum", ] -[[package]] -name = "cxx" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn 2.0.98", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.98", -] - [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 1.0.107", + "syn 2.0.100", ] [[package]] @@ -354,11 +309,22 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "env_filter" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ "log", "regex", @@ -366,22 +332,28 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.5" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" dependencies = [ "anstream", "anstyle", "env_filter", - "humantime", + "jiff", "log", ] +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -411,7 +383,7 @@ dependencies = [ "rusb", "sha2", "smbios-lib", - "spin 0.9.8", + "spin", "uefi", "uefi-services", "windows 0.59.0", @@ -424,6 +396,7 @@ version = "0.4.0" dependencies = [ "framework_lib", "static_vcruntime", + "winresource", ] [[package]] @@ -438,9 +411,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" dependencies = [ "futures-channel", "futures-core", @@ -453,9 +426,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -463,15 +436,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -480,38 +453,38 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-macro" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "futures-sink" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-util" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -527,9 +500,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -544,6 +517,18 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi", +] + [[package]] name = "git2" version = "0.15.0" @@ -563,9 +548,15 @@ version = "0.11.0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + [[package]] name = "heck" version = "0.5.0" @@ -585,44 +576,177 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - [[package]] name = "iana-time-zone" -version = "0.1.56" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", - "core-foundation-sys 0.8.4", + "core-foundation-sys 0.8.7", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows 0.48.0", + "windows-core 0.61.0", ] [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" + +[[package]] +name = "icu_provider" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ - "cxx", - "cxx-build", + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] name = "idna" -version = "0.3.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "indexmap" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +dependencies = [ + "equivalent", + "hashbrown", ] [[package]] @@ -643,42 +767,68 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jiff" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f33145a5cbea837164362c7bd596106eb7c5198f97d1ba6f6ebb3223952e488" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde", +] + +[[package]] +name = "jiff-static" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43ce13c40ec6956157a3635d97a1ee2df323b263f09ea14165131289cb0f5c19" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] [[package]] name = "jobserver" -version = "0.1.26" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom", "libc", ] [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.5.2", + "spin", ] [[package]] name = "libc" -version = "0.2.155" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libgit2-sys" @@ -706,9 +856,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.9" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" dependencies = [ "cc", "libc", @@ -717,19 +867,16 @@ dependencies = [ ] [[package]] -name = "link-cplusplus" -version = "1.0.8" +name = "litemap" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" -dependencies = [ - "cc", -] +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -737,9 +884,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.22" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "mach" @@ -761,9 +908,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memoffset" @@ -794,7 +941,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "cfg-if", "cfg_aliases", "libc", @@ -808,9 +955,9 @@ checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" [[package]] name = "num" -version = "0.4.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ "num-complex", "num-integer", @@ -821,9 +968,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.2" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] @@ -836,24 +983,23 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", @@ -862,41 +1008,40 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-integer", "num-traits", ] [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "once_cell" -version = "1.16.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -906,9 +1051,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plain" @@ -916,11 +1061,26 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" +[[package]] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", +] + [[package]] name = "proc-macro2" -version = "1.0.93" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" dependencies = [ "unicode-ident", ] @@ -942,18 +1102,24 @@ checksum = "bca9224df2e20e7c5548aeb5f110a0f3b77ef05f8585139b7148b59056168ed2" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] name = "quote" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "redox_hwio" version = "0.1.6" @@ -1004,71 +1170,81 @@ dependencies = [ [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] [[package]] -name = "ryu" -version = "1.0.12" +name = "rustversion" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] -name = "scopeguard" -version = "1.1.0" +name = "ryu" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] -name = "scratch" -version = "1.0.5" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "semver" -version = "1.0.17" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.151" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.151" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.100", ] [[package]] name = "serde_json" -version = "1.0.91" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + [[package]] name = "sha2" version = "0.10.8" @@ -1080,6 +1256,12 @@ dependencies = [ "digest", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "slab" version = "0.4.9" @@ -1089,6 +1271,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "smallvec" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" + [[package]] name = "smbios-lib" version = "0.9.1" @@ -1105,12 +1293,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -1120,6 +1302,12 @@ dependencies = [ "lock_api", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "static_vcruntime" version = "2.0.0" @@ -1134,9 +1322,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", "quote", @@ -1145,9 +1333,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.98" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36147f1a48ae0ec2b5b3bc5b537d267457555a10dc06f3dbc8cb11ba3006d3b1" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -1155,69 +1343,100 @@ dependencies = [ ] [[package]] -name = "termcolor" -version = "1.1.3" +name = "synstructure" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "winapi-util", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] name = "thiserror" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.11" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "tinystr" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ - "tinyvec_macros", + "displaydoc", + "zerovec", ] [[package]] -name = "tinyvec_macros" -version = "0.1.1" +name = "toml" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] [[package]] name = "toml" -version = "0.5.11" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] name = "typenum" -version = "1.16.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "ucs2" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad643914094137d475641b6bab89462505316ec2ce70907ad20102d28a79ab8" +checksum = "df79298e11f316400c57ec268f3c2c29ac3c4d4777687955cd3d4f3a35ce7eba" dependencies = [ "bit_field", ] @@ -1225,7 +1444,7 @@ dependencies = [ [[package]] name = "uefi" version = "0.20.0" -source = "git+https://github.com/FrameworkComputer/uefi-rs?branch=merged#76130a0f1c1585012e598b8c514526bac09c68e0" +source = "git+https://github.com/FrameworkComputer/uefi-rs?branch=merged#95165e1adde99da7a460320538d908af8b55f87f" dependencies = [ "bitflags 1.3.2", "derive_more", @@ -1243,57 +1462,54 @@ checksum = "e0caeb0e7b31b9f1f347e541106be10aa8c66c76fa722a3298a4cd21433fabd4" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 1.0.109", ] [[package]] name = "uefi-services" version = "0.17.0" -source = "git+https://github.com/FrameworkComputer/uefi-rs?branch=merged#76130a0f1c1585012e598b8c514526bac09c68e0" +source = "git+https://github.com/FrameworkComputer/uefi-rs?branch=merged#95165e1adde99da7a460320538d908af8b55f87f" dependencies = [ "cfg-if", "log", "uefi", ] -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "url" -version = "2.3.1" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -1308,40 +1524,50 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.100", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1349,84 +1575,105 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 1.0.107", + "syn 2.0.100", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "unicode-ident", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "windows" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "7f919aee0a93304be7f62e8e5027811bbba96bcb1de84d6618be56e43f8a32a1" +dependencies = [ + "windows-core 0.59.0", + "windows-targets 0.53.0", +] [[package]] -name = "winapi-util" -version = "0.1.5" +name = "windows" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "ddf874e74c7a99773e62b1c671427abf01a425e77c3d3fb9fb1e4883ea934529" dependencies = [ - "winapi", + "windows-collections", + "windows-core 0.60.1", + "windows-future", + "windows-link", + "windows-numerics", ] [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "windows-collections" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "5467f79cc1ba3f52ebb2ed41dbb459b8e7db636cc3429458d9a852e15bc24dec" +dependencies = [ + "windows-core 0.60.1", +] [[package]] -name = "windows" -version = "0.48.0" +name = "windows-core" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "810ce18ed2112484b0d4e15d022e5f598113e220c53e373fb31e67e21670c1ce" dependencies = [ - "windows-targets 0.48.0", + "windows-implement 0.59.0", + "windows-interface", + "windows-result", + "windows-strings 0.3.1", + "windows-targets 0.53.0", ] [[package]] -name = "windows" -version = "0.59.0" +name = "windows-core" +version = "0.60.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f919aee0a93304be7f62e8e5027811bbba96bcb1de84d6618be56e43f8a32a1" +checksum = "ca21a92a9cae9bf4ccae5cf8368dce0837100ddf6e6d57936749e85f152f6247" dependencies = [ - "windows-core", - "windows-targets 0.53.0", + "windows-implement 0.59.0", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings 0.3.1", ] [[package]] name = "windows-core" -version = "0.59.0" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "810ce18ed2112484b0d4e15d022e5f598113e220c53e373fb31e67e21670c1ce" +checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" dependencies = [ - "windows-implement", + "windows-implement 0.60.0", "windows-interface", + "windows-link", "windows-result", - "windows-strings", - "windows-targets 0.53.0", + "windows-strings 0.4.0", +] + +[[package]] +name = "windows-future" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a787db4595e7eb80239b74ce8babfb1363d8e343ab072f2ffe901400c03349f0" +dependencies = [ + "windows-core 0.60.1", + "windows-link", ] [[package]] @@ -1437,36 +1684,72 @@ checksum = "83577b051e2f49a058c308f17f273b570a6a758386fc291b5f6a934dd84e48c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", +] + +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] name = "windows-interface" -version = "0.59.0" +version = "0.59.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb26fd936d991781ea39e87c3a27285081e3c0da5ca0fcbc02d368cc6f52ff01" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.98", + "syn 2.0.100", +] + +[[package]] +name = "windows-link" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" + +[[package]] +name = "windows-numerics" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "005dea54e2f6499f2cee279b8f703b3cf3b5734a2d8d21867c8f44003182eeed" +dependencies = [ + "windows-core 0.60.1", + "windows-link", ] [[package]] name = "windows-result" -version = "0.3.0" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d08106ce80268c4067c0571ca55a9b4e9516518eaa1a1fe9b37ca403ae1d1a34" +checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" dependencies = [ - "windows-targets 0.53.0", + "windows-link", ] [[package]] name = "windows-strings" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b888f919960b42ea4e11c2f408fadb55f78a9f236d5eef084103c8ce52893491" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" dependencies = [ - "windows-targets 0.53.0", + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +dependencies = [ + "windows-link", ] [[package]] @@ -1475,31 +1758,31 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.0", + "windows-targets 0.48.5", ] [[package]] name = "windows-sys" -version = "0.52.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ "windows-targets 0.52.6", ] [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -1536,9 +1819,9 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" @@ -1554,9 +1837,9 @@ checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" @@ -1572,9 +1855,9 @@ checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" @@ -1602,9 +1885,9 @@ checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" @@ -1620,9 +1903,9 @@ checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" @@ -1638,9 +1921,9 @@ checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" @@ -1656,9 +1939,9 @@ checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" @@ -1672,17 +1955,124 @@ version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +[[package]] +name = "winnow" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" +dependencies = [ + "memchr", +] + +[[package]] +name = "winresource" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba4a67c78ee5782c0c1cb41bebc7e12c6e79644daa1650ebbc1de5d5b08593f7" +dependencies = [ + "toml 0.8.20", + "version_check", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags 2.9.0", +] + [[package]] name = "wmi" -version = "0.15.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58078b4e28f04064dae68f6e11a6b93133c83b88dfd5ae16738ded4942db6544" +checksum = "2f902b4592b911109e7352bcfec7b754b07ec71e514d7dfa280eaef924c1cb08" dependencies = [ "chrono", "futures", "log", "serde", "thiserror", - "windows 0.59.0", - "windows-core", + "windows 0.60.0", + "windows-core 0.60.1", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "synstructure", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", + "synstructure", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", ] diff --git a/framework_tool/Cargo.toml b/framework_tool/Cargo.toml index ecef1fb0..b14db464 100644 --- a/framework_tool/Cargo.toml +++ b/framework_tool/Cargo.toml @@ -16,3 +16,4 @@ default-features = false [build-dependencies] # Note: Only takes effect in release builds static_vcruntime = "2.0" +winresource = "0.1.17" diff --git a/framework_tool/build.rs b/framework_tool/build.rs index 20e1c8e9..67f5fce5 100644 --- a/framework_tool/build.rs +++ b/framework_tool/build.rs @@ -1,3 +1,16 @@ -fn main() { +use { + std::{env, io}, + winresource::WindowsResource, +}; + +fn main() -> io::Result<()> { + if env::var_os("CARGO_CFG_WINDOWS").is_some() { + WindowsResource::new() + .set_icon("..\\res\\framework_startmenuicon.ico") + .compile()?; + } + static_vcruntime::metabuild(); + + Ok(()) } diff --git a/res/framework_startmenuicon.ico b/res/framework_startmenuicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8c6be29a6b1462e13005c3c113d81888f51b73ab GIT binary patch literal 89962 zcmeI5d5|1c9mi)$AV2{zsNAqgRE|F^K?DV&%MlI{L=g~B5>N;z$XS94f!9#4@0~C#9lWa?~UB1aj)t-Fz zWG4daAa)jb6r|-NzD@c0HP{-srp++mO7Jd-+nM(JDfT}NtOq=qiNIQjIUJ0DwAi=W z_6En-fa)`EnutQx#WK*!&a~}IIere906cXc0bK(g0co-Bber1#0o|L_@sWFS#ABdS zJJa_68}iiFJaraz)wk{y+9mC){@T4D4;#~TD27)7#k8MkcbtD7 zq{Yg`Hr;n!2EGKQg6RF1zE1;(fqCE`z=e%zI-kR)-9W#Q#`#VM?|`)U6lt5r!-XQ* zlxB-!tA1X;kouQ5g0z_UZRXtC^A zFtrB?Ykyx?g=<%uCsKBrjRXFCRje2&CuOIvyg<{q9sC@e1?B*)d(nK*89?hv^_a;3Eye*u?(eZXXpl_X-ZgP`3yFuk9ztL|d2cY_=Xl*6KuY&!%z0!-IUD|x+8SI6fVx7X2iCYT7y zLOPdf-ArEVqg8XtN!jTP9B9>kOl()*c(BC5+8o=j$thN<(}co#z^azK3dkmq}Z)BS&sn|HIyVn=f$$q6F89MTUMUl z0i-pqy-FM4*bN|SoRW^$SVx&jV>X?>^Drq6ao**~E%Lpdshr8jAA`96S$}JMcvDkG zI*@aUg_vCGzz^3d&#@546J0x%LBF2AWo=v0<8^P@uXHkw>peu#cx3sm_bQcWekF0o6j{I)4dGaXItD_D7epH3>MfnxJ2?bhbP|Vy8W$lmU2}V(zsiQ7>>6VkZptsp6e-SGZ}EalQQX`byBz~s2f+sG?g zyKx=oH2oi9<9|Unb(D0Ba;coUcqggaiRNLx2$F2e!n*{So;r)bh3uXs=1Ir?2bsFB z&+EGJadh2d!4LWNPvGzW2ttRXzaKXOlIkNX?;+&w)}cL}?EV3E{spk{969t|=Ri;0 zMc^n73*%_|Q#n`eRRg9-=RxKBWnkLgsJtb}_v4=gp-a+u>C+$@Q`6sHMZT_$(v^iY zex&u4rtM3Tr{}7kvPEDHhbP6>G*4?iKHY_>n{&)H;5}g4rX+c~zf~W>Q?>|9;&4;r z(n)!W^R%X5>o!f+b$U67%dq*o+NN!Ox7HE(PR_Ygt*BYoW{dxs zJp#ugB8+dIpUcp@am0L`!}8Q0>e4$_Opb{}T zda@INyAYcedt2KUHQdoPFt721xG(*Nj-i6-KT?2jxn`wcpY{c{2o_s zdi`d*xj&V-+E}OEj()vg!IRwxT!;8}a$$O(AEHU}cFnNGUx`kCzRD-RuC%y1U-|x(tBl*%>#~3KJnq># zAEwFO!hTr$UW3c~!KWP6l^?&dU-nZS<@QPRKI};M9_aOCHv*qPeA+d`);5i||Jjl5 zW6|r$ZUl}(ysg?vlY2LMZ*-(vYZX1&jX(|YY5BLcO*Qo+N4jr9uP3_^xE}GgY9~#u zYU*2#bU$i0q+U7^c+gR9HDB})N4hn?eIww>P6XCR>Tt6tUT#aEpU?-$rDiLrseiZFD z*RaDz?Y5GsKGr6{li3L9-5V~RH!I(BBd+LL=wd#F>?q6M{fUID@L%U(VXHQ6WBcpq z{a`FQ$2zjbzxyMW2m?Rwbd<~Eo7nE6ucv2K{xr135Ff8sK2{MPd%PuU`%cWTem;Bx z&MyY>8Zh}=V+N-I=`uwc6PXXR*21K%QCac#>6)^=ALM-1VqVlAx)RuY7wnG6zuS@z z`nz+Jfv3(Qus*wwf@m8x^<96@>r)^P8bHb6K-Vr)_J?vbcgIs_5x9ii!}yu{)V-9h zc`nuuYo5!`fbI=U`ST94b^xB*i@- zG5RAg75A5s_1S_&U>f$AeCN^k3g%xC%{d#ROx4sVvbHOtli0KcFxBVMT!-BX>Sqzm z()-cXXE0G$8cW@#2u`Kg@G-XOxwZ*^N03v5>wJp4PBy7u`wTDvi=>Jdkx2-pYIXRG91f=t{X`P{U;fYh0a@=zteBm#B(gf z@pNRCm9!?p#&c>t163cc*GWF=d4{R}R47Md>fOwnDpI^3vk(`>NB2a%JO-h$gx^?- z-QSU0cDe=!!ggZ%^I2r?TJ``X*stfKj|0>33gz9DptEeO?^}$I;-q&gpHQ}-q}Y2L z+uj0U4cPenL5lveY&z9)jKa9zfu5p1-)bjUTe6d_>s}b6@bkOv7*z0mj>W#vAKRa5 z=ZaaG<}=IIvw@zc*p5#q{}gnUoo3@e=ucjs`nx|zgCdV5>t656z-B+HS-gE+WvfZu z_sjtkK~YHcbTD`rG|RhfzOO4Yu^%CaRWKE}BF#fN515*Vkfru~U74w?FbD6F*W18s zuqm)jo1owrpgEn=9opgg)7O=~TxiT$?`rxfI0$S8vXW}`bKoan5s(hoHI$^^*HylG zd6hc2A6yM|&C(idjVB!r_60K=-^J55?Q<2l54-}Ba#%#3udDLps)+T|%qCw~zOI_p zMi#!WD_>Vx>ZjSUzOH;-HLHy*d|y|-uCmlmvtxZ-`MPRW8(H|hP*-0m(fxOpT$SnA z6Uj;0X&)RYQ_TCp*3Xx{sIXtp#rh#vW%6|7hQ}dVJE>V5GhOI)8&r4C;^e(?MzyRns(tE+5 z1JQUC;rk2NbUDy`zUd&^*VP(~Y2Yw$8CVL6U~|+4*|Z1fXPScZ3qTR(>}uZUfuNK1 zVY=7d58Mr+xpnpZm)Nl}@Kle$Og@$X7x`F>Uah^#N(Ug|N#MeVQS|N)Jgpgl^$(g%$J>Yl<=_YqLPSTS4zvgGCsj<119 zAa9Znv%t$Biw{dVzG&|Sz@$>sI#{pzdH{5i8(oLG{d=(-YLs-JHV<^V_F3mx_1V<_ z^kgprnk#rSXqBIb*k^`4GrE?nKGFRkt$nCH+zR#u{W!LX+s*=pVjA|yGy)&*u=-YCC@RxRWI!7<)&@N1O+rKG+eKM+{| zzrj;mu2go^e^L_cClw)uJP8kJsIlK@$l!CZ!5fb7P#nmsMR@qw5ifG6Vi6o$THYWj zhoXKE^dJRMo)R`3+mDzB36Aaui-3%i$7X0eFDNnzj2t@@>_<`~ylTKB`4L{gl9C1w zTZ38*tmd2Y0Z)}Hs%dM3S63@f8a$*7279UUgBn(|sJ9FF7*h?7P2vR`>jwv$r6Ukh z=LMq03zXG)m^C?&7Z^3hnmyJx7J_<;XH?ib#@nhg46iyS4`VAE1UEV3c@vxR#ty~T z@O5M3d9a~2d5tR2-UPEw1?2@NJXyFpkmwqJx-NZ;Dc(Hi^JaCv-wo7YQq zY)94F#Kig=Wy{dmeyZfH66;wK2FLc(QRgMLkEC{#*xr)bB}&G%Rkh!wc3wY8)vaNB za6U*pZ(wI=^VsI3U z!sr@2F`%ftI;T9mT4*qzlwy#hc6q~*V~JyM>}Z5H*x)JVA(4Y%KjkK*YJ(R9J=U)a zPH?gQUy!hRK9s&dUXY!kAibz<@TeyWL8?&E;58~WsK}6q5;en`GC9T@Cgr+d2PIe6 P!S%KZZ+yQv)_?v#QgVSl literal 0 HcmV?d00001 From 9589dc2b07b3eb145986d7cd4abc3ba879979ce9 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Mon, 5 Aug 2024 00:35:16 -0700 Subject: [PATCH 3/9] wmi: Add AMD drivers Graphics driver has wrong version Signed-off-by: Daniel Schaefer --- framework_lib/src/wmi.rs | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/framework_lib/src/wmi.rs b/framework_lib/src/wmi.rs index 62abed76..b54eaac3 100644 --- a/framework_lib/src/wmi.rs +++ b/framework_lib/src/wmi.rs @@ -21,12 +21,16 @@ use wmi::*; // Get-WmiObject -query "SELECT * FROM Win32_PnPEntity WHERE ConfigManagerErrorCode <> 0" // // Win32_PnpSignedDriver -// get-wmiobject Win32_PnpSignedDriver | select Manufacturer,DeviceName,HardwareID,DriverVersion +// get-wmiobject Win32_PnpSignedDriver | select Manufacturer,DeviceName,HardwareID,DriverVersion // get-wmiobject Win32_PnpSignedDriver | where manufacturer -like 'Goodix' | select Manufacturer,DeviceName,HardwareID,DriverVersion // get-wmiobject Win32_PnpSignedDriver | where manufacturer -like 'Intel' | select Manufacturer,DeviceName,HardwareID,DriverVersion // // Win32_Product // Get-WmiObject -Class Win32_Product | select IdentifyingNumber, Name, Version +// +// Get-WmiObject -Class Win32_Product | select IdentifyingNumber, Name, Version | Format-Table | Out-String -width 9999 > product.txt +// get-wmiobject Win32_PnpSignedDriver | select Manufacturer,DeviceName,HardwareID,DriverVersion | Format-Table | Out-String -width 9999 > pnp.txt +// get-wmiobject Win32_SystemDriver | select DisplayName,Name,@{n="version";e={(gi $_.pathname).VersionInfo.FileVersion}},PathName | Format-Table | Out-String -width 9999 > system.txt pub fn print_yellow_bangs() { println!("Devices with Yellow Bangs"); @@ -98,6 +102,16 @@ const PNP_DRIVERS: &[&str] = &[ // Also in system_drivers // Not using the one here, because it doesn't show up when the card isn't plugged in // Genesys Logic Framework SD Expansion Card USB\VID_32AC&PID_0009&REV_0003 4.5.10.201 + + // MediaTek, Inc. RZ616 Wi-Fi 6E 160MHz PCI\VEN_14C3&DEV_0616&SUBSYS_E61614C3&REV_00 3.3.0.908 + "RZ616 Wi-Fi 6E 160MHz", + // Mediatek Inc. RZ616 Bluetooth(R) Adapter USB\VID_0E8D&PID_E616&REV_0100&MI_00 1.1037.0.395 + "RZ616 Bluetooth(R) Adapter", + // For both of these WMI shows 31.0.24018.2001 instead of 23.40.18.02. But it's actually the same version + // Advanced Micro Devices, Inc. AMD Radeon(TM) 780M PCI\VEN_1002&DEV_15BF&SUBSYS_0005F111&REV_C1 31.0.24018.2001 + "AMD Radeon(TM) 780M", + // Advanced Micro Devices, Inc. AMD Radeon(TM) RX 7700S PCI\VEN_1002&DEV_7480&SUBSYS_0007F111&REV_C1 31.0.24018.2001 + "AMD Radeon(TM) RX 7700S", ]; const PRODUCTS: &[&str] = &[ @@ -108,6 +122,9 @@ const PRODUCTS: &[&str] = &[ "Intel(R) Chipset Device Software", // {00000060-0230-1033-84C8-B8D95FA3C8C3} Intel(R) Wireless Bluetooth(R) 23.60.0.1 // {1C1EBF97-5EC2-4C01-BCFC-037D140796B4} Intel(R) Serial IO 30.100.2405.44 + + // {35143df0-ba1c-4148-8744-137275e83211} AMD_Chipset_Drivers 5.06.29.310 + "AMD_Chipset_Drivers", ]; pub fn print_drivers() { @@ -235,6 +252,11 @@ pub fn print_drivers() { //"IntcAzAudAddService", // Service for Realtek HD Audio (WDM) //"intelpmax", // Intel(R) Dynamic Device Peak Power Manager Driver //"IntelPMT", // Intel(R) Platform Monitoring Technology Service + + // Mediatek PCI LE Extensible Wireless LAN Card Driver mtkwlex 3.3.0.0908 C:\Windows\system32\drivers\mtkwl6ex.sys + // ("mtkwlex", Some("RZ616 WiFi Driver")), + // MTK BT Filter Driver MTKBTFilterx64 1.1037.0.395 TK C:\Windows\system32\drivers\mtkbtfilterx.sys + // ("MTKBTFilterx64", Some("RZ616 Bluetooth Driver")), ]); let results: Vec> = wmi_con From 73096f5e219e7bff471146e713c030e6ac99c55e Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Mon, 5 Aug 2024 00:41:40 -0700 Subject: [PATCH 4/9] wmi: Fix string lifetime Signed-off-by: Daniel Schaefer --- framework_lib/src/wmi.rs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/framework_lib/src/wmi.rs b/framework_lib/src/wmi.rs index b54eaac3..32ceed47 100644 --- a/framework_lib/src/wmi.rs +++ b/framework_lib/src/wmi.rs @@ -51,9 +51,9 @@ pub fn print_yellow_bangs() { // TODO: Unpack the Variant types // TODO: Use serde let description = if let Variant::String(s) = &bang["Description"] { - s + s.clone() } else { - &"".to_string() + "".to_string() }; println!(" {}", description); println!(" Compatible IDs: {:?}", &bang["CompatibleID"]); @@ -141,14 +141,14 @@ pub fn print_drivers() { .unwrap(); for val in results.iter() { let device_name = if let Variant::String(s) = &val["DeviceName"] { - s + s.clone() } else { - &"".to_string() + "".to_string() }; let version = if let Variant::String(s) = &val["DriverVersion"] { - s + s.clone() } else { - &"".to_string() + "".to_string() }; // Skip those that we don't care about @@ -165,14 +165,14 @@ pub fn print_drivers() { .unwrap(); for val in results.iter() { let name = if let Variant::String(s) = &val["Name"] { - s + s.clone() } else { - &"".to_string() + "".to_string() }; let version = if let Variant::String(s) = &val["Version"] { - s + s.clone() } else { - &"".to_string() + "".to_string() }; // Skip those that we don't care about @@ -264,19 +264,19 @@ pub fn print_drivers() { .unwrap(); for val in results.iter() { let display_name = if let Variant::String(s) = &val["DisplayName"] { - s + s.clone() } else { - &"".to_string() + "".to_string() }; let name = if let Variant::String(s) = &val["Name"] { - s + s.clone() } else { - &"".to_string() + "".to_string() }; let path_name = if let Variant::String(s) = &val["PathName"] { - s + s.clone() } else { - &"".to_string() + "".to_string() }; // select * from CIM_Datafile" & _ " where Name = '" & Replace(strPath, "\", "\\") & @@ -299,13 +299,13 @@ pub fn print_drivers() { }; // Skip those that we don't care about - let str_name: &str = name; + let str_name: &str = &name; //if let Ok(alias) = system_drivers.binary_search_by(|(k, _)| k.cmp(&str_name)).map(|x| system_drivers[x].1) { if let Some(alias) = system_drivers.get(&str_name) { let alias = if let Some(alias) = alias { *alias } else { - display_name + &display_name }; println!(" {}", alias); debug!(" Display: {}", display_name); From 2431127c4ec008f12dd945ddca903434e2eae3e1 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Mon, 5 Aug 2024 01:17:53 -0700 Subject: [PATCH 5/9] wmi: Add old AMD graphics driver Signed-off-by: Daniel Schaefer --- framework_lib/src/wmi.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/framework_lib/src/wmi.rs b/framework_lib/src/wmi.rs index 32ceed47..8c2f2340 100644 --- a/framework_lib/src/wmi.rs +++ b/framework_lib/src/wmi.rs @@ -108,6 +108,7 @@ const PNP_DRIVERS: &[&str] = &[ // Mediatek Inc. RZ616 Bluetooth(R) Adapter USB\VID_0E8D&PID_E616&REV_0100&MI_00 1.1037.0.395 "RZ616 Bluetooth(R) Adapter", // For both of these WMI shows 31.0.24018.2001 instead of 23.40.18.02. But it's actually the same version + // 31.0.22024.17002 instead of 23.20.24.17 // Advanced Micro Devices, Inc. AMD Radeon(TM) 780M PCI\VEN_1002&DEV_15BF&SUBSYS_0005F111&REV_C1 31.0.24018.2001 "AMD Radeon(TM) 780M", // Advanced Micro Devices, Inc. AMD Radeon(TM) RX 7700S PCI\VEN_1002&DEV_7480&SUBSYS_0007F111&REV_C1 31.0.24018.2001 From 297239d652b90a095d2ec852acae71c3018ca00f Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Mon, 5 Aug 2024 01:26:26 -0700 Subject: [PATCH 6/9] wmi: Add Framework 16 Display Driver Signed-off-by: Daniel Schaefer --- framework_lib/src/wmi.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/framework_lib/src/wmi.rs b/framework_lib/src/wmi.rs index 8c2f2340..83c4a69d 100644 --- a/framework_lib/src/wmi.rs +++ b/framework_lib/src/wmi.rs @@ -103,16 +103,18 @@ const PNP_DRIVERS: &[&str] = &[ // Not using the one here, because it doesn't show up when the card isn't plugged in // Genesys Logic Framework SD Expansion Card USB\VID_32AC&PID_0009&REV_0003 4.5.10.201 + // Both present in system drivers // MediaTek, Inc. RZ616 Wi-Fi 6E 160MHz PCI\VEN_14C3&DEV_0616&SUBSYS_E61614C3&REV_00 3.3.0.908 - "RZ616 Wi-Fi 6E 160MHz", // Mediatek Inc. RZ616 Bluetooth(R) Adapter USB\VID_0E8D&PID_E616&REV_0100&MI_00 1.1037.0.395 - "RZ616 Bluetooth(R) Adapter", + // For both of these WMI shows 31.0.24018.2001 instead of 23.40.18.02. But it's actually the same version // 31.0.22024.17002 instead of 23.20.24.17 // Advanced Micro Devices, Inc. AMD Radeon(TM) 780M PCI\VEN_1002&DEV_15BF&SUBSYS_0005F111&REV_C1 31.0.24018.2001 "AMD Radeon(TM) 780M", // Advanced Micro Devices, Inc. AMD Radeon(TM) RX 7700S PCI\VEN_1002&DEV_7480&SUBSYS_0007F111&REV_C1 31.0.24018.2001 "AMD Radeon(TM) RX 7700S", + // Framework Framework NE160QDM-NZ6 MONITOR\BOE0BC9 1.0.0.0 + "Framework NE160QDM-NZ6", ]; const PRODUCTS: &[&str] = &[ @@ -255,9 +257,9 @@ pub fn print_drivers() { //"IntelPMT", // Intel(R) Platform Monitoring Technology Service // Mediatek PCI LE Extensible Wireless LAN Card Driver mtkwlex 3.3.0.0908 C:\Windows\system32\drivers\mtkwl6ex.sys - // ("mtkwlex", Some("RZ616 WiFi Driver")), + ("mtkwlex", Some("RZ616 WiFi Driver")), // MTK BT Filter Driver MTKBTFilterx64 1.1037.0.395 TK C:\Windows\system32\drivers\mtkbtfilterx.sys - // ("MTKBTFilterx64", Some("RZ616 Bluetooth Driver")), + ("MTKBTFilterx64", Some("RZ616 Bluetooth Driver")), ]); let results: Vec> = wmi_con From ff7af793f2c125cfc6070a4c8383267dbce108e0 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Sun, 29 Sep 2024 14:09:56 +0800 Subject: [PATCH 7/9] wmi: Add RZ717 and AMD DRTM drivers If users upgrade to WiFi 7 chipset. Signed-off-by: Daniel Schaefer --- framework_lib/src/wmi.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/framework_lib/src/wmi.rs b/framework_lib/src/wmi.rs index 83c4a69d..df1c71a0 100644 --- a/framework_lib/src/wmi.rs +++ b/framework_lib/src/wmi.rs @@ -103,10 +103,12 @@ const PNP_DRIVERS: &[&str] = &[ // Not using the one here, because it doesn't show up when the card isn't plugged in // Genesys Logic Framework SD Expansion Card USB\VID_32AC&PID_0009&REV_0003 4.5.10.201 - // Both present in system drivers // MediaTek, Inc. RZ616 Wi-Fi 6E 160MHz PCI\VEN_14C3&DEV_0616&SUBSYS_E61614C3&REV_00 3.3.0.908 // Mediatek Inc. RZ616 Bluetooth(R) Adapter USB\VID_0E8D&PID_E616&REV_0100&MI_00 1.1037.0.395 - + "RZ616 Bluetooth(R) Adapter", + // MediaTek, Inc. RZ717 WiFi 7 160MHz PCI\VEN_14C3&DEV_0717&SUBSYS_071714C3&REV_00 5.4.0.1920 + // Mediatek Inc. RZ717 Bluetooth(R) Adapter USB\VID_0E8D&PID_0717&REV_0100&MI_00 1.1037.0.433 + "RZ717 Bluetooth(R) Adapter", // For both of these WMI shows 31.0.24018.2001 instead of 23.40.18.02. But it's actually the same version // 31.0.22024.17002 instead of 23.20.24.17 // Advanced Micro Devices, Inc. AMD Radeon(TM) 780M PCI\VEN_1002&DEV_15BF&SUBSYS_0005F111&REV_C1 31.0.24018.2001 @@ -115,6 +117,8 @@ const PNP_DRIVERS: &[&str] = &[ "AMD Radeon(TM) RX 7700S", // Framework Framework NE160QDM-NZ6 MONITOR\BOE0BC9 1.0.0.0 "Framework NE160QDM-NZ6", + // Advanced Micro Devices, Inc AMD DRTM Boot Driver ACPI\VEN_DRTM&DEV_0001 1.0.18.4 + "AMD DRTM Boot Driver", ]; const PRODUCTS: &[&str] = &[ @@ -258,8 +262,11 @@ pub fn print_drivers() { // Mediatek PCI LE Extensible Wireless LAN Card Driver mtkwlex 3.3.0.0908 C:\Windows\system32\drivers\mtkwl6ex.sys ("mtkwlex", Some("RZ616 WiFi Driver")), + // Mediatek PCI LE Extensible Wireless LAN Card Driver mtkwecx 5.4.0.1920 C:\Windows\system32\DriverStore\FileRepository\mtkwecx.inf_amd64_b64df836c89617f7\mtkwecx.sys + ("mtkwecx", Some("RZ717 WiFi Driver")), + // RZ616 and RZ717 // MTK BT Filter Driver MTKBTFilterx64 1.1037.0.395 TK C:\Windows\system32\drivers\mtkbtfilterx.sys - ("MTKBTFilterx64", Some("RZ616 Bluetooth Driver")), + // ("MTKBTFilterx64", Some("RZ616/RZ717 Bluetooth Driver")), ]); let results: Vec> = wmi_con From 30474e0295779d2cbafcd314f5023400d0195d44 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Fri, 2 May 2025 02:19:30 -0700 Subject: [PATCH 8/9] drivers: Add support for Framework 12 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` > framework_tool.exe --drivers Devices with Yellow Bangs None Drivers Framework EC Version: 0.0.0.6 Framework Sensors Version: 0.0.7.0 ILITEK Wake On Touch Device Version: 10.0.19041.868 Intel(R) Wi-Fi 6E AX211 160MHz Version: 23.60.1.2 Genesys/Framework SD Expansion Card Version: 4.5.10.202 Intel(R) Wireless Bluetooth(R) Version: 23.90.0.8 Intel Graphics Version: 32.0.101.6314 Intel® Smart Sound Technology BUS Version: 10.29.0.10981 Service for Realtek HD Audio (WDM) Version: 6.0.9815.1 Intel(R) GNA Scoring Accelerator service Version: 3.5.0.1578 Intel Dynamic Tuning Technology Version: 1.0.11700.1228 Intel(R) Management Engine Interface Version: 2407.6.1.0 ``` Signed-off-by: Daniel Schaefer --- framework_lib/src/wmi.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/framework_lib/src/wmi.rs b/framework_lib/src/wmi.rs index df1c71a0..5d6984ca 100644 --- a/framework_lib/src/wmi.rs +++ b/framework_lib/src/wmi.rs @@ -96,7 +96,8 @@ const PNP_DRIVERS: &[&str] = &[ // Don't need, already in system_drivers // Intel Corporation Intel(R) Wireless Bluetooth(R) USB\VID_8087&PID_0032&REV_0000 23.60.0.1 // "Intel(R) Wireless Bluetooth(R)", - + // Intel Corporation Intel(R) Wi-Fi 6E AX211 160MHz PCI\VEN_8086&DEV_51F1&SUBSYS_00948086&REV_01 + "Intel(R) Wi-Fi 6E AX211 160MHz", // Intel(R) Platform Monito… Intel(R) Platform Monitoring Technology (PMT) Driver PCI\VEN_8086&DEV_7D0D&SUBSYS_0009F111&REV_01 3.1.2.2 "Intel(R) Platform Monitoring Technology (PMT) Driver", // Also in system_drivers @@ -119,6 +120,12 @@ const PNP_DRIVERS: &[&str] = &[ "Framework NE160QDM-NZ6", // Advanced Micro Devices, Inc AMD DRTM Boot Driver ACPI\VEN_DRTM&DEV_0001 1.0.18.4 "AMD DRTM Boot Driver", + // Framework Framework EC ACPI\VEN_FRMW&DEV_C004 + "Framework EC", + // Framework Computer Inc Framework Sensors ACPI\VEN_FRMW&DEV_C006 + "Framework Sensors", + // ILITEK ILITEK Wake On Touch Device ACPI\VEN_ILIT&DEV_2901 + "ILITEK Wake On Touch Device", ]; const PRODUCTS: &[&str] = &[ From 42e07b11c45c84317635f30c5706dc731dc31661 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Fri, 2 May 2025 02:42:48 -0700 Subject: [PATCH 9/9] drivers: Add support for Framework 12 10.1.19899.8597 includes ADL PCH version 10.1.36.7 Signed-off-by: Daniel Schaefer --- framework_lib/src/wmi.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/framework_lib/src/wmi.rs b/framework_lib/src/wmi.rs index 5d6984ca..15282d5b 100644 --- a/framework_lib/src/wmi.rs +++ b/framework_lib/src/wmi.rs @@ -85,6 +85,9 @@ pub fn print_yellow_bangs() { const PNP_DRIVERS: &[&str] = &[ // Manufacturer DeviceName HardWareID DriverVersion // ------------ ---------- ---------- ------------- + // Intel Chipset Raptor Lake Framework 12 + // INTEL Intel(R) LPC Controller - 519D 10.1.36.7 + "Intel(R) LPC Controller - 519D", // Goodix Framework Fingerprint Reader USB\VID_27C6&PID_609C&REV_0100 3.12804.0.240 "Framework Fingerprint Reader", // TODO: Wrong version