From 8a5625350ec180f9d333d3644e6088bcbde25cc5 Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Sun, 26 Oct 2025 11:03:29 +0100 Subject: [PATCH] AssetManager: re-extract native libs if APK file was updated --- src/api-impl/android/content/res/AssetManager.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/api-impl/android/content/res/AssetManager.java b/src/api-impl/android/content/res/AssetManager.java index 2ec036cb..734d7883 100644 --- a/src/api-impl/android/content/res/AssetManager.java +++ b/src/api-impl/android/content/res/AssetManager.java @@ -33,6 +33,7 @@ import java.net.URLDecoder; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; @@ -625,11 +626,11 @@ public final class AssetManager { } } else { // single file Path file = Paths.get(android.os.Environment.getExternalStorageDirectory().getPath(), target); - if (!Files.exists(file)) { + if (!Files.exists(file) || Files.getLastModifiedTime(file).toMillis() < Files.getLastModifiedTime(Paths.get(apk_path)).toMillis()) { try (InputStream inputStream = ClassLoader.getSystemClassLoader().getResourceAsStream(path)) { if (inputStream != null) { Files.createDirectories(file.getParent()); - Files.copy(inputStream, file); + Files.copy(inputStream, file, StandardCopyOption.REPLACE_EXISTING); } } }