From b70c5015a0299cc3b0cb5369f1bfad8afde4fb28 Mon Sep 17 00:00:00 2001 From: LukeMackin Date: Sun, 19 Jul 2026 21:06:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=B9=E7=94=A8=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E5=99=A8=E5=BC=B9=E7=AA=97(FileProvider+ACTI?= =?UTF-8?q?ON=5FVIEW),=20=E6=97=A0=E9=9C=80=E6=89=8B=E5=8A=A8=E6=89=BE?= =?UTF-8?q?=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../.gradle/8.10.2/checksums/checksums.lock | Bin 17 -> 17 bytes .../8.10.2/checksums/md5-checksums.bin | Bin 22997 -> 23397 bytes .../8.10.2/checksums/sha1-checksums.bin | Bin 33185 -> 34265 bytes .../executionHistory/executionHistory.bin | Bin 956985 -> 975142 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .../.gradle/8.10.2/fileHashes/fileHashes.bin | Bin 68915 -> 69815 bytes .../.gradle/8.10.2/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.10.2/fileHashes/resourceHashesCache.bin | Bin 19109 -> 19245 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .../android/.gradle/file-system.probe | Bin 8 -> 8 bytes .../client-android/android/app/build.gradle | 1 + .../android/app/src/main/AndroidManifest.xml | 10 ++++ .../main/java/dev/yuzu/gca/MainActivity.kt | 43 +++--------------- .../app/src/main/res/xml/file_paths.xml | 4 ++ 14 files changed, 21 insertions(+), 37 deletions(-) create mode 100644 packages/client-android/android/app/src/main/res/xml/file_paths.xml diff --git a/packages/client-android/android/.gradle/8.10.2/checksums/checksums.lock b/packages/client-android/android/.gradle/8.10.2/checksums/checksums.lock index 6bf444ae9ade338a9e7da8b770cc4588916c7d79..464494c2feb4c4847ddd76c3aabf6391671f3c62 100644 GIT binary patch literal 17 VcmZRU3S6If#IJt_0~j#&0RSy31V;b> literal 17 VcmZRU3S6If#IJt_0~j#o0RSxu1SbFh diff --git a/packages/client-android/android/.gradle/8.10.2/checksums/md5-checksums.bin b/packages/client-android/android/.gradle/8.10.2/checksums/md5-checksums.bin index 102f0ca6a150f11fdbf486d84f558594072ce13f..9867591eaa891f9a99d3534d7ce06be9e020b531 100644 GIT binary patch delta 590 zcmcb*nepj1#tkMCj7ghKB@`Gn)~g+<-1z5U00S6AGyaEyP3qUf&);NVf`~_*pX@97 zK;ZB*cZ;Iq*S(;MjW?@Gc`yn5Ikx3sJEwFaRO#H!sWKi+8a`Y9Z&>FhCkGYHh8gTP zi_?_V_1OogIQ!(Ka+&<5>rR)Kp8o_9i@Z9SRepm&*0GLtPixLMK^0nVUMtVU$i(Tm zQSpcPMuQuCn;ku-2-X_|r8R+A5rhTK-m*9qD!gBP=?tL@x@S}s7#JAmS5=*t07?P@ zKQEBbL)EdMa$foSa%sH`Qz^Bi&`Tju9Y??#7^Dm^b*wA?Vxz{^eoyLw&b^QI2hS`8 zX-PYKAL@V3N=z*gKObGvpFMZw=J==c#Y5h1gz5m&AW;4SNT4|@=`EYKnOLjanf7jH z*Op(uABA{g`Na?yymo?`mj^Qs5tRFlS13-l*G^h=v}12+f$dwUjsl1d!CN35 E0J#RT6951J delta 58 zcmV-A0LB01wgJ_%0kAX}0a~*)7$5uu`rkqvq4Cd5tup_UjP6A diff --git a/packages/client-android/android/.gradle/8.10.2/checksums/sha1-checksums.bin b/packages/client-android/android/.gradle/8.10.2/checksums/sha1-checksums.bin index c74293b66d0b918cc494a7a93ad2e0c576409abc..1c59e127b3d2d09acbe29b41b2daa0504aa44e72 100644 GIT binary patch delta 1462 zcmZ43%yhGxX@iLbqsnGei4V*I>(!1_Zv1mFfB_6zG$+f-1oEq24?lmCfe9kk{CRV# zi~*Ct;b-m^MaQpuK~+xO+$(p1QQ&OaizSQNk4}P$p57d)kiaDHpzVYSd)N|ws0o3S z*D5{Gc=4Orm?iIV3RH0Ke<*k@Hus;q!An=Dxb)^$kN*cG}x>M5pRi~T&kYQzw3bi}Y2P7Wg4^mH<>jw1goPE%IbXCI(q&XZMjGWlnU+cqaTX+p(#C%5YSf32Xx14jfWT+q02O}UeSfpLCS)p-esPJZ6W3xkD~iBZQ` zB&gtJ52UKrl3?y`cSQUgtbQ^ik zi>_9Wxp?NU9Lv>PKYC8E`~{hwcJ@9rjyWrd(^U^~)P(~;ZG`A5e*vV?oQO+TRn^5RBwh7r+S;Xxf+WmOPKa9gG?4YooGr~l zhif2Cy!Z^FjT4kTsG`dz_KZz^8*}-W8h6bFPc0QFxB@d{M*Nt-{=5|q}K%yuL#}(sjJ7KuBz$^A50ylE4IX#PJ3-p`e%Ds zs5;xai{ht#GI2lx>MA7nGOdrs)b--Z@po^99PIDv#(kQ_@cO0ORfB8L^ma`cY?(;1 yJEpch30uRu(yphj{MVih diff --git a/packages/client-android/android/.gradle/8.10.2/executionHistory/executionHistory.bin b/packages/client-android/android/.gradle/8.10.2/executionHistory/executionHistory.bin index b54a479b11a23a8dac815a53c736a6dc0fcf111e..af91b646403c6f9720ec5b09b0bd23c881342213 100644 GIT binary patch delta 62523 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 Z!55|9^SAHf!hi91e3EFvC$ROn|6j*d?PCA{ delta 24958 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 E03(iT=Kufz diff --git a/packages/client-android/android/.gradle/8.10.2/executionHistory/executionHistory.lock b/packages/client-android/android/.gradle/8.10.2/executionHistory/executionHistory.lock index 0c071bf933ee7a098115950ed56d4faebad6a812..c56b455b226cf618e825bc398f26a39b178b145d 100644 GIT binary patch literal 17 VcmZSnup)9-4P%cs0~jze001;Z1LObz literal 17 UcmZSnup)9-4P%cs0|dMP05vKE%K!iX 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 04e3d2ef4ad691c21694a79041350a152032a135..c1f25f7eaf87e895418ffaefc49665dfb8ace65c 100644 GIT binary patch delta 13506 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 delta 12379 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 VsD4>~yXS%s=ehkFN4|m#0Ra8(O&|aO delta 44 zcmZ2GjdAHz#tkMCj6$1DB`g>x&y|#zd=`lRN(M189^9z-Lwut_gxF?Bj}#^VSnUr> diff --git a/packages/client-android/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/packages/client-android/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 6f2128fc9f9a27cfcab9cb206918761b745ce138..47adbba2988e91fe412cb840cc2ceb054bebf8b5 100644 GIT binary patch literal 17 VcmZQhQ5D(E8h+WD0Ss790{|jp1C;;( literal 17 UcmZQhQ5D(E8h+WD0Ss7r0U{*>R{#J2 diff --git a/packages/client-android/android/.gradle/file-system.probe b/packages/client-android/android/.gradle/file-system.probe index bdc380beb3d2fdd21fc353da4eae24d2ea0339dd..df111e12f3c7ad1e728ad989cc14bb0ac9619fb5 100644 GIT binary patch literal 8 PcmZQzV4Po7b!r*_2&n?~ literal 8 PcmZQzV4Po7E+Gg22Dbsb diff --git a/packages/client-android/android/app/build.gradle b/packages/client-android/android/app/build.gradle index d65ee49..8dd38fe 100644 --- a/packages/client-android/android/app/build.gradle +++ b/packages/client-android/android/app/build.gradle @@ -35,5 +35,6 @@ android { dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:2.0.21" implementation "androidx.appcompat:appcompat:1.7.0" + implementation "androidx.core:core:1.15.0" implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0" } diff --git a/packages/client-android/android/app/src/main/AndroidManifest.xml b/packages/client-android/android/app/src/main/AndroidManifest.xml index da70e39..3ce9a10 100644 --- a/packages/client-android/android/app/src/main/AndroidManifest.xml +++ b/packages/client-android/android/app/src/main/AndroidManifest.xml @@ -19,5 +19,15 @@ + + + + diff --git a/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainActivity.kt b/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainActivity.kt index a6d615a..fab6224 100644 --- a/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainActivity.kt +++ b/packages/client-android/android/app/src/main/java/dev/yuzu/gca/MainActivity.kt @@ -19,6 +19,7 @@ import java.net.HttpURLConnection import java.net.URL import java.security.MessageDigest import android.util.Log +import androidx.core.content.FileProvider import org.json.JSONObject class MainActivity : AppCompatActivity() { @@ -210,44 +211,12 @@ class MainActivity : AppCompatActivity() { } private fun installApk(apkFile: File) { - if (!packageManager.canRequestPackageInstalls()) { - val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply { - data = Uri.parse("package:$packageName") - addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - } - startActivity(intent) - throw SecurityException("请开启安装未知应用权限后重试") - } - val packageInstaller = packageManager.packageInstaller - val params = PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL) - val sessionId = packageInstaller.createSession(params) - val session: PackageInstaller.Session - try { - session = packageInstaller.openSession(sessionId) - } catch (e: Exception) { - packageInstaller.abandonSession(sessionId) - throw e - } - try { - apkFile.inputStream().use { input -> - session.openWrite("package", 0, apkFile.length()).use { output -> - input.copyTo(output) - session.fsync(output) - } - } - val launchIntent = packageManager.getLaunchIntentForPackage(packageName) - ?: throw Exception("无法获取启动Intent") - val pendingIntent = PendingIntent.getActivity( - this, 0, launchIntent, - PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE - ) - session.commit(pendingIntent.intentSender) - } catch (e: Exception) { - session.abandon() - throw e - } finally { - session.close() + val uri = FileProvider.getUriForFile(this, "${packageName}.fileprovider", apkFile) + val intent = Intent(Intent.ACTION_VIEW).apply { + setDataAndType(uri, "application/vnd.android.package-archive") + addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_ACTIVITY_NEW_TASK) } + startActivity(intent) } private fun computeSha256(file: File): String { diff --git a/packages/client-android/android/app/src/main/res/xml/file_paths.xml b/packages/client-android/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..2f50ff3 --- /dev/null +++ b/packages/client-android/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,4 @@ + + + +