Skip to content

Conversation

@itsalfredakku
Copy link
Member

This pull request focuses on improving the Android and iOS integration of the SoftEther VPN library, with a strong emphasis on feature completeness, configuration flexibility, and robustness for mobile platforms. The most notable updates include full exposure of protocol and security options in the Android Kotlin bridge, proper MAC address handling, new callback support, and backpressure management for packet queues. Additionally, both Android and iOS bridges now support advanced TLS options such as custom CA and certificate pinning.

Android Integration Improvements:

  • Expanded Configuration Options & Session Data:

    • The SoftEtherBridge.kt config now exposes all protocol options (MTU, encryption, UDP acceleration, QoS, NAT traversal, routing, etc.), and the Session data class includes the MAC address from the VPN session. [1] [2] [3] [4] [5]
    • The bridge now supports advanced TLS settings: skip verification, custom CA PEM, and SHA-256 certificate fingerprint pinning. [1] [2] [3]
    • The Kotlin bridge now provides log and socket protection callbacks for integration with Android's VPN and logging systems. [1] [2]
  • MAC Address Handling:

    • The VPN service now uses the session MAC address for outbound frames instead of a hardcoded value, ensuring correct source MAC usage. [1] [2] [3] [4] [5]
  • Packet Queue Backpressure:

    • Introduced a new result code and exception (QueueFullException) to signal when the packet queue is full, enabling proper backpressure handling and retry logic in clients. [1] [2] [3]

iOS Integration Improvements:

  • TLS Customization Support:

    • The Swift bridge now supports custom CA PEM and certificate fingerprint pinning, matching Android's capabilities. [1] [2] [3] [4] [5] [6]
  • Backpressure Handling:

    • The Swift bridge's sendPackets method now throws a queueFull error if the packet queue is full, allowing clients to implement retry logic.

Documentation and Issue Tracking:

  • Updated Integration Guide and Issue Log:
    • The integration guide was renamed and updated to reflect JNI/FFI, and the issue tracker now marks all Android, iOS, performance, and half-connection mode issues as resolved, with only UDP data path integration remaining for the protocol. [1] [2] [3]

These changes collectively deliver a more robust, flexible, and production-ready mobile VPN SDK, aligning Android and iOS capabilities and addressing previous limitations.

…, handle UseSSLDataEncryption flag, optimize compression, and reduce Tokio worker threads for mobile efficiency
@itsalfredakku itsalfredakku merged commit 931a0b7 into master Jan 4, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant