From c3acbb5453e6016db90a2aa9be44c3e6d635e0e4 Mon Sep 17 00:00:00 2001 From: AzenKain Date: Wed, 10 Jun 2026 10:39:09 +0700 Subject: [PATCH] feat: fix bug --- .idea/misc.xml | 1 - app/src/main/assets/version.json | 42 +++++++++++++++ .../firefly_go_android/FireflyModMenu.kt | 52 ++++++++++--------- script/release.json | 4 +- 4 files changed, 71 insertions(+), 28 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 3b0be22..6c5519f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/app/src/main/assets/version.json b/app/src/main/assets/version.json index b34e697..5e89b13 100644 --- a/app/src/main/assets/version.json +++ b/app/src/main/assets/version.json @@ -6,6 +6,13 @@ "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15242148_d40f856defc0_599b68a0adf7bd", "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" }, + "CNBETAAndroid4.3.52": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15318724_a7af31327e74_b3328eb95329b2", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15305751_09783637ccc4_d16f9c81138ab3", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" + }, "CNBETAWin4.3.51": { "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15261247_f6e6db2125cf_369da465b36faf", "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15235885_6091fd15561a_83828f542dc1f3", @@ -13,6 +20,13 @@ "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15242148_d40f856defc0_599b68a0adf7bd", "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" }, + "CNBETAWin4.3.52": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15318724_a7af31327e74_b3328eb95329b2", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15305751_09783637ccc4_d16f9c81138ab3", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" + }, "CNBETAiOS4.3.51": { "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15261247_f6e6db2125cf_369da465b36faf", "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15235885_6091fd15561a_83828f542dc1f3", @@ -20,6 +34,13 @@ "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15242148_d40f856defc0_599b68a0adf7bd", "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" }, + "CNBETAiOS4.3.52": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15318724_a7af31327e74_b3328eb95329b2", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15305751_09783637ccc4_d16f9c81138ab3", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" + }, "OSBETAAndroid4.3.51": { "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15261247_f6e6db2125cf_369da465b36faf", "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15235885_6091fd15561a_83828f542dc1f3", @@ -27,6 +48,13 @@ "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15242148_d40f856defc0_599b68a0adf7bd", "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" }, + "OSBETAAndroid4.3.52": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15318724_a7af31327e74_b3328eb95329b2", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15305751_09783637ccc4_d16f9c81138ab3", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" + }, "OSBETAWin4.3.51": { "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15261247_f6e6db2125cf_369da465b36faf", "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15235885_6091fd15561a_83828f542dc1f3", @@ -34,11 +62,25 @@ "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15242148_d40f856defc0_599b68a0adf7bd", "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" }, + "OSBETAWin4.3.52": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15318724_a7af31327e74_b3328eb95329b2", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15305751_09783637ccc4_d16f9c81138ab3", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" + }, "OSBETAiOS4.3.51": { "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15261247_f6e6db2125cf_369da465b36faf", "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15235885_6091fd15561a_83828f542dc1f3", "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15265964_c2fbb1eb05fc_f2238199ee2b6e", "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15242148_d40f856defc0_599b68a0adf7bd", "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" + }, + "OSBETAiOS4.3.52": { + "asset_bundle_url": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "asset_bundle_url_b": "https://autopatchos.starrails.com/asb/BetaLive/output_15305566_fea016d35145_54bbf8ab4009f5", + "ex_resource_url": "https://autopatchos.starrails.com/design_data/BetaLive/output_15318724_a7af31327e74_b3328eb95329b2", + "lua_url": "https://autopatchos.starrails.com/lua/BetaLive/output_15305751_09783637ccc4_d16f9c81138ab3", + "ifix_url": "https://autopatchos.starrails.com/ifix/BetaLive/output_15265964_799df4f0ecef_5a94550ba64cff" } } \ No newline at end of file diff --git a/app/src/main/java/com/example/firefly_go_android/FireflyModMenu.kt b/app/src/main/java/com/example/firefly_go_android/FireflyModMenu.kt index 12276ce..958c676 100644 --- a/app/src/main/java/com/example/firefly_go_android/FireflyModMenu.kt +++ b/app/src/main/java/com/example/firefly_go_android/FireflyModMenu.kt @@ -2,7 +2,6 @@ package com.example.firefly_go_android import android.app.Activity import android.content.Context -import android.os.Build import android.util.Log import libandroid.Libandroid import java.io.File @@ -20,29 +19,35 @@ object FireflyModMenu { if (!dataDir.exists()) dataDir.mkdirs() val sharedPrefs = activity.getSharedPreferences("FireflyModPrefs", Context.MODE_PRIVATE) - val currentVersion = try { - val packageInfo = activity.packageManager.getPackageInfo("com.kain344.firefly_go_android", 0) - if (Build.VERSION.SDK_INT >= 33) { - packageInfo.longVersionCode - } else { - @Suppress("DEPRECATION") - packageInfo.versionCode.toLong() - } + val modPackageName = "com.kain344.firefly_go_android" + + val currentUpdateTime = try { + val packageInfo = activity.packageManager.getPackageInfo(modPackageName, 0) + packageInfo.lastUpdateTime } catch (e: Exception) { - 1L + 0L } - val lastVersion = sharedPrefs.getLong("last_version_code", 0L) - val shouldOverride = currentVersion > lastVersion + + val lastUpdateTime = sharedPrefs.getLong("last_update_time", 0L) + val shouldOverride = currentUpdateTime != 0L && currentUpdateTime != lastUpdateTime if (!isServerStarted) { Log.d("FireflyMod", "Start Server") isServerStarted = true Thread { try { - val isCopyDone = copyRawFiles(dataDir, shouldOverride) + // Lấy context của module để truy cập assets đúng cách trong môi trường Xposed + val modContext = try { + activity.createPackageContext(modPackageName, Context.CONTEXT_IGNORE_SECURITY) + } catch (e: Exception) { + Log.e("FireflyMod", "Không thể tạo mod context: ${e.message}") + activity + } + + val isCopyDone = copyRawFiles(modContext, dataDir, shouldOverride) if (isCopyDone) { if (shouldOverride) { - sharedPrefs.edit().putLong("last_version_code", currentVersion).apply() + sharedPrefs.edit().putLong("last_update_time", currentUpdateTime).apply() } Libandroid.setPathDataLocal(appDataPath) Libandroid.setServerRunning(true) @@ -57,27 +62,24 @@ object FireflyModMenu { } } - private fun copyRawFiles(targetDir: File, override: Boolean = false): Boolean { + private fun copyRawFiles(context: Context, targetDir: File, override: Boolean = false): Boolean { val files = listOf( - "assets/data-in-game.json" to "data-in-game.json", - "assets/freesr-data.json" to "freesr-data.json", - "assets/version.json" to "version.json" + "data-in-game.json" to "data-in-game.json", + "freesr-data.json" to "freesr-data.json", + "version.json" to "version.json" ) return try { - for ((assetPath, name) in files) { - val outFile = File(targetDir, name) + for ((assetFile, outName) in files) { + val outFile = File(targetDir, outName) if (outFile.exists() && !override) continue - val inputStream = - FireflyModMenu::class.java.classLoader?.getResourceAsStream(assetPath) - ?: return false - - inputStream.use { input -> + context.assets.open(assetFile).use { input -> FileOutputStream(outFile).use { output -> input.copyTo(output) output.fd.sync() } } + Log.d("FireflyMod", "Copied $assetFile to ${outFile.absolutePath} (override=$override)") } true } catch (e: Exception) { diff --git a/script/release.json b/script/release.json index 68b99de..b5e6c07 100644 --- a/script/release.json +++ b/script/release.json @@ -1,4 +1,4 @@ { - "tag": "4.3.2-01", - "title": "PreBuild Version 4.3.52 - 01" + "tag": "4.3.2-02", + "title": "PreBuild Version 4.3.52 - 02" }