Staff 10386 Posted ... Hello! We're very glad to announce that Eddie Android edition 4.0.0 Beta 1 is now available. This is a major update: for the first time Eddie Android edition features AmneziaWG complete support. Eddie Android edition is a fully integrated with AirVPN, free and open source client allowing comfortable connections to AirVPN servers and generic VPN servers offering compatible protocols. Eddie 4.0.0 aims primarily at adding, besides the already available OpenVPN and WireGuard, a thorough and comfortable AmneziaWG support. AmneziaWG is a free and open source fork of WireGuard by Amnezia inheriting the architectural simplicity and high performance of the original implementation, but eliminating the identifiable network signatures that make WireGuard easily detectable by Deep Packet Inspection (DPI) systems. It can operate in several different ways, including a fallback, "compatibility mode" with WireGuard featuring anyway various obfuscation techniques. What's new in Eddie 4.0.0 AmneziaWG support Amnezia WireGuard API updated OpenSSL, OpenVPN3-AirVPN and WireGuard libraries see the complete changelog below AmneziaWG overview From the official documentation: https://docs.amnezia.org/documentation/amnezia-wg AmneziaWG offers: Dynamic Headers for All Packet Types (compatibility with WireGuard: YES) During tunnel initialization, the library generates a set of random constants applied to each of the four WireGuard packet formats: Init, Response, Data, Under‑Load. These constants: Replace predictable WireGuard packet identifiers; Shift offsets of Version/Type fields; Modify reserved bits. As a result, no two clients have identical headers, making it impossible to write a universal DPI rule. Handshake Length Randomization (compatibility with WireGuard: NO) In WireGuard, the Init packet is exactly 148 bytes, and the Response packet is exactly 92 bytes. AmneziaWG adds pseudorandom prefixes S1 and S2 (0-64 bytes by default): len(init) = 148 + S1 len(resp) = 92 + S2 Offsets of the remaining fields are automatically adjusted, and MAC tags are recalculated accordingly. In order to keep backward compatibility with WireGuard, S1 and S2 must be set to 0. Obfuscation Packets I1-I5 (Signature Chain) & CPS (Custom Protocol Signature) (compatibility with WireGuard: partial, with fallback) Before initiating a "special" handshake (every 120 seconds), the client may send up to five different UDP packets fully described by the user in the CPS format. In this way AmneziaWG can mimic perfectly QUIC, DNS and other protocols adding powerful methods to circumvent blocks. QUIC is particularly interesting as HTTP/3 is built on it and currently, from Chrome and other compatible browsers, 50% of traffic to/from Google is QUIC traffic. Therefore, blocking QUIC may have major disruptions for any ISP. Junk‑train (Jc) (compatibility with WireGuard: YES) Immediately following the sequence of I-packets, a series Jc of pseudorandom packets with lengths varying between Jmin and Jmax is sent. These packets blur the timing and size profile of the session start, significantly complicating handshake detection. Under‑Load Packet (compatibility with WireGuard: YES) In WireGuard, a special keep-alive packet (“Under-Load”) is used to bypass NAT timeouts. AmneziaWG replaces its fixed header with a randomized one, the value of which can be set manually. This prevents DPI from filtering short ping packets, ensuring stable tunnel connections, especially on mobile networks. How to use Eddie with AmneziaWG To enable AmneziaWG mode, just tap the connection mode available in the main and other views. It will rotate between WireGuard, AmneziaWG and OpenVPN. Set it to AmneziaWG. In its default AmneziaWG mode, Eddie will use all the possible obfuscation, except protocol mimicking, that keeps WireGuard compatibility, thus allowing connections to AirVPN servers. The default settings choice was possible thanks to the invaluable support of persons living in countries where VPN blocks are widespread. Such settings have been tested as working and capable to bypass the current blocking methods in various countries. You may consider to modify them if they are ineffective to bypass "your" specific blocks. In Settings > Advanced, you will find, at the bottom of the page, a new "Custom Amnezia WG directives" item. By tapping it you will summon a dialog that will let you customize any possible AmneziaWG parameter. You can maintain backward compatibility with WireGuard in the dialog WireGuard section, or enable the full AmneziaWG support in the Amnezia section, which is not compatible (at the moment) with AirVPN WireGuard servers. This mode will be mostly valuable in a not distant future, when AirVPN servers will start to support AmneziaWG natively. You may also enable QUIC or DNS mimicking for additional obfuscation efficacy. In order to maintain WireGuard backward compatibility, with or without QUIC or DNS mimicking, you must set: S1 = S2 = 0 Hn ∈ {1, 2, 3, 4} H1 ≠ H2 ≠ H3 ≠ H4 Furthermore, do not exceed the valid limit of the J parameters (anyway Eddie will not let you do it). In this preview version, Eddie's formal control of the input data is based on the following document. We strongly recommend you read it if you need to modify manually parameters: https://github.com/amnezia-vpn/amneziawg-linux-kernel-module?tab=readme-ov-file#configuration Please do not modify In parameters if you don't know exactly what you're doing. Eddie implements QUIC and DNS mimicking and random obfuscation packets for each specific "I" parameter (by using the corresponding "Generate" button). You can enable them with a tap on the proper buttons. You may mimic QUIC and DNS even to connect to WireGuard based servers. When you enable QUIC mimicking and you maintain WireGuard backward compatibility, you add a powerful tool against blocks, because the first packets will be actual QUIC packets. AmneziaWG will fall back to WireGuard compatibility very soon. However, when DPI and SPI tools, and demultiplexers in general, identify the initial QUIC flow, most of them will be unable to detect a WireGuard flow for several minutes. This has been tested thoroughly with deep packet inspection on Linux and FreeBSD based machines by AirVPN staff. Therefore, in different blocking scenarios the QUIC mimicking increases likelihood of successful block bypass. NOTE: the same does not happen with DNS mimicking. In this case DPI / SPI tools identify the stream initially as DNS, but are much quicker (just in a few dozens of packets) to identify the stream as WireGuard's, after the initial DNS identification. If you decide to test, please report at your convenience any bug and problem in this thread. If possible generate a report from the app in a matter of seconds: by tapping the paper plane icon on the Log view bar rightmost side you will generate a full system report which will include both log and logcat and have it sent to our servers. Then you just need to send us the link the app shows you (open a ticket if you prefer to do it in private). Download link, checksum and changelog https://eddie.website/repository/Android/4.0.0-Beta1/EddieAndroid-4.0.0-Beta-1.apk This is a build debug package and side load is mandatory. $ sha256sum EddieAndroid-4.0.0-Beta-1.apk 617269290a0406237646cc0885e5b10f3916252f89fe82ba9ccb947354980fcb EddieAndroid-4.0.0-Beta-1.apk Changelog 4.0.0 (VC 37) - Release date: 26 November 2025 by ProMIND Native Library [ProMIND] updated to version 4.0.0, API 10 [ProMIND] added Amnezia WireGuard API [ProMIND] updated to OpenVPN-AirVPN 3.12 (20251126) AirVPNUser.java [ProMIND] getWireGuardProfile(): added Amnezia support ConnectAirVPNServerFragment.java [ProMIND] showConnectionInfo(): added AmneziaWG logo display [ProMIND] onCreateContextMenu(): added AmneziaWG items [ProMIND] onContextItemSelected(): added AmneziaWG items [ProMIND] added method loadVPNProfile() ConnectVpnProfileFragment.java [ProMIND] added Amnezia support EddieLibraryResult.java [ProMIND] added Amnezia WireGuard API QuickConnectFragment.java [ProMIND] onCreateView(): added AmneziaWG logo display [ProMIND] updateStatusBox(): added AmneziaWG logo display SettingsActivity.java [ProMIND] added "Custom AmneziaWG directives" setting SettingsManager.java [ProMIND] added Amnezia specific settings and methods SupportTools.java [ProMIND] removed method getVPNProfile() VPN.java [ProMIND] added methods enableAmneziaWireGuard() and isWireGuardAmneziaEnabled() VPNManager.java [ProMIND] added method isWireGuardAmneziaEnabled() VPNProfileDatabase.java [ProMIND] added AMNEZIA type WebViewerActivity.java [ProMIND] EddieWebViewClient.shouldOverrideUrlLoading(): it now properly opens android asset files WireGuardClient.java [ProMIND] added WireGuard tunnel node to constructor [ProMIND] added methods for generating Amnezia's junk settings WireGuardTunnel.java [ProMIND] added support for Amnezia WireGuard [ProMIND] added Mode enum [ProMIND] added tunnel node to constructor EddieLibrary.java [ProMIND] added Amnezia WireGuard API Kind regards & datalove AirVPN Staff 2 1 Phanuel, EMULE and 9zkHR9tCN7bo reacted to this Quote Share this post Link to post
Phanuel 0 Posted ... Do you intend to add it to PC's client at some point as well? Quote Share this post Link to post
EMULE 11 Posted ... Great! Eddie finally supports AmneziaWG, and UDP finally has a masquerade protocol. Another protocol has been added to the list of protocols for bypassing China's Great Firewall. 1 Staff reacted to this Quote Hide EMULE's signature Hide all signatures I love AirVPN. Share this post Link to post
EMULE 11 Posted ... These are the AmneziaWG parameters I use in China. This set of parameters can reliably bypass the GFW. Staff can take a look. Jc = 20; Jmin = 50; Jmax = 1000; S1 = 0; S2 = 0; H1 = 3; H2 = 1; H3 = 4; H4 = 2; 1 Staff reacted to this Quote Hide EMULE's signature Hide all signatures I love AirVPN. Share this post Link to post
EMULE 11 Posted ... Waiting for AmneziaWG to be added to various platform versions of Eddie. Quote Hide EMULE's signature Hide all signatures I love AirVPN. Share this post Link to post
EMULE 11 Posted ... Hello. Today I installed the eddie v4.0.0 beta version on my Android phone and connected to AmneziaWG to perform a speed test. The following file is the log report. I can sense that AmneziaWG seems to have been speed-limited recently; the speed isn't as fast as when I first started using it. With CPS disabled, AmneziaWG was the slowest, with the connection speed limited to about 10KB/s for a short while before rebounding to a maximum of 500KB/s. Enabling CPS and trying QUIC emulation resulted in the fastest speed, reaching approximately 2MB/s. However, the speed was sometimes throttled to 300KB/s and as low as 10KB/s. On my most frequently used servers in Belgium and the United States, Wireguard port 1637 was usually available, whereas previously it was always unavailable on the Belgian server. When attempting DNS emulation, the speed was roughly the same as without CPS enabled. The connection was briefly throttled to 10KB/s, but after waiting, it recovered to 200KB/s, with a maximum speed of about 800KB/s. However, most of the time the speed was slower than AmneziaWG without CPS enabled. The QUIC emulation is currently performing well, and the speed may be even faster once the WireGuard server fully supports AmneziaWG, since it is currently only a test version. I'm confused as to why AmneziaWG is still being throttled. According to AmneziaVPN's advertising, shouldn't the AmneziaWG protocol be unrecognized by DPI? I suspect it's due to ISP generally limiting UDP speeds. Even when I turn off my VPN software and browse websites allowed in China, some content still buffers. However, there is no doubt that the availability of the AmneziaWG protocol is the highest among the protocols currently offered by AirVPN. SSH, SSL and other standard protocols do not perform as well as AmneziaWG in my experience. Although AmneziaWG is speed-limited, I can still browse the web, although download tasks are sometimes fast and sometimes slow. So far, I have not found any issues with AmneziaWG being blocked after the connection is established. After all, this is just a test so far. I'll wait until AmneziaWG is added to the Eddie PC version and then use it for a longer period of time to see how it goes. May everything turn out in a positive direction. Eddie_日志已创建在_14_Dec_2025_07_03_23_UTC_上.txt Eddie_日志已创建在_14_Dec_2025_07_14_52_UTC_上.txt Quote Hide EMULE's signature Hide all signatures I love AirVPN. Share this post Link to post
EMULE 11 Posted ... I can't send a complete system report. Once I click the paper airplane icon, Eddie crashes and restarts, losing all previous reports. The live logs show an error, which I vaguely recall is caused by a connection reset. Even when I'm connected to the AirVPN server, Eddie still crashes and restarts. After some effort, I finally managed to capture the error log. Eddie_日志已创建在_14_Dec_2025_09_12_01_UTC_上.txt Quote Hide EMULE's signature Hide all signatures I love AirVPN. Share this post Link to post
Staff 10386 Posted ... 4 hours ago, EMULE said: I can't send a complete system report. Once I click the paper airplane icon, Eddie crashes and restarts, losing all previous reports. The live logs show an error, which I vaguely recall is caused by a connection reset. Even when I'm connected to the AirVPN server, Eddie still crashes and restarts. Hello! If you can manage to store locally the report (try to tap the diskette "Save" icon) or you can manage to send the report via mail (try to tap the triangular "Share" icon) the logcat that Eddie includes could still contain a dump/trace of the previous crash, even if you had to re-start the app. Please send it to our support team (support@airvpn.org) or publish here, as you prefer. If there's no way to do it, please try to describe accurately all the steps that you perform, as well as the settings you configured, to help us reproduce the crash that occurs while Eddie is connected to a VPN server. Kind regards Quote Share this post Link to post
EMULE 11 Posted ... Get two more logs. Eddie_1 is a log showing a failed attempt to send a message by clicking the paper airplane icon without connecting to the server. Eddie_2 is my server connection. When I click the paper airplane icon, the connection fails to send, the program crashes and restarts, disconnects, and then I reconnect, only to see the connection failure log displayed. In addition to the system reporting a sending failure, I also discovered a parameter issue in a custom AmneziaWG command. When randomly generating the corresponding AmneziaWG parameters for the WireGuard and AmneziaWG servers, if the Jc parameter generates a value greater than 10, it will become Jc=10 after clicking OK. When randomly generating the corresponding AmneziaWG parameters for the AmneziaWG server, not only the Jc parameter has the above problem, but S1 and S2 also have this problem. Once the randomly generated S1 is greater than 64 and S2 is greater than 64, they will all become S1=64 and S2=64 after being determined. Are there maximum value limits for these parameters? If so, should these parameter values be limited during random generation? However, I can clearly use Jc=20 in the AmneziaWG client on my computer. Is this an Eddie issue? I found that the configuration parameters for the AmneziaWG native server are more complex than those for the WireGuard server, which may be a key factor in my bypassing the GFW? I am looking forward to the arrival of the AmneziaWG native server.😄😄😄 Eddie_1.txt Eddie_2.txt Quote Hide EMULE's signature Hide all signatures I love AirVPN. Share this post Link to post