From 97e3fc60ca74526742de73524e6736d8af5e2075 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz Date: Mon, 1 Jan 2024 18:49:07 -0800 Subject: [PATCH] Expose GetInstalledFirmwareVersion --- src/LibRyujinx/Android/JniExportedMethods.cs | 9 ++++----- src/LibRyujinx/LibRyujinx.Device.cs | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/LibRyujinx/Android/JniExportedMethods.cs b/src/LibRyujinx/Android/JniExportedMethods.cs index 7be533091..58b27598b 100644 --- a/src/LibRyujinx/Android/JniExportedMethods.cs +++ b/src/LibRyujinx/Android/JniExportedMethods.cs @@ -147,7 +147,7 @@ namespace LibRyujinx Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); SwitchDevice?.ReloadFileSystem(); } - + [UnmanagedCallersOnly(EntryPoint = "Java_org_ryujinx_android_RyujinxNative_deviceInitialize")] public static JBoolean JniInitializeDeviceNative(JEnvRef jEnv, JObjectLocalRef jObj, @@ -317,13 +317,12 @@ namespace LibRyujinx { Logger.Trace?.Print(LogClass.Application, "Jni Function Call"); - var version = SwitchDevice?.ContentManager.GetCurrentFirmwareVersion(); - + var version = GetInstalledFirmwareVersion(); long stringHandle = -1; - if (version != null) + if (version != String.Empty) { - stringHandle = storeString(version.VersionString); + stringHandle = storeString(version); } return stringHandle; diff --git a/src/LibRyujinx/LibRyujinx.Device.cs b/src/LibRyujinx/LibRyujinx.Device.cs index 839852933..753b26f81 100644 --- a/src/LibRyujinx/LibRyujinx.Device.cs +++ b/src/LibRyujinx/LibRyujinx.Device.cs @@ -67,11 +67,30 @@ namespace LibRyujinx return LoadApplication(path); } + [UnmanagedCallersOnly(EntryPoint = "device_get_installed_firmware_version")] + public static IntPtr GetInstalledFirmwareVersionNative() + { + var result = GetInstalledFirmwareVersion(); + return Marshal.StringToHGlobalAnsi(result); + } + public static void InstallFirmware(Stream stream, bool isXci) { SwitchDevice?.ContentManager.InstallFirmware(stream, isXci); } + public static string GetInstalledFirmwareVersion() + { + var version = SwitchDevice?.ContentManager.GetCurrentFirmwareVersion(); + + if (version != null) + { + return version.VersionString; + } + + return String.Empty; + } + public static SystemVersion? VerifyFirmware(Stream stream, bool isXci) { return SwitchDevice?.ContentManager?.VerifyFirmwarePackage(stream, isXci) ?? null;