12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package main
- import (
- "flag"
- "os"
- "os/exec"
- "path/filepath"
- _ "github.com/sagernet/gomobile/asset"
- "github.com/sagernet/sing-box/cmd/internal/build_shared"
- "github.com/sagernet/sing-box/log"
- "github.com/sagernet/sing/common/rw"
- )
- var debugEnabled bool
- func init() {
- flag.BoolVar(&debugEnabled, "debug", false, "enable debug")
- }
- func main() {
- build_shared.FindSDK()
- build_shared.FindMobile()
- args := []string{
- "bind",
- "-v",
- "-androidapi", "21",
- "-javapkg=io.nekohasekai",
- "-libname=box",
- }
- if !debugEnabled {
- args = append(args,
- "-trimpath", "-ldflags=-s -w -buildid=",
- "-tags", "with_gvisor,with_quic,with_wireguard,with_utls,with_clash_api,debug",
- )
- } else {
- args = append(args, "-tags", "with_gvisor,with_quic,with_wireguard,with_utls,with_clash_api")
- }
- args = append(args, "./experimental/libbox")
- command := exec.Command(build_shared.GoBinPath+"/gomobile", args...)
- command.Stdout = os.Stdout
- command.Stderr = os.Stderr
- err := command.Run()
- if err != nil {
- log.Fatal(err)
- }
- const name = "libbox.aar"
- copyPath := filepath.Join("..", "sing-box-for-android", "app", "libs")
- if rw.FileExists(copyPath) {
- copyPath, _ = filepath.Abs(copyPath)
- err = rw.CopyFile(name, filepath.Join(copyPath, name))
- if err != nil {
- log.Fatal(err)
- }
- log.Info("copied to ", copyPath)
- }
- }
|