diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
index 21f67f32a2..7745c9fc75 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
@@ -247,7 +247,12 @@ object NativeLibrary {
 
     external fun setAppDirectory(directory: String)
 
-    external fun installFileToNand(filename: String): Int
+    /**
+     * Installs a nsp or xci file to nand
+     * @param filename String representation of file uri
+     * @param extension Lowercase string representation of file extension without "."
+     */
+    external fun installFileToNand(filename: String, extension: String): Int
 
     external fun initializeGpuDriver(
         hookLibDir: String?,
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
index 6fa8476319..7ca95fc232 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
@@ -523,7 +523,12 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
                 var errorExtension = 0
                 var errorOther = 0
                 documents.forEach {
-                    when (NativeLibrary.installFileToNand(it.toString())) {
+                    when (
+                        NativeLibrary.installFileToNand(
+                            it.toString(),
+                            FileUtil.getExtension(it)
+                        )
+                    ) {
                         NativeLibrary.InstallFileToNandResult.Success -> {
                             installSuccess += 1
                         }
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp
index f31fe054b6..71ef2833d5 100644
--- a/src/android/app/src/main/jni/native.cpp
+++ b/src/android/app/src/main/jni/native.cpp
@@ -102,7 +102,7 @@ public:
         m_native_window = native_window;
     }
 
-    int InstallFileToNand(std::string filename) {
+    int InstallFileToNand(std::string filename, std::string file_extension) {
         jconst copy_func = [](const FileSys::VirtualFile& src, const FileSys::VirtualFile& dest,
                               std::size_t block_size) {
             if (src == nullptr || dest == nullptr) {
@@ -134,12 +134,12 @@ public:
         m_system.GetFileSystemController().CreateFactories(*m_vfs);
 
         [[maybe_unused]] std::shared_ptr<FileSys::NSP> nsp;
-        if (filename.ends_with("nsp")) {
+        if (file_extension == "nsp") {
             nsp = std::make_shared<FileSys::NSP>(m_vfs->OpenFile(filename, FileSys::Mode::Read));
             if (nsp->IsExtractedType()) {
                 return InstallError;
             }
-        } else if (filename.ends_with("xci")) {
+        } else if (file_extension == "xci") {
             jconst xci =
                 std::make_shared<FileSys::XCI>(m_vfs->OpenFile(filename, FileSys::Mode::Read));
             nsp = xci->GetSecurePartitionNSP();
@@ -607,8 +607,10 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_setAppDirectory(JNIEnv* env, jobject
 }
 
 int Java_org_yuzu_yuzu_1emu_NativeLibrary_installFileToNand(JNIEnv* env, jobject instance,
-                                                            [[maybe_unused]] jstring j_file) {
-    return EmulationSession::GetInstance().InstallFileToNand(GetJString(env, j_file));
+                                                            jstring j_file,
+                                                            jstring j_file_extension) {
+    return EmulationSession::GetInstance().InstallFileToNand(GetJString(env, j_file),
+                                                             GetJString(env, j_file_extension));
 }
 
 void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeGpuDriver(JNIEnv* env, jclass clazz,