mirror of
https://github.com/wgtunnel/android.git
synced 2026-07-03 14:07:49 +02:00
3eb72cd43c
Another big one. - SOCKS5/HTTP proxy integration via "proxy mode" - Kill switch (which was hacky and leaky) has been replace by a robust "lockdown mode" which keeps a dummy vpnservice tunnel active, capturing all device traffic and fowarding it to a netstack/gvisor tunnel via the SOCKS5 proxy. If a tunnel requires DNS resolution for peer endpoints, we punch a hole by bypassing a socket for DoH resolution to keep things secure and private. - DoH support for peer endpoint resolutions for proxy, lockdown, and regular vpn mode (not kernel, yet) with support for cloudflare and Adguard DoH providers.
359 lines
13 KiB
JSON
359 lines
13 KiB
JSON
{
|
|
"formatVersion": 1,
|
|
"database": {
|
|
"version": 20,
|
|
"identityHash": "51f828868c0ea2f0f5c987410ff5c5a1",
|
|
"entities": [
|
|
{
|
|
"tableName": "Settings",
|
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `is_tunnel_enabled` INTEGER NOT NULL, `is_tunnel_on_mobile_data_enabled` INTEGER NOT NULL, `trusted_network_ssids` TEXT NOT NULL, `is_always_on_vpn_enabled` INTEGER NOT NULL, `is_tunnel_on_ethernet_enabled` INTEGER NOT NULL, `is_shortcuts_enabled` INTEGER NOT NULL DEFAULT false, `is_tunnel_on_wifi_enabled` INTEGER NOT NULL DEFAULT false, `is_restore_on_boot_enabled` INTEGER NOT NULL DEFAULT false, `is_multi_tunnel_enabled` INTEGER NOT NULL DEFAULT false, `is_ping_enabled` INTEGER NOT NULL DEFAULT false, `is_wildcards_enabled` INTEGER NOT NULL DEFAULT false, `is_stop_on_no_internet_enabled` INTEGER NOT NULL DEFAULT false, `is_lan_on_kill_switch_enabled` INTEGER NOT NULL DEFAULT false, `debounce_delay_seconds` INTEGER NOT NULL DEFAULT 3, `is_disable_kill_switch_on_trusted_enabled` INTEGER NOT NULL DEFAULT false, `is_tunnel_on_unsecure_enabled` INTEGER NOT NULL DEFAULT false, `wifi_detection_method` INTEGER NOT NULL DEFAULT 0, `is_ping_monitoring_enabled` INTEGER NOT NULL DEFAULT true, `tunnel_ping_interval_sec` INTEGER NOT NULL DEFAULT 30, `tunnel_ping_attempts` INTEGER NOT NULL DEFAULT 3, `tunnel_ping_timeout_sec` INTEGER, `app_mode` INTEGER NOT NULL DEFAULT 0, `dns_protocol` INTEGER NOT NULL DEFAULT 0, `dns_endpoint` TEXT)",
|
|
"fields": [
|
|
{
|
|
"fieldPath": "id",
|
|
"columnName": "id",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "isAutoTunnelEnabled",
|
|
"columnName": "is_tunnel_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "isTunnelOnMobileDataEnabled",
|
|
"columnName": "is_tunnel_on_mobile_data_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "trustedNetworkSSIDs",
|
|
"columnName": "trusted_network_ssids",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "isAlwaysOnVpnEnabled",
|
|
"columnName": "is_always_on_vpn_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "isTunnelOnEthernetEnabled",
|
|
"columnName": "is_tunnel_on_ethernet_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "isShortcutsEnabled",
|
|
"columnName": "is_shortcuts_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "isTunnelOnWifiEnabled",
|
|
"columnName": "is_tunnel_on_wifi_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "isRestoreOnBootEnabled",
|
|
"columnName": "is_restore_on_boot_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "isMultiTunnelEnabled",
|
|
"columnName": "is_multi_tunnel_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "isPingEnabled",
|
|
"columnName": "is_ping_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "isWildcardsEnabled",
|
|
"columnName": "is_wildcards_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "isStopOnNoInternetEnabled",
|
|
"columnName": "is_stop_on_no_internet_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "isLanOnKillSwitchEnabled",
|
|
"columnName": "is_lan_on_kill_switch_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "debounceDelaySeconds",
|
|
"columnName": "debounce_delay_seconds",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "3"
|
|
},
|
|
{
|
|
"fieldPath": "isDisableKillSwitchOnTrustedEnabled",
|
|
"columnName": "is_disable_kill_switch_on_trusted_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "isTunnelOnUnsecureEnabled",
|
|
"columnName": "is_tunnel_on_unsecure_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "wifiDetectionMethod",
|
|
"columnName": "wifi_detection_method",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "0"
|
|
},
|
|
{
|
|
"fieldPath": "isPingMonitoringEnabled",
|
|
"columnName": "is_ping_monitoring_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "true"
|
|
},
|
|
{
|
|
"fieldPath": "tunnelPingIntervalSeconds",
|
|
"columnName": "tunnel_ping_interval_sec",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "30"
|
|
},
|
|
{
|
|
"fieldPath": "tunnelPingAttempts",
|
|
"columnName": "tunnel_ping_attempts",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "3"
|
|
},
|
|
{
|
|
"fieldPath": "tunnelPingTimeoutSeconds",
|
|
"columnName": "tunnel_ping_timeout_sec",
|
|
"affinity": "INTEGER"
|
|
},
|
|
{
|
|
"fieldPath": "appMode",
|
|
"columnName": "app_mode",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "0"
|
|
},
|
|
{
|
|
"fieldPath": "dnsProtocol",
|
|
"columnName": "dns_protocol",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "0"
|
|
},
|
|
{
|
|
"fieldPath": "dnsEndpoint",
|
|
"columnName": "dns_endpoint",
|
|
"affinity": "TEXT"
|
|
}
|
|
],
|
|
"primaryKey": {
|
|
"autoGenerate": true,
|
|
"columnNames": [
|
|
"id"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"tableName": "TunnelConfig",
|
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT NOT NULL, `wg_quick` TEXT NOT NULL, `tunnel_networks` TEXT NOT NULL DEFAULT '', `is_mobile_data_tunnel` INTEGER NOT NULL DEFAULT false, `is_primary_tunnel` INTEGER NOT NULL DEFAULT false, `am_quick` TEXT NOT NULL DEFAULT '', `is_Active` INTEGER NOT NULL DEFAULT false, `restart_on_ping_failure` INTEGER NOT NULL DEFAULT false, `ping_target` TEXT DEFAULT null, `is_ethernet_tunnel` INTEGER NOT NULL DEFAULT false, `is_ipv4_preferred` INTEGER NOT NULL DEFAULT true, `position` INTEGER NOT NULL DEFAULT 0, `auto_tunnel_apps` TEXT NOT NULL DEFAULT '[]')",
|
|
"fields": [
|
|
{
|
|
"fieldPath": "id",
|
|
"columnName": "id",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "name",
|
|
"columnName": "name",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "wgQuick",
|
|
"columnName": "wg_quick",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "tunnelNetworks",
|
|
"columnName": "tunnel_networks",
|
|
"affinity": "TEXT",
|
|
"notNull": true,
|
|
"defaultValue": "''"
|
|
},
|
|
{
|
|
"fieldPath": "isMobileDataTunnel",
|
|
"columnName": "is_mobile_data_tunnel",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "isPrimaryTunnel",
|
|
"columnName": "is_primary_tunnel",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "amQuick",
|
|
"columnName": "am_quick",
|
|
"affinity": "TEXT",
|
|
"notNull": true,
|
|
"defaultValue": "''"
|
|
},
|
|
{
|
|
"fieldPath": "isActive",
|
|
"columnName": "is_Active",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "restartOnPingFailure",
|
|
"columnName": "restart_on_ping_failure",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "pingTarget",
|
|
"columnName": "ping_target",
|
|
"affinity": "TEXT",
|
|
"defaultValue": "null"
|
|
},
|
|
{
|
|
"fieldPath": "isEthernetTunnel",
|
|
"columnName": "is_ethernet_tunnel",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "isIpv4Preferred",
|
|
"columnName": "is_ipv4_preferred",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "true"
|
|
},
|
|
{
|
|
"fieldPath": "position",
|
|
"columnName": "position",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "0"
|
|
},
|
|
{
|
|
"fieldPath": "autoTunnelApps",
|
|
"columnName": "auto_tunnel_apps",
|
|
"affinity": "TEXT",
|
|
"notNull": true,
|
|
"defaultValue": "'[]'"
|
|
}
|
|
],
|
|
"primaryKey": {
|
|
"autoGenerate": true,
|
|
"columnNames": [
|
|
"id"
|
|
]
|
|
},
|
|
"indices": [
|
|
{
|
|
"name": "index_TunnelConfig_name",
|
|
"unique": true,
|
|
"columnNames": [
|
|
"name"
|
|
],
|
|
"orders": [],
|
|
"createSql": "CREATE UNIQUE INDEX IF NOT EXISTS `index_TunnelConfig_name` ON `${TABLE_NAME}` (`name`)"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"tableName": "proxy_settings",
|
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `socks5_proxy_enabled` INTEGER NOT NULL DEFAULT false, `socks5_proxy_bind_address` TEXT, `http_proxy_enable` INTEGER NOT NULL DEFAULT false, `http_proxy_bind_address` TEXT, `proxy_username` TEXT, `proxy_password` TEXT)",
|
|
"fields": [
|
|
{
|
|
"fieldPath": "id",
|
|
"columnName": "id",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "socks5ProxyEnabled",
|
|
"columnName": "socks5_proxy_enabled",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "socks5ProxyBindAddress",
|
|
"columnName": "socks5_proxy_bind_address",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "httpProxyEnabled",
|
|
"columnName": "http_proxy_enable",
|
|
"affinity": "INTEGER",
|
|
"notNull": true,
|
|
"defaultValue": "false"
|
|
},
|
|
{
|
|
"fieldPath": "httpProxyBindAddress",
|
|
"columnName": "http_proxy_bind_address",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "proxyUsername",
|
|
"columnName": "proxy_username",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "proxyPassword",
|
|
"columnName": "proxy_password",
|
|
"affinity": "TEXT"
|
|
}
|
|
],
|
|
"primaryKey": {
|
|
"autoGenerate": true,
|
|
"columnNames": [
|
|
"id"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"setupQueries": [
|
|
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
|
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '51f828868c0ea2f0f5c987410ff5c5a1')"
|
|
]
|
|
}
|
|
} |