From bb9bd9bff6325ab15dd7fa672f534fc17790c357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Sun, 9 Jun 2024 07:21:50 +0800 Subject: [PATCH] Fix package manager start order --- route/router.go | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/route/router.go b/route/router.go index 2041ebd2..26344f01 100644 --- a/route/router.go +++ b/route/router.go @@ -531,6 +531,22 @@ func (r *Router) Start() error { r.dnsClient.Start() monitor.Finish() + if C.IsAndroid && r.platformInterface == nil { + monitor.Start("initialize package manager") + packageManager, err := tun.NewPackageManager(r) + monitor.Finish() + if err != nil { + return E.Cause(err, "create package manager") + } + monitor.Start("start package manager") + err = packageManager.Start() + monitor.Finish() + if err != nil { + return E.Cause(err, "start package manager") + } + r.packageManager = packageManager + } + for i, rule := range r.dnsRules { monitor.Start("initialize DNS rule[", i, "]") err := rule.Start() @@ -672,23 +688,7 @@ func (r *Router) PostStart() error { needWIFIStateFromRuleSet = true } } - if needProcessFromRuleSet || r.needFindProcess || r.needPackageManager { - if C.IsAndroid && r.platformInterface == nil { - monitor.Start("initialize package manager") - packageManager, err := tun.NewPackageManager(r) - monitor.Finish() - if err != nil { - return E.Cause(err, "create package manager") - } - monitor.Start("start package manager") - err = packageManager.Start() - monitor.Finish() - if err != nil { - return E.Cause(err, "start package manager") - } - r.packageManager = packageManager - } - + if needProcessFromRuleSet || r.needFindProcess { if r.platformInterface != nil { r.processSearcher = r.platformInterface } else {