diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/Settings.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/Settings.kt index 61c61d48..9b01b4a5 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/Settings.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/Settings.kt @@ -38,6 +38,13 @@ object Settings { get() = preferences.getString(SettingsKey.CONFIG_OPTIONS, "") ?: "" set(value) = preferences.edit().putString(SettingsKey.CONFIG_OPTIONS, value).apply() + var debugMode: Boolean + get() = preferences.getBoolean(SettingsKey.DEBUG_MODE, false) + set(value) = preferences.edit().putBoolean(SettingsKey.DEBUG_MODE, value).apply() + + val enableTun: Boolean + get() = preferences.getBoolean(SettingsKey.ENABLE_TUN, true) + var disableMemoryLimit: Boolean get() = preferences.getBoolean(SettingsKey.DISABLE_MEMORY_LIMIT, false) set(value) = preferences.edit().putBoolean(SettingsKey.DISABLE_MEMORY_LIMIT, value).apply() @@ -73,6 +80,7 @@ object Settings { } private suspend fun needVPNService(): Boolean { + if(enableTun) return true val filePath = activeConfigPath if (filePath.isBlank()) return false val content = JSONObject(File(filePath).readText()) diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/BoxService.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/BoxService.kt index ab79cb4b..78032dad 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/BoxService.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/BoxService.kt @@ -43,11 +43,12 @@ class BoxService( private const val TAG = "A/BoxService" private var initializeOnce = false + private lateinit var workingDir: File private fun initialize() { if (initializeOnce) return val baseDir = Application.application.filesDir baseDir.mkdirs() - val workingDir = Application.application.getExternalFilesDir(null) ?: return + workingDir = Application.application.getExternalFilesDir(null) ?: return workingDir.mkdirs() val tempDir = Application.application.cacheDir tempDir.mkdirs() @@ -156,6 +157,10 @@ class BoxService( return } + if(Settings.debugMode) { + File(workingDir, "current-config.json").writeText(content) + } + withContext(Dispatchers.Main) { binder.broadcast { it.onServiceResetLogs(listOf()) diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/PlatformInterfaceWrapper.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/PlatformInterfaceWrapper.kt index 8fc3f181..9345bef7 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/PlatformInterfaceWrapper.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/PlatformInterfaceWrapper.kt @@ -30,10 +30,6 @@ interface PlatformInterfaceWrapper : PlatformInterface { error("invalid argument") } - override fun closeTun() { - error("invalid argument") - } - override fun useProcFS(): Boolean { return Build.VERSION.SDK_INT < Build.VERSION_CODES.Q } diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt index acf29f1a..ca03dbc7 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/bg/VPNService.kt @@ -150,10 +150,6 @@ class VPNService : VpnService(), PlatformInterfaceWrapper { return pfd.fd } - override fun closeTun() { - service.onRevoke() - } - override fun writeLog(message: String) = service.writeLog(message) } \ No newline at end of file diff --git a/android/app/src/main/kotlin/com/hiddify/hiddify/constant/SettingsKey.kt b/android/app/src/main/kotlin/com/hiddify/hiddify/constant/SettingsKey.kt index 405d15cc..1b6477c8 100644 --- a/android/app/src/main/kotlin/com/hiddify/hiddify/constant/SettingsKey.kt +++ b/android/app/src/main/kotlin/com/hiddify/hiddify/constant/SettingsKey.kt @@ -13,6 +13,8 @@ object SettingsKey { const val PER_APP_PROXY_LIST = "per_app_proxy_list" const val PER_APP_PROXY_UPDATE_ON_CHANGE = "per_app_proxy_update_on_change" + const val DEBUG_MODE = "${KEY_PREFIX}debug_mode" + const val ENABLE_TUN = "${KEY_PREFIX}enable-tun" const val DISABLE_MEMORY_LIMIT = "${KEY_PREFIX}disable_memory_limit" const val SYSTEM_PROXY_ENABLED = "${KEY_PREFIX}system_proxy_enabled"