[PR #89] tools: ship kernel tools as libawg/libawg-quick so SharedLibraryLoade… #94

Open
opened 2026-10-13 21:06:03 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/amnezia-vpn/amneziawg-android/pull/89
Author: @erophey7
Created: 8/8/2026
Status: 🔄 Open

Base: master ← Head: fix/kernel-tools


📝 Commits (1)

  • ae893a2 tools: ship kernel tools as libawg/libawg-quick so SharedLibraryLoader can find them

📊 Changes

3 files changed (+14 additions, -14 deletions)

View changed files

📝 tunnel/build.gradle.kts (+1 -1)
📝 tunnel/tools/CMakeLists.txt (+12 -12)
📝 tunnel/tools/amneziawg-tools (+1 -1)

📄 Description

What

Make Android's ToolsInstaller find the kernel-mode tool binaries: build them as libawg / libawg-quick instead of libwg / libwg-quick, and bump the amneziawg-tools submodule to the kernel-first wg-quick fix.

Why

ToolsInstaller.EXECUTABLES = {"awg", "awg-quick"} and the shared-library loader resolves them via System.mapLibraryName(), i.e. libawg.so / libawg-quick.so inside the APK. The CMake targets were still building libwg.so / libwg-quick.so, so the native binaries were never extracted and kernel mode failed with FileNotFoundException during install.

The userspace libwg-go.so target is kept untouched.

Testing performed

  • ./gradlew :ui:assembleRelease — build success.
  • Installed APK on device; libawg.so/libawg-quick.so extracted from APK and runtime-accessible; kernel-mode tunnel connects (requires the amneziawg kernel module).
  • Verifies in combination with amnezia-vpn/amneziawg-tools fix: prefer kernel module over userspace for AWG configs.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/amnezia-vpn/amneziawg-android/pull/89 **Author:** [@erophey7](https://github.com/erophey7) **Created:** 8/8/2026 **Status:** 🔄 Open **Base:** `master` ← **Head:** `fix/kernel-tools` --- ### 📝 Commits (1) - [`ae893a2`](https://github.com/amnezia-vpn/amneziawg-android/commit/ae893a28164e36f67d561a8cdc28133775d62ba2) tools: ship kernel tools as libawg/libawg-quick so SharedLibraryLoader can find them ### 📊 Changes **3 files changed** (+14 additions, -14 deletions) <details> <summary>View changed files</summary> 📝 `tunnel/build.gradle.kts` (+1 -1) 📝 `tunnel/tools/CMakeLists.txt` (+12 -12) 📝 `tunnel/tools/amneziawg-tools` (+1 -1) </details> ### 📄 Description ## What Make Android's `ToolsInstaller` find the kernel-mode tool binaries: build them as `libawg` / `libawg-quick` instead of `libwg` / `libwg-quick`, and bump the `amneziawg-tools` submodule to the kernel-first `wg-quick` fix. ## Why `ToolsInstaller.EXECUTABLES = {"awg", "awg-quick"}` and the shared-library loader resolves them via `System.mapLibraryName()`, i.e. `libawg.so` / `libawg-quick.so` inside the APK. The CMake targets were still building `libwg.so` / `libwg-quick.so`, so the native binaries were never extracted and kernel mode failed with `FileNotFoundException` during install. The userspace `libwg-go.so` target is kept untouched. ## Testing performed - `./gradlew :ui:assembleRelease` — build success. - Installed APK on device; `libawg.so`/`libawg-quick.so` extracted from APK and runtime-accessible; kernel-mode tunnel connects (requires the amneziawg kernel module). - Verifies in combination with amnezia-vpn/amneziawg-tools fix: prefer kernel module over userspace for AWG configs. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
amnezia-vpn/amneziawg-android#94
No description provided.