Update On Wed Oct 9 20:34:41 CEST 2024

This commit is contained in:
github-action[bot]
2024-10-09 20:34:42 +02:00
parent 5f2a772a48
commit 8a4e08c276
126 changed files with 2177 additions and 1812 deletions

View File

@@ -5,9 +5,6 @@ on:
tag:
description: 'Release Tag'
required: true
upload:
description: 'Upload: If want ignore'
required: false
publish:
description: 'Publish: If want ignore'
required: false
@@ -100,36 +97,6 @@ jobs:
mkdir apks
find artifacts -name "*.apk" -exec cp {} apks \;
./ghr -delete -t "${{ github.token }}" -n "${{ github.event.inputs.tag }}" "${{ github.event.inputs.tag }}" apks
upload:
name: Upload Release
if: github.event.inputs.upload != 'y'
runs-on: ubuntu-latest
needs: build
steps:
- name: Donwload Artifacts
uses: actions/download-artifact@v4
with:
name: APKs
path: artifacts
- name: Release
run: |
mkdir apks
find artifacts -name "*.apk" -exec cp {} apks \;
function upload() {
for apk in $@; do
echo ">> Uploading $apk"
curl https://api.telegram.org/bot${{ secrets.TELEGRAM_TOKEN }}/sendDocument \
-X POST \
-F chat_id="${{ secrets.TELEGRAM_CHANNEL }}" \
-F document="@$apk" \
--silent --show-error --fail >/dev/null &
done
for job in $(jobs -p); do
wait $job || exit 1
done
}
upload apks/*
play:
name: Build Play Bundle
if: github.event.inputs.play != 'y'

View File

@@ -98,7 +98,7 @@ object DataStore : OnPreferenceDataStoreChangeListener {
var showGroupInNotification by configurationStore.boolean("showGroupInNotification")
var remoteDns by configurationStore.string(Key.REMOTE_DNS) { "https://dns.google/dns-query" }
var directDns by configurationStore.string(Key.DIRECT_DNS) { "local" }
var directDns by configurationStore.string(Key.DIRECT_DNS) { "https://120.53.53.53/dns-query" }
var enableDnsRouting by configurationStore.boolean(Key.ENABLE_DNS_ROUTING) { true }
var enableFakeDns by configurationStore.boolean(Key.ENABLE_FAKEDNS)

View File

@@ -48,7 +48,6 @@ const val TAG_DNS_IN = "dns-in"
const val TAG_DNS_OUT = "dns-out"
const val LOCALHOST = "127.0.0.1"
const val LOCAL_DNS_SERVER = "local"
class ConfigBuildResult(
var config: String,
@@ -697,7 +696,7 @@ fun buildConfig(
})
}
dns.servers.add(DNSServerOptions().apply {
address = LOCAL_DNS_SERVER
address = "local"
tag = "dns-local"
detour = TAG_DIRECT
})
@@ -714,14 +713,8 @@ fun buildConfig(
}
if (forTest) {
// Always use system DNS for urlTest
dns.servers = listOf(
DNSServerOptions().apply {
address = LOCAL_DNS_SERVER
tag = "dns-local"
detour = TAG_DIRECT
}
)
// Always use direct DNS for urlTest
dns.servers.removeAt(0)
dns.rules = listOf()
} else {
// built-in DNS rules
@@ -732,7 +725,7 @@ fun buildConfig(
route.rules.add(0, Rule_DefaultOptions().apply {
port = listOf(53)
outbound = TAG_DNS_OUT
}) // TODO new mode use system dns?
})
if (DataStore.bypassLanInCore) {
route.rules.add(Rule_DefaultOptions().apply {
outbound = TAG_BYPASS

View File

@@ -14,7 +14,7 @@ public abstract class StandardV2RayBean extends AbstractBean {
//////// End of VMess & VLESS ////////
// "V2Ray Transport" tcp/http/ws/quic/grpc/httpUpgrade
// "V2Ray Transport" tcp/http/ws/quic/grpc/httpupgrade
public String type;
public String host;

View File

@@ -593,12 +593,6 @@ fun buildSingBoxOutboundStreamSettings(bean: StandardV2RayBean): V2RayTransportO
}
}
// if (needKeepAliveInterval) {
// sockopt = StreamSettingsObject.SockoptObject().apply {
// tcpKeepAliveInterval = keepAliveInterval
// }
// }
return null
}

View File

@@ -286,6 +286,7 @@ object RawUpdater : GroupUpdater() {
}
"vmess", "vless" -> {
var isHttpUpgrade = false
val isVLESS = proxy["type"].toString() == "vless"
val bean = VMessBean().apply {
if (isVLESS) {
@@ -366,6 +367,10 @@ object RawUpdater : GroupUpdater() {
"early-data-header-name" -> {
bean.earlyDataHeaderName = wsOpt.value.toString()
}
"v2ray-http-upgrade" -> {
isHttpUpgrade = true
}
}
}
@@ -411,10 +416,14 @@ object RawUpdater : GroupUpdater() {
}
}
}
if (isHttpUpgrade) {
bean.type = "httpupgrade"
}
proxies.add(bean)
}
"trojan" -> {
var isHttpUpgrade = false
val bean = TrojanBean()
bean.security = "tls"
for (opt in proxy) {
@@ -451,6 +460,10 @@ object RawUpdater : GroupUpdater() {
"path" -> {
bean.path = wsOpt.value.toString()
}
"v2ray-http-upgrade" -> {
isHttpUpgrade = true
}
}
}
@@ -462,6 +475,9 @@ object RawUpdater : GroupUpdater() {
}
}
}
if (isHttpUpgrade) {
bean.type = "httpupgrade"
}
proxies.add(bean)
}

View File

@@ -43,13 +43,13 @@ class LogcatFragment : ToolbarFragment(R.layout.layout_logcat),
private fun getColorForLine(line: String): ForegroundColorSpan {
var color = ForegroundColorSpan(Color.GRAY)
when {
line.contains(" INFO[") || line.contains(" [Info]") -> {
line.contains("INFO[") || line.contains(" [Info]") -> {
color = ForegroundColorSpan((0xFF86C166).toInt())
}
line.contains(" ERROR[") || line.contains(" [Error]") -> {
line.contains("ERROR[") || line.contains(" [Error]") -> {
color = ForegroundColorSpan(Color.RED)
}
line.contains(" WARN[") || line.contains(" [Warning]") -> {
line.contains("WARN[") || line.contains(" [Warning]") -> {
color = ForegroundColorSpan(Color.RED)
}
}

View File

@@ -8,21 +8,21 @@ import moe.matsuri.nb4a.SingBoxOptions.RuleSet
object SingBoxOptionsUtil {
fun domainStrategy(tag: String): String {
fun auto2AsIs(key: String): String {
return (DataStore.configurationStore.getString(key) ?: "").replace("auto", "")
fun auto2(key: String, newS: String): String {
return (DataStore.configurationStore.getString(key) ?: "").replace("auto", newS)
}
return when (tag) {
"dns-remote" -> {
auto2AsIs("domain_strategy_for_remote")
auto2("domain_strategy_for_remote", "")
}
"dns-direct" -> {
auto2AsIs("domain_strategy_for_direct")
auto2("domain_strategy_for_direct", "")
}
// server
else -> {
auto2AsIs("domain_strategy_for_server")
auto2("domain_strategy_for_server", "prefer_ipv4")
}
}
}

View File

@@ -263,7 +263,7 @@
<item>http</item>
<item>quic</item>
<item>grpc</item>
<!-- <item>httpupgrade</item>-->
<item>httpupgrade</item>
</string-array>
<string-array name="trojan_go_networks_entry">

View File

@@ -177,7 +177,7 @@
app:title="@string/domain_strategy_for_remote"
app:useSimpleSummaryProvider="true" />
<EditTextPreference
app:defaultValue="local"
app:defaultValue="https://120.53.53.53/dns-query"
app:icon="@drawable/ic_action_dns"
app:key="directDns"
app:title="@string/direct_dns"

View File

@@ -22,6 +22,16 @@ popd
####
if [ ! -d "sing-quic" ]; then
git clone --no-checkout https://github.com/MatsuriDayo/sing-quic.git
fi
pushd sing-quic
git checkout "$COMMIT_SING_QUIC"
popd
####
if [ ! -d "libneko" ]; then
git clone --no-checkout https://github.com/MatsuriDayo/libneko.git
fi

View File

@@ -1,2 +1,3 @@
export COMMIT_SING_BOX="cf36758f11b7c144e1211801753cc91f06ff2906"
export COMMIT_SING_BOX="06557f6cef23160668122a17a818b378b5a216b5"
export COMMIT_SING_QUIC="b49ce60d9b3622d5238fee96bfd3c5f6e3915b42"
export COMMIT_LIBNEKO="1c47a3af71990a7b2192e03292b4d246c308ef0b"

View File

@@ -11,7 +11,6 @@ import (
"runtime/debug"
"strings"
"github.com/matsuridayo/libneko/neko_log"
"github.com/matsuridayo/libneko/protect_server"
"github.com/matsuridayo/libneko/speedtest"
"github.com/sagernet/sing-box/boxapi"
@@ -21,6 +20,8 @@ import (
"github.com/sagernet/sing-box/constant"
"github.com/sagernet/sing-box/option"
"github.com/sagernet/sing-box/outbound"
"github.com/sagernet/sing/common"
"github.com/sagernet/sing/service"
"github.com/sagernet/sing/service/pause"
)
@@ -79,15 +80,16 @@ func NewSingBoxInstance(config string) (b *BoxInstance, err error) {
return nil, fmt.Errorf("decode config: %v", err)
}
// create box
// create box context
ctx, cancel := context.WithCancel(context.Background())
sleepManager := pause.ManagerFromContext(ctx)
//sleepManager := pause.NewDefaultManager(ctx)
ctx = pause.ContextWithManager(ctx, sleepManager)
ctx = service.ContextWithDefaultRegistry(ctx)
// create box
instance, err := box.New(box.Options{
Options: options,
Context: ctx,
PlatformInterface: boxPlatformInterfaceInstance,
PlatformLogWriter: boxPlatformLogWriter,
})
if err != nil {
cancel()
@@ -97,16 +99,9 @@ func NewSingBoxInstance(config string) (b *BoxInstance, err error) {
b = &BoxInstance{
Box: instance,
cancel: cancel,
pauseManager: sleepManager,
pauseManager: service.FromContext[pause.Manager](ctx),
}
b.SetLogWritter(neko_log.LogWriter)
// fuck your sing-box platformFormatter
pf := instance.GetLogPlatformFormatter()
pf.DisableColors = true
pf.DisableLineBreak = false
// selector
if proxy, ok := b.Router().Outbound("proxy"); ok {
if selector, ok := proxy.(*outbound.Selector); ok {
@@ -143,9 +138,7 @@ func (b *BoxInstance) Close() (err error) {
}
// close box
b.Close()
// close box.Box
b.Box.Close()
common.Close(b.Box)
return nil
}
@@ -164,10 +157,6 @@ func (b *BoxInstance) SetAsMain() {
goServeProtect(true)
}
func (b *BoxInstance) SetConnectionPoolEnabled(enable bool) {
// TODO api
}
func (b *BoxInstance) SetV2rayStats(outbounds string) {
b.v2api = boxapi.NewSbV2rayServer(option.V2RayStatsServiceOptions{
Enabled: true,

View File

@@ -5,10 +5,10 @@ go 1.20
require (
github.com/matsuridayo/libneko v1.0.0 // replaced
github.com/miekg/dns v1.1.59
github.com/sagernet/sing v0.4.1
github.com/sagernet/sing v0.4.3
github.com/sagernet/sing-box v1.0.0 // replaced
github.com/sagernet/sing-dns v0.2.1-0.20240624030536-ca4a5f7afb65
github.com/sagernet/sing-tun v0.3.2
github.com/sagernet/sing-dns v0.2.3
github.com/sagernet/sing-tun v0.3.3
github.com/ulikunitz/xz v0.5.11
golang.org/x/mobile v0.0.0-20231108233038-35478a0c49da
)
@@ -44,6 +44,7 @@ require (
github.com/libdns/cloudflare v0.1.1 // indirect
github.com/libdns/libdns v0.2.2 // indirect
github.com/logrusorgru/aurora v2.0.3+incompatible // indirect
github.com/metacubex/tfo-go v0.0.0-20240821025650-e9be0afd5e7d // indirect
github.com/mholt/acmez v1.2.0 // indirect
github.com/onsi/ginkgo/v2 v2.9.7 // indirect
github.com/ooni/go-libtor v1.1.8 // indirect
@@ -54,16 +55,15 @@ require (
github.com/sagernet/cloudflare-tls v0.0.0-20231208171750-a4483c1b7cd1 // indirect
github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f // indirect
github.com/sagernet/netlink v0.0.0-20240523065131-45e60152f9ba // indirect
github.com/sagernet/quic-go v0.45.1-beta.2 // indirect
github.com/sagernet/quic-go v0.47.0-beta.2 // indirect
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691 // indirect
github.com/sagernet/sing-mux v0.2.0 // indirect
github.com/sagernet/sing-quic v0.2.0-beta.12 // indirect
github.com/sagernet/sing-shadowsocks v0.2.6 // indirect
github.com/sagernet/sing-quic v0.2.2 // indirect
github.com/sagernet/sing-shadowsocks v0.2.7 // indirect
github.com/sagernet/sing-shadowsocks2 v0.2.0 // indirect
github.com/sagernet/sing-shadowtls v0.1.4 // indirect
github.com/sagernet/sing-vmess v0.1.8 // indirect
github.com/sagernet/sing-vmess v0.1.12 // indirect
github.com/sagernet/smux v0.0.0-20231208180855-7041f6ea79e7 // indirect
github.com/sagernet/tfo-go v0.0.0-20231209031829-7b5343ac1dc6 // indirect
github.com/sagernet/utls v1.5.4 // indirect
github.com/sagernet/wireguard-go v0.0.0-20231215174105-89dec3b2f3e8 // indirect
github.com/sagernet/ws v0.0.0-20231204124109-acfe8907c854 // indirect
@@ -79,23 +79,23 @@ require (
golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f // indirect
golang.org/x/mod v0.18.0 // indirect
golang.org/x/net v0.25.0 // indirect
golang.org/x/sync v0.7.0 // indirect
golang.org/x/sys v0.21.0 // indirect
golang.org/x/text v0.16.0 // indirect
golang.org/x/sync v0.8.0 // indirect
golang.org/x/sys v0.25.0 // indirect
golang.org/x/text v0.18.0 // indirect
golang.org/x/time v0.5.0 // indirect
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230429144221-925a1e7659e6 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect
google.golang.org/grpc v1.63.2 // indirect
google.golang.org/protobuf v1.33.0 // indirect
lukechampine.com/blake3 v1.2.1 // indirect
lukechampine.com/blake3 v1.3.0 // indirect
)
replace github.com/matsuridayo/libneko => ../../libneko
replace github.com/sagernet/sing-box => ../../sing-box
// replace github.com/sagernet/sing-quic => ../../sing-quic
replace github.com/sagernet/sing-quic => ../../sing-quic
// replace github.com/sagernet/sing => ../../sing

View File

@@ -65,6 +65,8 @@ github.com/libdns/libdns v0.2.2 h1:O6ws7bAfRPaBsgAYt8MDe2HcNBGC29hkZ9MX2eUSX3s=
github.com/libdns/libdns v0.2.2/go.mod h1:4Bj9+5CQiNMVGf87wjX4CY3HQJypUHRuLvlsfsZqLWQ=
github.com/logrusorgru/aurora v2.0.3+incompatible h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8=
github.com/logrusorgru/aurora v2.0.3+incompatible/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
github.com/metacubex/tfo-go v0.0.0-20240821025650-e9be0afd5e7d h1:j9LtzkYstLFoNvXW824QQeN7Y26uPL5249kzWKbzO9U=
github.com/metacubex/tfo-go v0.0.0-20240821025650-e9be0afd5e7d/go.mod h1:c7bVFM9f5+VzeZ/6Kg77T/jrg1Xp8QpqlSHvG/aXVts=
github.com/mholt/acmez v1.2.0 h1:1hhLxSgY5FvH5HCnGUuwbKY2VQVo8IU7rxXKSnZ7F30=
github.com/mholt/acmez v1.2.0/go.mod h1:VT9YwH1xgNX1kmYY89gY8xPJC84BFAisjo8Egigt4kE=
github.com/miekg/dns v1.1.59 h1:C9EXc/UToRwKLhK5wKU/I4QVsBUc8kE6MkHBkeypWZs=
@@ -93,33 +95,29 @@ github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f h1:NkhuupzH5ch7b/Y
github.com/sagernet/gvisor v0.0.0-20240428053021-e691de28565f/go.mod h1:KXmw+ouSJNOsuRpg4wgwwCQuunrGz4yoAqQjsLjc6N0=
github.com/sagernet/netlink v0.0.0-20240523065131-45e60152f9ba h1:EY5AS7CCtfmARNv2zXUOrsEMPFDGYxaw65JzA2p51Vk=
github.com/sagernet/netlink v0.0.0-20240523065131-45e60152f9ba/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM=
github.com/sagernet/quic-go v0.45.1-beta.2 h1:zkEeCbhdFFkrxKcuIRBtXNKci/1t2J/39QSG/sPvlmc=
github.com/sagernet/quic-go v0.45.1-beta.2/go.mod h1:+N3FqM9DAzOWfe64uxXuBejVJwX7DeW7BslzLO6N/xI=
github.com/sagernet/quic-go v0.47.0-beta.2 h1:1tCGWFOSaXIeuQaHrwOMJIYvlupjTcaVInGQw5ArULU=
github.com/sagernet/quic-go v0.47.0-beta.2/go.mod h1:bLVKvElSEMNv7pu7SZHscW02TYigzQ5lQu3Nh4wNh8Q=
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691 h1:5Th31OC6yj8byLGkEnIYp6grlXfo1QYUfiYFGjewIdc=
github.com/sagernet/reality v0.0.0-20230406110435-ee17307e7691/go.mod h1:B8lp4WkQ1PwNnrVMM6KyuFR20pU8jYBD+A4EhJovEXU=
github.com/sagernet/sing v0.2.18/go.mod h1:OL6k2F0vHmEzXz2KW19qQzu172FDgSbUSODylighuVo=
github.com/sagernet/sing v0.4.1 h1:zVlpE+7k7AFoC2pv6ReqLf0PIHjihL/jsBl5k05PQFk=
github.com/sagernet/sing v0.4.1/go.mod h1:ieZHA/+Y9YZfXs2I3WtuwgyCZ6GPsIR7HdKb1SdEnls=
github.com/sagernet/sing-dns v0.2.1-0.20240624030536-ca4a5f7afb65 h1:lcCe7E1csuyUA3RCvpFcIYOy6FIifDthKaCrUjLG4xA=
github.com/sagernet/sing-dns v0.2.1-0.20240624030536-ca4a5f7afb65/go.mod h1:dArgyPZmK8+zDBVRMjV3r12zHgnTara0ahrWwSe/eQE=
github.com/sagernet/sing v0.4.3 h1:Ty/NAiNnVd6844k7ujlL5lkzydhcTH5Psc432jXA4Y8=
github.com/sagernet/sing v0.4.3/go.mod h1:ieZHA/+Y9YZfXs2I3WtuwgyCZ6GPsIR7HdKb1SdEnls=
github.com/sagernet/sing-dns v0.2.3 h1:YzeBUn2tR38F7HtvGEQ0kLRLmZWMEgi/+7wqa4Twb1k=
github.com/sagernet/sing-dns v0.2.3/go.mod h1:BJpJv6XLnrUbSyIntOT6DG9FW0f4fETmPAHvNjOprLg=
github.com/sagernet/sing-mux v0.2.0 h1:4C+vd8HztJCWNYfufvgL49xaOoOHXty2+EAjnzN3IYo=
github.com/sagernet/sing-mux v0.2.0/go.mod h1:khzr9AOPocLa+g53dBplwNDz4gdsyx/YM3swtAhlkHQ=
github.com/sagernet/sing-quic v0.2.0-beta.12 h1:BhvA5mmrDFEyDUQB5eeu+9UhF+ieyuNJ5Rsb0dAG3QY=
github.com/sagernet/sing-quic v0.2.0-beta.12/go.mod h1:YVpLfVi8BvYM7NMrjmnvcRm3E8iMETf1gFQmTQDN9jI=
github.com/sagernet/sing-shadowsocks v0.2.6 h1:xr7ylAS/q1cQYS8oxKKajhuQcchd5VJJ4K4UZrrpp0s=
github.com/sagernet/sing-shadowsocks v0.2.6/go.mod h1:j2YZBIpWIuElPFL/5sJAj470bcn/3QQ5lxZUNKLDNAM=
github.com/sagernet/sing-shadowsocks v0.2.7 h1:zaopR1tbHEw5Nk6FAkM05wCslV6ahVegEZaKMv9ipx8=
github.com/sagernet/sing-shadowsocks v0.2.7/go.mod h1:0rIKJZBR65Qi0zwdKezt4s57y/Tl1ofkaq6NlkzVuyE=
github.com/sagernet/sing-shadowsocks2 v0.2.0 h1:wpZNs6wKnR7mh1wV9OHwOyUr21VkS3wKFHi+8XwgADg=
github.com/sagernet/sing-shadowsocks2 v0.2.0/go.mod h1:RnXS0lExcDAovvDeniJ4IKa2IuChrdipolPYWBv9hWQ=
github.com/sagernet/sing-shadowtls v0.1.4 h1:aTgBSJEgnumzFenPvc+kbD9/W0PywzWevnVpEx6Tw3k=
github.com/sagernet/sing-shadowtls v0.1.4/go.mod h1:F8NBgsY5YN2beQavdgdm1DPlhaKQlaL6lpDdcBglGK4=
github.com/sagernet/sing-tun v0.3.2 h1:z0bLUT/YXH9RrJS9DsIpB0Bb9afl2hVJOmHd0zA3HJY=
github.com/sagernet/sing-tun v0.3.2/go.mod h1:DxLIyhjWU/HwGYoX0vNGg2c5QgTQIakphU1MuERR5tQ=
github.com/sagernet/sing-vmess v0.1.8 h1:XVWad1RpTy9b5tPxdm5MCU8cGfrTGdR8qCq6HV2aCNc=
github.com/sagernet/sing-vmess v0.1.8/go.mod h1:vhx32UNzTDUkNwOyIjcZQohre1CaytquC5mPplId8uA=
github.com/sagernet/sing-tun v0.3.3 h1:LZnQNmfGcNG2KPTPkLgc+Lo7k606QJVkPp2DnjriwUk=
github.com/sagernet/sing-tun v0.3.3/go.mod h1:DxLIyhjWU/HwGYoX0vNGg2c5QgTQIakphU1MuERR5tQ=
github.com/sagernet/sing-vmess v0.1.12 h1:2gFD8JJb+eTFMoa8FIVMnknEi+vCSfaiTXTfEYAYAPg=
github.com/sagernet/sing-vmess v0.1.12/go.mod h1:luTSsfyBGAc9VhtCqwjR+dt1QgqBhuYBCONB/POhF8I=
github.com/sagernet/smux v0.0.0-20231208180855-7041f6ea79e7 h1:DImB4lELfQhplLTxeq2z31Fpv8CQqqrUwTbrIRumZqQ=
github.com/sagernet/smux v0.0.0-20231208180855-7041f6ea79e7/go.mod h1:FP9X2xjT/Az1EsG/orYYoC+5MojWnuI7hrffz8fGwwo=
github.com/sagernet/tfo-go v0.0.0-20231209031829-7b5343ac1dc6 h1:z3SJQhVyU63FT26Wn/UByW6b7q8QKB0ZkPqsyqcz2PI=
github.com/sagernet/tfo-go v0.0.0-20231209031829-7b5343ac1dc6/go.mod h1:73xRZuxwkFk4aiLw28hG8W6o9cr2UPrGL9pdY2UTbvY=
github.com/sagernet/utls v1.5.4 h1:KmsEGbB2dKUtCNC+44NwAdNAqnqQ6GA4pTO0Yik56co=
github.com/sagernet/utls v1.5.4/go.mod h1:CTGxPWExIloRipK3XFpYv0OVyhO8kk3XCGW/ieyTh1s=
github.com/sagernet/wireguard-go v0.0.0-20231215174105-89dec3b2f3e8 h1:R0OMYAScomNAVpTfbHFpxqJpvwuhxSRi+g6z7gZhABs=
@@ -168,8 +166,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -179,14 +177,14 @@ golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -204,5 +202,5 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI=
lukechampine.com/blake3 v1.2.1/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k=
lukechampine.com/blake3 v1.3.0 h1:sJ3XhFINmHSrYCgl958hscfIa3bw8x4DqMP3u1YvoYE=
lukechampine.com/blake3 v1.3.0/go.mod h1:0OFRp7fBtAylGVCO40o87sbupkyIGgbpv1+M1k1LM6k=

View File

@@ -13,6 +13,7 @@ import (
"github.com/matsuridayo/libneko/neko_common"
"github.com/matsuridayo/libneko/neko_log"
boxmain "github.com/sagernet/sing-box/cmd/sing-box"
"github.com/sagernet/sing-box/nekoutils"
)
//go:linkname resourcePaths github.com/sagernet/sing-box/constant.resourcePaths
@@ -60,7 +61,7 @@ func InitCore(process, cachePath, internalAssets, externalAssets string,
boxmain.SetDisableColor(true)
// nekoutils
// nekoutils.Selector_OnProxySelected = intfNB4A.Selector_OnProxySelected
nekoutils.Selector_OnProxySelected = intfNB4A.Selector_OnProxySelected
// Set up some component
go func() {

View File

@@ -11,9 +11,11 @@ import (
"strings"
"syscall"
"github.com/matsuridayo/libneko/neko_log"
"github.com/sagernet/sing-box/adapter"
"github.com/sagernet/sing-box/common/process"
"github.com/sagernet/sing-box/experimental/libbox/platform"
sblog "github.com/sagernet/sing-box/log"
"github.com/sagernet/sing-box/option"
tun "github.com/sagernet/sing-tun"
"github.com/sagernet/sing/common/control"
@@ -147,3 +149,19 @@ func (w *boxPlatformInterfaceWrapper) Write(p []byte) (n int, err error) {
}
return len(p), nil
}
// 日志
type boxPlatformLogWriterWrapper struct {
}
var boxPlatformLogWriter sblog.PlatformWriter = &boxPlatformLogWriterWrapper{}
func (w *boxPlatformLogWriterWrapper) DisableColors() bool { return true }
func (w *boxPlatformLogWriterWrapper) WriteMessage(level uint8, message string) {
if !strings.HasSuffix(message, "\n") {
message += "\n"
}
neko_log.LogWriter.Write([]byte(message))
}

View File

@@ -1,3 +1,3 @@
PACKAGE_NAME=moe.nb4a
VERSION_NAME=1.3.1
VERSION_CODE=35
VERSION_NAME=1.3.2
VERSION_CODE=36