From 9676d970763cdc7aef35f6792b36276cd8bd2738 Mon Sep 17 00:00:00 2001 From: Liam Date: Mon, 17 Apr 2023 15:47:00 -0400 Subject: [PATCH] haze: report device serial --- troposphere/haze/source/usb_session.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/troposphere/haze/source/usb_session.cpp b/troposphere/haze/source/usb_session.cpp index 921e8f2ac..377aadcbc 100644 --- a/troposphere/haze/source/usb_session.cpp +++ b/troposphere/haze/source/usb_session.cpp @@ -161,14 +161,21 @@ namespace haze { R_TRY(usbDsInitialize()); if (hosversionAtLeast(5, 0, 0)) { + /* Report language as US English. */ static const u16 supported_langs[1] = { 0x0409 }; - R_TRY(usbDsAddUsbLanguageStringDescriptor(nullptr, supported_langs, util::size(supported_langs))); + /* Get the device serial number. */ + SetSysSerialNumber serial; + R_TRY(setsysInitialize()); + R_TRY(setsysGetSerialNumber(std::addressof(serial))); + setsysExit(); + + /* Report strings. */ u8 iManufacturer, iProduct, iSerialNumber; R_TRY(usbDsAddUsbStringDescriptor(std::addressof(iManufacturer), "Nintendo")); R_TRY(usbDsAddUsbStringDescriptor(std::addressof(iProduct), "Nintendo Switch")); - R_TRY(usbDsAddUsbStringDescriptor(std::addressof(iSerialNumber), "SerialNumber")); + R_TRY(usbDsAddUsbStringDescriptor(std::addressof(iSerialNumber), serial.number)); /* Send device descriptors */ struct usb_device_descriptor device_descriptor = {