From 8044d43abb855918f3703a676671a0343cb75e46 Mon Sep 17 00:00:00 2001 From: LukeMackin Date: Mon, 20 Jul 2026 15:48:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9B=9E=E9=80=80RN=E5=8E=9F=E7=94=9F?= =?UTF-8?q?=E6=A8=A1=E5=9D=97,=E4=BF=9D=E6=8C=81Native=E6=8C=89=E9=92=AE+e?= =?UTF-8?q?xpo-updates=E5=8F=8C=E8=BD=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.gradle/8.10.2/fileHashes/fileHashes.bin | Bin 88765 -> 88865 bytes .../.gradle/8.10.2/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.10.2/fileHashes/resourceHashesCache.bin | Bin 19823 -> 19925 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../main/java/dev/yuzu/gca/MainApplication.kt | 21 +------- .../dev/yuzu/gca/PackageInstallerModule.kt | 51 ------------------ .../dev/yuzu/gca/PackageInstallerPackage.kt | 12 ----- 7 files changed, 1 insertion(+), 83 deletions(-) delete mode 100644 packages/client-android/android/app/src/main/java/dev/yuzu/gca/PackageInstallerModule.kt delete mode 100644 packages/client-android/android/app/src/main/java/dev/yuzu/gca/PackageInstallerPackage.kt diff --git a/packages/client-android/android/.gradle/8.10.2/fileHashes/fileHashes.bin b/packages/client-android/android/.gradle/8.10.2/fileHashes/fileHashes.bin index 93366934a3bc78d9075b0bfa08cc76353ecddc96..b9f8397bd94ad8d89d87e286b7197c681c37c037 100644 GIT binary patch delta 168 zcmdnHm384Z)(sQxFdmvb@y<&A#2F8RdD31mfB<9E-pz)0U$6-9E~{&}x7NB2D*Ar2 z;G=F8M#qhc7g)E?K;3 zeg-sjeqGHji1`ehzSBSQF$yccR{kYoSuUJ!GHDN=xBpkLqFUZNVCxu|_<^(@0NoKa ArvLx| delta 46 zcmV+}0MY-UwgtVl1+b9Z0l<@y+^Mrt-QNVWN#cVf0TH1g2DhCI0WUBE5cFlY&pZL{ E9T4UecmMzZ diff --git a/packages/client-android/android/.gradle/8.10.2/fileHashes/fileHashes.lock b/packages/client-android/android/.gradle/8.10.2/fileHashes/fileHashes.lock index fd1f4ec1e28e6ae5eb2dcef83d0688a5ba461eb0..eb895b8d666317d6338146460acf5e4c520fd24a 100644 GIT binary patch literal 17 VcmZQB%juVvop5vw0~j!01OP2c1cCqn literal 17 VcmZQB%juVvop5vw0~jzL0RSyM1a$xa diff --git a/packages/client-android/android/.gradle/8.10.2/fileHashes/resourceHashesCache.bin b/packages/client-android/android/.gradle/8.10.2/fileHashes/resourceHashesCache.bin index 079ba66529858dbdb93d0245b5107bf82fefb405..5feec96e8bd6f760e64a89b55adc96f197acd5dd 100644 GIT binary patch delta 198 zcmaDqi}C7g#tkMCj9QybC1x-Rd~kYZx8aG28Uq;kZk~Kp@`M22tj&B*Dy;cX!HJVw zrA`R=p9p#*-OrZ|70jRPD!qt_g>j?e5Alr#5+a)&J@i=9jDfO}Kr9Ht0_ui4O(cyk zN%rO3oi|xhDjFy#hpJ-vtPeU$o*UiPOO&%*J-=iUrV7D1^E1UhC;a3to3dMtnN0?y F0sw~fGYS9z delta 44 zcmV+{0Mq}~n*r~d0kAX}0VlIH7?=T*R4gfuF1wsG- literal 17 UcmZRsnD^J?;Y!OL3=nV`06o|RtpET3 diff --git a/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainApplication.kt b/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainApplication.kt index 9155a5d..e1fa547 100644 --- a/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainApplication.kt +++ b/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainApplication.kt @@ -1,24 +1,5 @@ package dev.yuzu.gca import android.app.Application -import com.facebook.react.PackageList -import com.facebook.react.ReactApplication -import com.facebook.react.ReactNativeHost -import com.facebook.react.ReactPackage -import com.facebook.react.defaults.DefaultReactNativeHost -import com.facebook.soloader.SoLoader -class MainApplication : Application(), ReactApplication { - override val reactNativeHost: ReactNativeHost = - object : DefaultReactNativeHost(this) { - override fun getPackages(): List = - PackageList(this).packages.apply { add(PackageInstallerPackage()) } - override fun getJSMainModuleName() = "index" - override fun getUseDeveloperSupport() = false - } - - override fun onCreate() { - super.onCreate() - SoLoader.init(this, false) - } -} +class MainApplication : Application() diff --git a/packages/client-android/android/app/src/main/java/dev/yuzu/gca/PackageInstallerModule.kt b/packages/client-android/android/app/src/main/java/dev/yuzu/gca/PackageInstallerModule.kt deleted file mode 100644 index 3237fd7..0000000 --- a/packages/client-android/android/app/src/main/java/dev/yuzu/gca/PackageInstallerModule.kt +++ /dev/null @@ -1,51 +0,0 @@ -package dev.yuzu.gca - -import android.app.PendingIntent -import android.content.Intent -import android.content.pm.PackageInstaller -import com.facebook.react.bridge.* -import java.io.File -import java.security.MessageDigest - -class PackageInstallerModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { - override fun getName() = "PackageInstallerModule" - - @ReactMethod - fun installApk(filePath: String, expectedSha256: String, promise: Promise) { - try { - val context = reactApplicationContext - val apkFile = File(filePath) - if (!apkFile.exists()) { promise.reject("NOT_FOUND", "APK not found"); return } - - if (!context.packageManager.canRequestPackageInstalls()) { - promise.reject("PERMISSION", "Install permission not granted"); return - } - - // SHA256 verify - val sha256 = MessageDigest.getInstance("SHA-256") - apkFile.inputStream().use { input -> - val buf = ByteArray(8192); var read: Int - while (input.read(buf).also { read = it } != -1) sha256.update(buf, 0, read) - } - if (sha256.digest().joinToString("") { "%02x".format(it) } != expectedSha256) { - promise.reject("SHA256", "SHA256 mismatch"); return - } - - val pi = context.packageManager.packageInstaller - val sessionId = pi.createSession(PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)) - val session = pi.openSession(sessionId) - try { - apkFile.inputStream().use { input -> - session.openWrite("package", 0, apkFile.length()).use { output -> - input.copyTo(output); session.fsync(output) - } - } - val launchIntent = context.packageManager.getLaunchIntentForPackage(context.packageName) - ?: run { promise.reject("NO_INTENT", "No launch intent"); return } - session.commit(PendingIntent.getActivity(context, 0, launchIntent, - PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE).intentSender) - promise.resolve("installed") - } finally { session.close() } - } catch (e: Exception) { promise.reject("ERROR", e.message) } - } -} diff --git a/packages/client-android/android/app/src/main/java/dev/yuzu/gca/PackageInstallerPackage.kt b/packages/client-android/android/app/src/main/java/dev/yuzu/gca/PackageInstallerPackage.kt deleted file mode 100644 index eb4c2f1..0000000 --- a/packages/client-android/android/app/src/main/java/dev/yuzu/gca/PackageInstallerPackage.kt +++ /dev/null @@ -1,12 +0,0 @@ -package dev.yuzu.gca - -import com.facebook.react.ReactPackage -import com.facebook.react.bridge.NativeModule -import com.facebook.react.bridge.ReactApplicationContext -import com.facebook.react.uimanager.ViewManager - -class PackageInstallerPackage : ReactPackage { - override fun createNativeModules(reactContext: ReactApplicationContext): List = - listOf(PackageInstallerModule(reactContext)) - override fun createViewManagers(reactContext: ReactApplicationContext): List> = emptyList() -}