From 3b3c6757b982c1e845d54551afb6c222c13c8cce Mon Sep 17 00:00:00 2001 From: armv9 <48624112+arm64v8a@users.noreply.github.com> Date: Sun, 23 Feb 2025 23:04:24 +0900 Subject: [PATCH] Fix bugs --- .../io/nekohasekai/sagernet/bg/BaseService.kt | 2 +- .../sagernet/bg/ServiceNotification.kt | 13 ++++++- .../sagernet/fmt/hysteria/HysteriaFmt.kt | 14 +++---- .../nekohasekai/sagernet/group/RawUpdater.kt | 1 + .../sagernet/ui/VpnRequestActivity.kt | 2 +- .../java/moe/matsuri/nb4a/SingBoxOptions.java | 16 ++++---- buildSrc/src/main/kotlin/Helpers.kt | 39 +++---------------- 7 files changed, 36 insertions(+), 51 deletions(-) diff --git a/app/src/main/java/io/nekohasekai/sagernet/bg/BaseService.kt b/app/src/main/java/io/nekohasekai/sagernet/bg/BaseService.kt index f063dda..3083e3b 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/bg/BaseService.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/bg/BaseService.kt @@ -344,7 +344,7 @@ class BaseService { filter, "$packageName.SERVICE", null, - Context.RECEIVER_NOT_EXPORTED + Context.RECEIVER_EXPORTED ) } else { registerReceiver( diff --git a/app/src/main/java/io/nekohasekai/sagernet/bg/ServiceNotification.kt b/app/src/main/java/io/nekohasekai/sagernet/bg/ServiceNotification.kt index 5c19cc1..3efd3f4 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/bg/ServiceNotification.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/bg/ServiceNotification.kt @@ -6,6 +6,7 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter +import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE import android.os.Build import android.text.format.Formatter import androidx.core.app.NotificationCompat @@ -183,7 +184,17 @@ class ServiceNotification( private suspend fun show() = - useBuilder { (service as Service).startForeground(notificationId, it.build()) } + useBuilder { + if (Build.VERSION.SDK_INT >= 34) { + (service as Service).startForeground( + notificationId, + it.build(), + FOREGROUND_SERVICE_TYPE_SPECIAL_USE + ) + } else { + (service as Service).startForeground(notificationId, it.build()) + } + } private suspend fun update() = useBuilder { NotificationManagerCompat.from(service as Service).notify(notificationId, it.build()) diff --git a/app/src/main/java/io/nekohasekai/sagernet/fmt/hysteria/HysteriaFmt.kt b/app/src/main/java/io/nekohasekai/sagernet/fmt/hysteria/HysteriaFmt.kt index 5211c18..a6f0e10 100644 --- a/app/src/main/java/io/nekohasekai/sagernet/fmt/hysteria/HysteriaFmt.kt +++ b/app/src/main/java/io/nekohasekai/sagernet/fmt/hysteria/HysteriaFmt.kt @@ -95,9 +95,9 @@ fun parseHysteria2(url: String): HysteriaBean { link.queryParameter("obfs-password")?.also { obfuscation = it } - link.queryParameter("pinSHA256")?.also { - // TODO your box do not support it - } +// link.queryParameter("pinSHA256")?.also { +// // TODO your box do not support it +// } } } @@ -284,9 +284,9 @@ fun buildSingBoxOutboundHysteriaBean(bean: HysteriaBean): MutableMap str + "%02x".format(it) } -} - private val Project.android get() = extensions.getByName("android") private lateinit var metadata: Properties @@ -74,22 +66,6 @@ fun Project.requireLocalProperties(): Properties { return localProperties } -fun Project.requireTargetAbi(): String { - var targetAbi = "" - if (gradle.startParameter.taskNames.isNotEmpty()) { - if (gradle.startParameter.taskNames.size == 1) { - val targetTask = gradle.startParameter.taskNames[0].lowercase(Locale.ROOT).trim() - when { - targetTask.contains("arm64") -> targetAbi = "arm64-v8a" - targetTask.contains("arm") -> targetAbi = "armeabi-v7a" - targetTask.contains("x64") -> targetAbi = "x86_64" - targetTask.contains("x86") -> targetAbi = "x86" - } - } - } - return targetAbi -} - fun Project.setupCommon() { android.apply { buildToolsVersion = "35.0.1" @@ -186,9 +162,7 @@ fun Project.setupAppCommon() { buildTypes { val key = signingConfigs.findByName("release") if (key != null) { - if (requireTargetAbi().isBlank()) { - getByName("release").signingConfig = key - } + getByName("release").signingConfig = key getByName("debug").signingConfig = key } } @@ -208,8 +182,6 @@ fun Project.setupApp() { } setupAppCommon() - val targetAbi = requireTargetAbi() - android.apply { this as AbstractAppExtension @@ -223,12 +195,13 @@ fun Project.setupApp() { } splits.abi { + reset() isEnable = true isUniversalApk = false - if (targetAbi.isNotBlank()) { - reset() - include(targetAbi) - } + include("armeabi-v7a") + include("arm64-v8a") + include("x86") + include("x86_64") } flavorDimensions += "vendor"