Fix setup

This commit is contained in:
世界
2025-08-15 13:11:10 +08:00
parent 6db8e06e8d
commit eb1b736837
2 changed files with 21 additions and 23 deletions

View File

@@ -12,11 +12,14 @@ import android.os.PowerManager
import androidx.core.content.getSystemService import androidx.core.content.getSystemService
import go.Seq import go.Seq
import io.nekohasekai.libbox.Libbox import io.nekohasekai.libbox.Libbox
import io.nekohasekai.libbox.SetupOptions
import io.nekohasekai.sfa.bg.AppChangeReceiver import io.nekohasekai.sfa.bg.AppChangeReceiver
import io.nekohasekai.sfa.bg.UpdateProfileWork import io.nekohasekai.sfa.bg.UpdateProfileWork
import io.nekohasekai.sfa.constant.Bugs
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.io.File
import java.util.Locale import java.util.Locale
import io.nekohasekai.sfa.Application as BoxApplication import io.nekohasekai.sfa.Application as BoxApplication
@@ -35,6 +38,7 @@ class Application : Application() {
@Suppress("OPT_IN_USAGE") @Suppress("OPT_IN_USAGE")
GlobalScope.launch(Dispatchers.IO) { GlobalScope.launch(Dispatchers.IO) {
initialize()
UpdateProfileWork.reconfigureUpdater() UpdateProfileWork.reconfigureUpdater()
} }
@@ -42,6 +46,23 @@ class Application : Application() {
addAction(Intent.ACTION_PACKAGE_ADDED) addAction(Intent.ACTION_PACKAGE_ADDED)
addDataScheme("package") addDataScheme("package")
}) })
}
private fun initialize() {
val baseDir = filesDir
baseDir.mkdirs()
val workingDir = getExternalFilesDir(null) ?: return
workingDir.mkdirs()
val tempDir = cacheDir
tempDir.mkdirs()
Libbox.setup(SetupOptions().also {
it.basePath = baseDir.path
it.workingPath = workingDir.path
it.tempPath = tempDir.path
it.fixAndroidStack = Bugs.fixAndroidStack
})
Libbox.redirectStderr(File(workingDir, "stderr.log").path)
} }
companion object { companion object {

View File

@@ -24,13 +24,11 @@ import io.nekohasekai.libbox.CommandServerHandler
import io.nekohasekai.libbox.Libbox import io.nekohasekai.libbox.Libbox
import io.nekohasekai.libbox.Notification import io.nekohasekai.libbox.Notification
import io.nekohasekai.libbox.PlatformInterface import io.nekohasekai.libbox.PlatformInterface
import io.nekohasekai.libbox.SetupOptions
import io.nekohasekai.libbox.SystemProxyStatus import io.nekohasekai.libbox.SystemProxyStatus
import io.nekohasekai.sfa.Application import io.nekohasekai.sfa.Application
import io.nekohasekai.sfa.R import io.nekohasekai.sfa.R
import io.nekohasekai.sfa.constant.Action import io.nekohasekai.sfa.constant.Action
import io.nekohasekai.sfa.constant.Alert import io.nekohasekai.sfa.constant.Alert
import io.nekohasekai.sfa.constant.Bugs
import io.nekohasekai.sfa.constant.Status import io.nekohasekai.sfa.constant.Status
import io.nekohasekai.sfa.database.ProfileManager import io.nekohasekai.sfa.database.ProfileManager
import io.nekohasekai.sfa.database.Settings import io.nekohasekai.sfa.database.Settings
@@ -50,26 +48,6 @@ class BoxService(
companion object { companion object {
private var initializeOnce = false
private fun initialize() {
if (initializeOnce) return
val baseDir = Application.application.filesDir
baseDir.mkdirs()
val workingDir = Application.application.getExternalFilesDir(null) ?: return
workingDir.mkdirs()
val tempDir = Application.application.cacheDir
tempDir.mkdirs()
Libbox.setup(SetupOptions().also {
it.basePath = baseDir.path
it.workingPath = workingDir.path
it.tempPath = tempDir.path
it.fixAndroidStack = Bugs.fixAndroidStack
})
Libbox.redirectStderr(File(workingDir, "stderr.log").path)
initializeOnce = true
return
}
fun start() { fun start() {
val intent = runBlocking { val intent = runBlocking {
withContext(Dispatchers.IO) { withContext(Dispatchers.IO) {
@@ -310,7 +288,6 @@ class BoxService(
GlobalScope.launch(Dispatchers.IO) { GlobalScope.launch(Dispatchers.IO) {
Settings.startedByUser = true Settings.startedByUser = true
initialize()
try { try {
startCommandServer() startCommandServer()
} catch (e: Exception) { } catch (e: Exception) {