Re: [PATCH] wg-quick: Android: Use ip link to set MTU
Hey Adam, On 2021-01-03 05:59, Adam Irr wrote: The ndc command used didn't work on my Nvidia Shield (rooted with a custom-built kernel). The ip link command does work. I have only tested this on an Nvidia Shield (Android TV - Version 9.0 Pie). I couldn't find a lot of documentation on ndc so it's possible my device/kernel is misconfigured. If you suspect this is the case, let me know. You couldn't find documentation because there isn't any, it's effectively "private API" and Google has broken it time and again. It is rather curious that you're running into this issue though, since we've had the NDC code in place since before Android 9 came out and went through breaking changes in every cycle without these specific invocations failing. The last ndc related problem we had was with the Android 11 release, where a similar fix[1] was implemented. I've Cc'ed Jason for reviewing this change, but I'm decidedly curious as to why just the Nvidia SHIELD seems to need it. Signed-off-by: Adam Irr --- src/wg-quick/android.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/wg-quick/android.c b/src/wg-quick/android.c index 326efa9..941c7b8 100644 --- a/src/wg-quick/android.c +++ b/src/wg-quick/android.c @@ -995,7 +995,7 @@ static void set_mtu(const char *iface, unsigned int mtu) int endpoint_mtu, next_mtu; if (mtu) { - cndc("interface setmtu %s %u", iface, mtu); + cmd("ip link set dev %s mtu %d", iface, mtu); return; } @@ -1016,7 +1016,7 @@ static void set_mtu(const char *iface, unsigned int mtu) endpoint_mtu = next_mtu; } - cndc("interface setmtu %s %d", iface, endpoint_mtu - 80); + cmd("ip link set dev %s mtu %d", iface, endpoint_mtu - 80); } static void add_route(const char *iface, unsigned int netid, const char *route) -- 2.25.1 Cheers, Harsh 1: https://git.zx2c4.com/wireguard-tools/commit/?id=9a0d65e2afbd6e418c883e0de8555b4fac29f1d5
Re: wireguard android don't prefer IPV6 endpoint
Hey Jérémy, On 2021-01-03 15:58, Jérémy Prego wrote: hello Harsh, The WireGuard Android client is designed to prefer IPv4 over IPv6 as of now why did you make this choice? is there a known bug with ipv6? I think it would be useful to put an option in the wireguard application, so that we can choose. Seems like the origin of this behavior is this[1] commit that cites issues with DNS64. I've CC'ed Jason who originally wrote the commit and should have better insight into it. if I want to use an ipv6 tunnel, do I have another solution than to create 2 tunels, one in ipv6 only, and another in ipv4 in order to be able to use ipv6 when available and ipv4 when the place where i am has no ipv6? I believe that's the way as of now, yes. I did not manage to add 2 endpoint in a single tunnel to put an endpoint only ipv6 and another endpoint ipv4 / ipv6 to bypass the problem thanks, Jerem Le 03/01/2021 à 14:48, Harsh Shandilya a écrit : Hey Jérémy, On 2021-01-02 08:27, Jérémy Prego wrote: I confirm the same problem in wifi Le 27/12/2020 à 07:02, Jérémy Prego a écrit : hello, I've always encountered a bug with android wireguard when using an ipv4 / ipv6 endpoint. I tested with two phones: Huawei p10 lite android 8.0 emui 8 Xiaomi poco m3 android 10.0 miui 12 When i'm in LTE (not yet been able to test in wifi), wireguard connects to the endpoint in ipv4 and not in ipv6, and i don't understand why it is doing that. The WireGuard Android client is designed to prefer IPv4 over IPv6 as of now (https://git.zx2c4.com/wireguard-android/tree/tunnel/src/main/java/com/wireguard/config/InetEndpoint.java#n97). This may or may not change in the future, and we'll announce here if it does. However, chrome, for example, does use ipv6 by default and not ipv4. My phone does recover an ipv6 in 2a01: cb1a / 64 and not an ipv6 type fc00 / fd00 / fe80 ... I also specify that if I only have an record, the tunnel works fine in ipv6. but suddenly, I can no longer connect to wifi which only have ipv4. I would like wireguard to favor ipv6 when it is available, and otherwise switch to ipv4. Is it possible ? Thanks, Jerem Cheers, Harsh 1: https://git.zx2c4.com/wireguard-android/commit/?h=c23d58bc27cf9807fc3405c8c99cc67cf4b21f25 Cheers, Harsh
Re: wireguard android don't prefer IPV6 endpoint
Hey Jérémy, On 2021-01-02 08:27, Jérémy Prego wrote: I confirm the same problem in wifi Le 27/12/2020 à 07:02, Jérémy Prego a écrit : hello, I've always encountered a bug with android wireguard when using an ipv4 / ipv6 endpoint. I tested with two phones: Huawei p10 lite android 8.0 emui 8 Xiaomi poco m3 android 10.0 miui 12 When i'm in LTE (not yet been able to test in wifi), wireguard connects to the endpoint in ipv4 and not in ipv6, and i don't understand why it is doing that. The WireGuard Android client is designed to prefer IPv4 over IPv6 as of now (https://git.zx2c4.com/wireguard-android/tree/tunnel/src/main/java/com/wireguard/config/InetEndpoint.java#n97). This may or may not change in the future, and we'll announce here if it does. However, chrome, for example, does use ipv6 by default and not ipv4. My phone does recover an ipv6 in 2a01: cb1a / 64 and not an ipv6 type fc00 / fd00 / fe80 ... I also specify that if I only have an record, the tunnel works fine in ipv6. but suddenly, I can no longer connect to wifi which only have ipv4. I would like wireguard to favor ipv6 when it is available, and otherwise switch to ipv4. Is it possible ? Thanks, Jerem Cheers, Harsh
Re: Wireguard Android: the application is stopped unexpectedly
Hey Jérémy, On 2021-01-02 11:39, Jérémy Prego wrote: hello and happy new year, I have a problem with the wireguard application on my Xiaomi poco m3 (Android 10 / miui 12.0.5). I have set all the correct permissions so that the application is not killed by miui, but it always ends up stopping anyway. In the attached log, I see some errors when stopping the application, around 11:30 am The auditd lines are harmless, and the app itself seems to have no information as to why its being killed. There are no crashes, and no fatal errors being logged. I'm rather confident that this is MIUI's doing, because I have a Samsung phone that has been running the same WireGuard client for 14 days straight without failing or being force closed. Is there a possibility that a new MIUI "optimisation" showed up that you did not disable yet? I don't believe the reason for your issue is a bug in the app. I remain available if you need more information thanks, Jerem Cheers, Harsh
Re: Android Notification Panel Removed in Android 10
Hey Justin, On Nov 30 2020, at 2:23 am, Justin McAfee wrote: > It appears that myself and others have noticed that Android 10 has > removed the VPN status and connection details from the top-down > notifications UI. > > If a VPN is active, the Key icon appears, but pulling down the > Notifications bar shows nothing. That's right, because it was moved further up into the Quick Settings panel. If you pull again you will see a 'Network is being monitored' warning below the quick settings tiles, clicking which will take you to VPN settings. > > This used to be a quick and easy way to verify WG connectivity, active > tunnel, and amount of bandwidth utilized. > > This can still be accomplished but is done by long pressing the > wireguard toggle in the quick settings (or opening the wireguard > application) then selecting the active tunnel and viewing the transfer > details on the bottom. > > I'm sure this will come up again, but wanted to share with you all. > > Thanks for all the work Jason, et al. put into this project. Its > greatly appreciated. > > > - AV Cheers, Harsh
Re: Android Kernel Backend Bug
On Jun 14 2020, at 11:59 pm, ND wrote: > I've been trying to report an issue regarding the Android Kernel > backend on > irc freenode. I was told to email here. > > The problem: > On LTE, my LTE carrier assigns two DNS servers, a private 10.x.x.x IP and > 8.8.8.8. > When using KERNEL BACKEND, establishing a tunnel doesn't override the > carrier assigned DNS and DNS resolution goes through 8.8.8.8. All traffic > still goes through the tunnel but the DNS does not respect the client > config. > > On Userspace backend, the DNS i set in the client config (10.0.0.1 > i.e. my > PiHole server) is respected. > > I'm on One Plus 6 latest Android Q. I've tried 2 kernels: Cleanslate and > Radioactive kernel. Both support Wireguard. > I've CC'ed Jason who should have a better idea of what's going wrong here. I sadly cannot confirm this on my end since I've upgraded to Android R where Google has continued to butcher the command-line tooling, thus breaking wg-quick.
Re: Shouldn't devices tethered to a device using Wireguard share the same IP?
On May 26 2020, at 9:28 pm, Jose Marinez wrote: > Hi Harsh, > > Here's the situation, there's a bunch of us that are using these MiFis > for use in China and HK. I'm sure you've heard in the news of what's > happening in HK at the moment. I have a copy of the kernel but haven't > managed to do the manifest.xml nor the other file. But what I did do > was contact the manufacturer that is here in HK and they've agreed to > collaborate. If I was the only one benefiting from this it wouldn't be > fair. The manufacturer understands the severity but can't for obvious > reasons push an OTA rooted kernel to all their devices. They've asked > me if there's a way to patch their kernel tree with a Wireguard > module. I told them I would ask and here I am. > > I have the kernel here, please disregard the ads: > https://www.sendspace.com/file/79o6c8 > > > What can they do to get their kernel patched? This repository will get Android kernels started in the most straightforward fashion: https://git.zx2c4.com/android_kernel_wireguard/about/. > There's a bunch of DOD people and families that will highly appreciate > this. I will make certain a nice donation comes your way. > > Thanks, > Jose > > On Thursday, May 21, 2020, 7:21 PM, Jose Marinez wrote: >> Thank you. I will try it out. Fingers crossed!!! >> >> >> >> >> >> >> >> On Thursday, May 21, 2020, 10:29:12 AM EDT, Harsh Shandilya >> wrote: >> >> >> >> >> >> >> On May 21 2020, at 7:52 pm, Jose Marinez wrote: >> >>> Thank you so much Harsh. What's the best way to make my kernel >>> available to you? Even if you could allow me to push to the repo I >>> wouldn't know where to save it. >> >> >> The repo is maintained on GitHub so you will have to fork the repository >> and create a pull request with your changes, help.github.com has very >> beginner friendly documentation if this is your first time around this. >> >> The process for adding a kernel is a bit involved and the documentation >> isn't quite fleshed out. You can check the steps out here[1] and an >> example of adding a new device to the repository here[2]. >> >> 1: >> https://github.com/WireGuard/android-wireguard-module-builder#adding-your-phones-kernel >> 2: https://github.com/WireGuard/android-wireguard-module-builder/pull/3/files >> >> >>> >
Re: Shouldn't devices tethered to a device using Wireguard share the same IP?
On May 21 2020, at 7:52 pm, Jose Marinez wrote: > Thank you so much Harsh. What's the best way to make my kernel > available to you? Even if you could allow me to push to the repo I > wouldn't know where to save it. The repo is maintained on GitHub so you will have to fork the repository and create a pull request with your changes, help.github.com has very beginner friendly documentation if this is your first time around this. The process for adding a kernel is a bit involved and the documentation isn't quite fleshed out. You can check the steps out here[1] and an example of adding a new device to the repository here[2]. 1: https://github.com/WireGuard/android-wireguard-module-builder#adding-your-phones-kernel 2: https://github.com/WireGuard/android-wireguard-module-builder/pull/3/files
Re: Shouldn't devices tethered to a device using Wireguard share the same IP?
On May 21 2020, at 2:23 am, Jose Marinez wrote: > Thanks Mehdi. I'll take a look. > > @Harsh, > > Thank you for the clarification. I will reach out to both. I know that > on macOS Catalina, Apple implemented new APIs for loading kernel > modules now that the core of the OS is read-only. Not sure if they've > done the same for iOS. Perhaps they'll announce that next month. > >> @Harsh - I do have a rooted Android device with Wireguard on I can use >> for tethering. Say I build my kernel module from the list you sent. >> How do I go about integrating it into the Wireguard Android app? > >>>> The app will automatically detect the kernel module and work with it, >>>> there's no user-facing work to be done. > > Let me see if I understand you correctly. Are you saying that if I > take my rooted phone make the /kernels folder add the manifest.xml and > corresponding version kernel, the regular Wireguard app in the Play > Store will utilize it? I'm trying to make sure I follow. If you contribute your device's kernel to the repository I linked for you, then we will build and host a signed kernel module for it. When you go into the WireGuard app's settings page, you will find an option titled, at least in English, "Download and install kernel module". Pressing that will attempt to locate the module previously created by the WireGuard infrastructure and load it onto your device. > Will it show this extended UI in Settings? > > Thanks again, > Jose > > > > > > > > On Wednesday, May 20, 2020, 03:00:18 PM EDT, Mehdi Sadeghi > wrote: > > > > > > Hi Marinez and the list, > > There is a very nice open source app that can share the VPN connection > of a rooted device with clients on Android. Here is the link: > > https://github.com/Mygod/VPNHotspot/blob/master/README.md > > Cheers, > Mehdi > > Am 20. Mai 2020 20:40:31 MESZ schrieb Jose Marinez : >> Thank you all or the responses.Wow. This seems like a big issue for >> Android and iOS. How many people like me that are tethering, go about >> convinced their devices are inheriting the VPN connection? Are there >> channels to communicate with both Google and Apple about this? @Harsh >> - I do have a rooted Android device with Wireguard on I can use for >> tethering. Say I build my kernel module from the list you sent. How >> do I go about integrating it into the Wireguard Android >> app?Thanks,JoseOn Wednesday, May 20, 2020, 1:53 PM, Harsh Shandilya >> wrote:> >>> >>> On May 20 2020, at 10:57 pm, Jose Marinez wrote: >>> >>>> Hi Guys, >>>> >>>> Can you tell me if this is working as it should?... >>>> >>>> I have a phone with Wireguard on. I share the connection via >>>> tethering/hotspot. When I check the IP on the tethered device I don't >>>> see the same IP as my Wireguard endpoint. What I do see is an IP from >>>> the phone's mobile network, the one running Wireguard. >>>> >>>> Is this right? Does this mean that traffic from that tethered device >>>> not using the Wireguard connection? I'm confused. >>>> >>>> >>>> Thanks, >>>> Jose >>> >>>> >>> >>> At least on Android, tethering data is *not* routed through your >>> VPN. If >>> you want that to happen, you will have to use the WireGuard kernel >>> module which requires a rooted device and a custom kernel. On some >>> supported devices >>> (https://github.com/WireGuard/android-wireguard-module-builder/tree/master/kernels) >>> you can use root access to install the required module automatically >>> through the app, on your stock kernel. >>> >>> Harsh >>>> > > -- > Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet. >
Re: Shouldn't devices tethered to a device using Wireguard share the same IP?
On May 20 2020, at 10:57 pm, Jose Marinez wrote: > Hi Guys, > > Can you tell me if this is working as it should?... > > I have a phone with Wireguard on. I share the connection via > tethering/hotspot. When I check the IP on the tethered device I don't > see the same IP as my Wireguard endpoint. What I do see is an IP from > the phone's mobile network, the one running Wireguard. > > Is this right? Does this mean that traffic from that tethered device > not using the Wireguard connection? I'm confused. > > > Thanks, > Jose > At least on Android, tethering data is *not* routed through your VPN. If you want that to happen, you will have to use the WireGuard kernel module which requires a rooted device and a custom kernel. On some supported devices (https://github.com/WireGuard/android-wireguard-module-builder/tree/master/kernels) you can use root access to install the required module automatically through the app, on your stock kernel. Harsh
Re: Android client fails to auto start connection if using a DDNS address as endpoint
On May 6 2020, at 4:33 pm, "Jason A. Donenfeld" wrote: > Looks like we don't have any retry logic for DNS resolution for the > case in which there's temporarily no Internet: > > https://git.zx2c4.com/wireguard-android/tree/tunnel/src/main/java/com/wireguard/config/InetEndpoint.java#n91 > What do we want to do here, then? Deferring config resolution feels suboptimal. Deferring tunnel restoration on boot until we have a connection looks like a semi-reasonable solution.
Re: Android client fails to auto start connection if using a DDNS address as endpoint
On Apr 19 2020, at 9:01 pm, Dark Shadow wrote: > I set up Wireguard and had it working fine when manually starting the > connection. > After that I wanted to have it be always on so that it would auto > connect when turning the phone on but I found that it would say it was > connected but no data would transfer. > Manually turning it off and on again would fix the connection > > If I change the server address to a IP address everything works > correctly and the connection just works after turning on the phone. > > I assume this is a bug that can hopefully be fixed as I would prefer > to use the dyndns address in the settings. > Hm, that's pretty unexpected. Are you using the Go userspace backend or the kernel module? The settings page will show that at the top if you're unsure. I've Cc'ed Jason in case this is a problem lower down in the stack.
Re: Question about Crowdin operation
April 19, 2020 1:38 AM, "Jason A. Donenfeld" wrote: > On Sat, Apr 18, 2020 at 9:56 AM Eiji Tanioka wrote: > >> Hi, >> >> I'm translating WireGuard apps into Japanese. >> I have a question about operation in Crowdin. >> >> When translate, we translators need to clarify about original string's >> context or meaning. In that situation, which option is preferred? >> >> - send ML about question. >> - in Crowdin, use comment. >> - in Crowdin, use comment and flag "Issue". >> - in Crowdin, use Discussion. >> >> # I had used second option, but never mention to anyone. >> # Should I had to mention to ? >> >> Kind regards, >> Eiji Tanioka > > Hey Eiji, > > CC'ing Harsh, Simon, and Roopesh, as they might have different > opinions on what they prefer. > > From my end, any form of communication is fine, whether its on Crowdin > or on the mailing list, because lowering the barrier for people to > volunteer their hours translating strings for us seems like a good > thing. Same goes for me, I'll take whatever's the easiest route for translators and work with it. > I suppose one advantage of Crowdin is that the discussions are placed > beside the translations, which makes it easy for future people to > correlate the two, and most discussions tend to be clarifications on > particular strings, rather than interesting technical conversation > that would benefit from the archiving afforded by mailing lists. > > AFAICT, the "issue" flag sends us an email notification, which is a > good thing if you need an answer. > > Jason Harsh Shandilya
Re: Question about Crowdin operation
April 18, 2020 9:25 PM, "Eiji Tanioka" wrote: > Hi, > > I'm translating WireGuard apps into Japanese. > I have a question about operation in Crowdin. > > When translate, we translators need to clarify about original string's > context or meaning. In that situation, which option is preferred? > > - send ML about question. > - in Crowdin, use comment. > - in Crowdin, use comment and flag "Issue". > - in Crowdin, use Discussion. > > # I had used second option, but never mention to anyone. > # Should I had to mention to ? The second option is perfectly fine, though you'll have better luck if you mention me or Jason since that will ensure Crowdin does not swallow up the notifications. > Kind regards, > Eiji Tanioka
Re: [PATCH] Add german translation
On Mon, 30 Mar 2020 at 07:52, Björn Fiedler wrote: > > Suggestion for german translation. > Created with the help of andentered into crowdin. > > Signed-off-by: Björn Fiedler > --- > ui/src/main/res/values-de/strings.xml | 188 ++ > 1 file changed, 188 insertions(+) > create mode 100644 ui/src/main/res/values-de/strings.xml We're only using Crowdin for translations now, so please translate on there and I'll be syncing strings periodically and before each release to ensure all latest translations are in the app.
Re: [PATCH wireguard-android] Explicit indexing for 'import_partial_success'
On Wed, 25 Mar 2020 at 18:26, Eiji Tanioka wrote: > > Or is it possible to apply this fix only to Japanese in crowdin? There's no need to do that, this fix is applicable to all languages including the default English. > 2020年3月25日(水) 21:19 Eiji Tanioka : > > > > When translate it to Japanese, values are exchanged. > > For example, '1 of 10' is '10 個中の 1'. > > > > So this string should be explicit indexed. > > > > Signed-off-by: Eiji Tanioka > > --- > > ui/src/main/res/values/strings.xml | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/ui/src/main/res/values/strings.xml > > b/ui/src/main/res/values/strings.xml > > index 70d92c3..74c5be6 100644 > > --- a/ui/src/main/res/values/strings.xml > > +++ b/ui/src/main/res/values/strings.xml > > @@ -13,8 +13,8 @@ > > %d tunnels selected > > > > > > -Imported %d of %d tunnels > > -Imported %d of %d tunnels > > +Imported %1$d of %2$d tunnels > > +Imported %1$d of %2$d tunnels > > > > > > Imported %d tunnel > > -- > > 2.25.2 > > Applied, thanks!
Re: using wireguard intents from tasker?
On Mon, 23 Mar 2020 at 10:49, Jason A. Donenfeld wrote: > > On Sun, Mar 22, 2020 at 11:11 PM Eiji Tanioka wrote: > > Which is more appropriate to provide translation for this feature, > > Crowdin or Patch? Please prefer Crowdin where possible. I've made you a proofreader for Japanese as well so that you can approve translations.
Re: [PATCH wireguard-android] strings: Update Japanese translation.
On Sat, 21 Mar 2020 at 19:29, Eiji Tanioka wrote: > > Thank you for quick response! > > # I created crowedin account and join in the wireguard project :) Thanks for the reminder, strings are now available on Crowdin.
Re: [PATCH wireguard-android] strings: Update Japanese translation.
On Sat, 21 Mar 2020 at 19:12, Eiji Tanioka wrote: > > Update correspond to commit 029a4a8. > > Signed-off-by: Eiji Tanioka > --- > ui/src/main/res/values-ja/strings.xml | 2 ++ > 1 file changed, 2 insertions(+) Applied, thanks!
Re: [PATCH wireguard-android] strings: Update Japanese Translation, corresponds to commit 724884e.
On Thu, 19 Mar 2020 at 05:14, Eiji Tanioka wrote: > > Signed-off-by: Eiji Tanioka > --- > ui/src/main/res/values-ja/strings.xml | 1 + > 1 file changed, 1 insertion(+) Applied, thanks. In the coming days we'll be making the translations available on Crowdin so if you find that more preferable, the option will be available. The project link is https://crowdin.com/project/wireguard.
Re: [PATCH] Update Simplified Chinese translation
On Thu, 12 Mar 2020 at 17:13, wrote: > > From: LilligantMatsuri > > Signed-off-by: LilligantMatsuri > --- > ui/src/main/res/values-zh-rCN/strings.xml | 40 ++- > 1 file changed, 25 insertions(+), 15 deletions(-) > > diff --git a/ui/src/main/res/values-zh-rCN/strings.xml > b/ui/src/main/res/values-zh-rCN/strings.xml > index c8175f1..d3243f9 100644 > --- a/ui/src/main/res/values-zh-rCN/strings.xml > +++ b/ui/src/main/res/values-zh-rCN/strings.xml > @@ -20,7 +20,7 @@ > > 添加节点 > 局域网 IP 地址 > -允许的 IP 地址(段) > +路由的 IP 地址(段) > WireGuard > %1$s 的 %2$s 字段 > %s > @@ -49,7 +49,7 @@ > 已保存 “%s” 的配置 > 创建 WireGuard 隧道 > 无法创建本地二进制文件目录 > -手动配置 > +手动创建 > 导入配置或压缩包 > 扫描二维码 > 无法创建输出目录 > @@ -63,12 +63,12 @@ > 反选 > DNS 服务器 > 编辑 > -对端地址 > +对端 > 断开连接时出错:%s > 获取应用列表时出错:%s > 请获取 root 权限并重试 > 建立连接时出错:%s > -排除局域网 IP > +排除局域网 > 排除的应用 > 生成密钥 > 未知的 “%s” 错误 > @@ -92,24 +92,32 @@ > 无法运行 logcat: > 无法确定内核模块版本 > 没有可用于此设备的模块 > -此实验性的内核模块可以提升性能 > -安装成功,应用将在 5 秒后重启 > +使用内核模块可以提升性能(实验性) > +安装成功,应用将于 5 秒后重启 > 下载并安装内核模块 > 正在下载安装... > 发生错误,请重试 > +启用内核模块 > + name="module_disabler_disabled_summary">内核空间的模块性能较强,但可能不稳定 > +停用内核模块 > + name="module_disabler_enabled_summary">用户空间的模块性能较弱,但稳定性更好 > +应用将于 5 秒后重启 > MTU > +同时开启多条隧道 > +当前允许同时开启多条隧道 > +当前一次只能开启一条隧道 > 名称 > 尝试在无配置情况下建立连接 > 未找到配置 > 无隧道 > 字符串 > - IP 地址 > -对端地址 > - IP 网络 > + IP 地址 > +对端 > + IP 网络 > 数字 > -无法解析%1$s “%2$s” > +无法解析%1$s “%2$s” > 节点 / Peer > -允许一个应用对 WireGuard 隧道进行控制(开启 / > 关闭隧道),但可能会误传一些流量 > +允许其他应用控制 WireGuard 隧道(开启 / > 关闭),但可能会误传一些流量 > 控制 WireGuard 隧道 > 连接保活间隔 > 预共享密钥 > @@ -117,7 +125,9 @@ > 公钥 > 公钥 > 提示:使用命令 `qrencode -t ansiutf8 < > tunnel.conf` 生成二维码 > -开机自启 > +设备启动时自动开启上次使用的隧道 > +未启用 > +启动时恢复 > 保存 > 全选 > 确定 > @@ -128,9 +138,9 @@ > 切换隧道状态时出错:%s > wg 与 wg-quick 已安装 > 无法安装命令行工具(尚未获取 root 权限?) > -安装脚本工具(可选) > -安装脚本工具为 Magisk > 模块(可选) > -安装脚本工具至系统分区(可选) > +安装命令行工具(可选) > +安装命令行工具为 Magisk > 模块(可选) > +安装命令行工具至系统分区(可选) > wg 与 wg-quick 已安装为 Magisk > 模块(重启后生效) > wg 与 wg-quick > 已安装至系统分区 > 安装命令行工具 > -- > 2.24.1.windows.2 > Applied, thanks!