From 12510ca2423a2c9230b99f31bd51206589c6781d Mon Sep 17 00:00:00 2001 From: Boulay Mathias Date: Sun, 15 May 2022 19:23:32 +0200 Subject: [PATCH] Fix pottentially improper unpacking --- .../main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java | 2 +- .../src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java | 2 +- .../main/java/net/kdt/pojavlaunch/multirt/MultiRTUtils.java | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java index 645331835..83fe19076 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseLauncherActivity.java @@ -224,7 +224,7 @@ public abstract class BaseLauncherActivity extends BaseActivity { Thread t = new Thread(() -> { try { String name = getFileName(this, uri); - MultiRTUtils.installRuntimeNamed(getContentResolver().openInputStream(uri), name, + MultiRTUtils.installRuntimeNamed(getApplicationContext().getApplicationInfo().nativeLibraryDir, getContentResolver().openInputStream(uri), name, (resid, stuff) -> BaseLauncherActivity.this.runOnUiThread( () -> barrier.setMessage(BaseLauncherActivity.this.getString(resid, stuff)))); MultiRTUtils.postPrepare(BaseLauncherActivity.this, name); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java index 44b936fd1..7070ea337 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -389,7 +389,7 @@ public class PojavLoginActivity extends BaseActivity { final Uri uri = data.getData(); Thread t = new Thread(() -> { try { - MultiRTUtils.installRuntimeNamed(getContentResolver().openInputStream(uri), getFileName(this, uri), + MultiRTUtils.installRuntimeNamed(getApplicationContext().getApplicationInfo().nativeLibraryDir, getContentResolver().openInputStream(uri), getFileName(this, uri), (resid, stuff) -> PojavLoginActivity.this.runOnUiThread( () -> { if (startupTextView != null) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/multirt/MultiRTUtils.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/multirt/MultiRTUtils.java index 13ae94d75..b33013ee6 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/multirt/MultiRTUtils.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/multirt/MultiRTUtils.java @@ -75,7 +75,7 @@ public class MultiRTUtils { return result; } - public static void installRuntimeNamed(InputStream runtimeInputStream, String name, RuntimeProgressReporter progressReporter) throws IOException { + public static void installRuntimeNamed(String nativeLibDir, InputStream runtimeInputStream, String name, RuntimeProgressReporter progressReporter) throws IOException { File dest = new File(RUNTIME_FOLDER,"/"+name); File tmp = new File(dest,"temporary"); if(dest.exists()) FileUtils.deleteDirectory(dest); @@ -87,6 +87,7 @@ public class MultiRTUtils { runtimeInputStream.close(); uncompressTarXZ(tmp,dest,progressReporter); tmp.delete(); + unpack200(nativeLibDir,RUNTIME_FOLDER + "/" + name); read(name); }