Jump to content
Not connected, Your IP: 216.73.216.157
Sign in to follow this  
Staff

Eddie Android edition 4.0.0 preview available

Recommended Posts

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 that allows WireGuard compatibility, therefore 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 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

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Security Check
    Play CAPTCHA Audio
    Refresh Image
Sign in to follow this  

×
×
  • Create New...