Rebrand WireGuard Android to Wire VPN
release / build (release) Canceled after 0s

- Rename package and all Java/Kotlin sources: com.wireguard.android -> page.onram.wirevpn
- applicationId -> page.onram.wirevpn, version 1.0.20260910 (520)
- New launcher icon: dark circle, white padlock with bold W
- App name 'Wire VPN' in all locales; remove donate preference
- Release signing from KEYSTORE_* env vars (CI)
- F-Droid v2: scripts/fdroid_metadata.py
- GitHub/Gitea Actions workflow: auto-build signed APK + F-Droid
  metadata/signature on every new release, attach to the release
- README + NOTICE (license inventory)
This commit is contained in:
Hermes (for frank)
2026-09-12 17:04:15 +00:00
parent e7b3a3c118
commit 646e617476
150 changed files with 823 additions and 654 deletions
+10 -16
View File
@@ -8,7 +8,6 @@ val pkg: String = providers.gradleProperty("wireguardPackageName").get()
plugins {
alias(libs.plugins.android.library)
`maven-publish`
signing
}
android {
@@ -83,9 +82,9 @@ publishing {
from(components["release"])
}
pom {
name = "WireGuard Tunnel Library"
description = "Embeddable tunnel library for WireGuard for Android"
url = "https://www.wireguard.com/"
name = "Wire VPN Tunnel Library"
description = "Embeddable tunnel library for Wire VPN for Android"
url = "https://git.obahan.xyz/frank/wirevpn"
licenses {
license {
@@ -95,18 +94,18 @@ publishing {
}
}
scm {
connection = "scm:git:https://git.zx2c4.com/wireguard-android"
developerConnection = "scm:git:https://git.zx2c4.com/wireguard-android"
url = "https://git.zx2c4.com/wireguard-android"
connection = "scm:git:https://git.obahan.xyz/frank/wirevpn.git"
developerConnection = "scm:git:https://git.obahan.xyz/frank/wirevpn.git"
url = "https://git.obahan.xyz/frank/wirevpn"
}
developers {
organization {
name = "WireGuard"
url = "https://www.wireguard.com/"
name = "Wire VPN"
url = "https://git.obahan.xyz/frank/wirevpn"
}
developer {
name = "WireGuard"
email = "team@wireguard.com"
name = "Wire VPN"
email = "frank@onram.page"
}
}
}
@@ -136,8 +135,3 @@ tasks.register<Zip>("zipReleasePublication") {
destinationDirectory.set(layout.buildDirectory.dir("distributions"))
into("${mavenGroupPath}/${mavenArtifactId}/${mavenVersion}")
}
signing {
useGpgCmd()
sign(publishing.publications)
}
+1 -1
View File
@@ -7,7 +7,7 @@
<application>
<service
android:name="com.wireguard.android.backend.GoBackend$VpnService"
android:name="page.onram.wirevpn.backend.GoBackend$VpnService"
android:permission="android.permission.BIND_VPN_SERVICE"
android:exported="false">
<intent-filter>
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.android.backend;
package page.onram.wirevpn.backend;
import com.wireguard.config.Config;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.config.Config;
import page.onram.wirevpn.util.NonNullForAll;
import java.util.Set;
@@ -3,9 +3,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.android.backend;
package page.onram.wirevpn.backend;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
/**
* A subclass of {@link Exception} that encapsulates the reasons for a failure originating in
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.android.backend;
package page.onram.wirevpn.backend;
import android.content.Context;
import android.content.Intent;
@@ -12,16 +12,16 @@ import android.os.ParcelFileDescriptor;
import android.system.OsConstants;
import android.util.Log;
import com.wireguard.android.backend.BackendException.Reason;
import com.wireguard.android.backend.Tunnel.State;
import com.wireguard.android.util.SharedLibraryLoader;
import com.wireguard.config.Config;
import com.wireguard.config.InetEndpoint;
import com.wireguard.config.InetNetwork;
import com.wireguard.config.Peer;
import com.wireguard.crypto.Key;
import com.wireguard.crypto.KeyFormatException;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.backend.BackendException.Reason;
import page.onram.wirevpn.backend.Tunnel.State;
import page.onram.wirevpn.util.SharedLibraryLoader;
import page.onram.wirevpn.config.Config;
import page.onram.wirevpn.config.InetEndpoint;
import page.onram.wirevpn.config.InetNetwork;
import page.onram.wirevpn.config.Peer;
import page.onram.wirevpn.crypto.Key;
import page.onram.wirevpn.crypto.KeyFormatException;
import page.onram.wirevpn.util.NonNullForAll;
import java.net.InetAddress;
import java.util.Collections;
@@ -3,12 +3,12 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.android.backend;
package page.onram.wirevpn.backend;
import android.os.SystemClock;
import com.wireguard.crypto.Key;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.crypto.Key;
import page.onram.wirevpn.util.NonNullForAll;
import java.util.HashMap;
import java.util.Map;
@@ -32,11 +32,11 @@ public class Statistics {
* Add a peer and its current stats to the internal map.
*
* @param key A WireGuard public key bound to a particular peer
* @param rxBytes The received traffic for the {@link com.wireguard.config.Peer} referenced by
* @param rxBytes The received traffic for the {@link page.onram.wirevpn.config.Peer} referenced by
* the provided {@link Key}. This value is in bytes
* @param txBytes The transmitted traffic for the {@link com.wireguard.config.Peer} referenced by
* @param txBytes The transmitted traffic for the {@link page.onram.wirevpn.config.Peer} referenced by
* the provided {@link Key}. This value is in bytes.
* @param latestHandshake The timestamp of the latest handshake for the {@link com.wireguard.config.Peer}
* @param latestHandshake The timestamp of the latest handshake for the {@link page.onram.wirevpn.config.Peer}
* referenced by the provided {@link Key}. The value is in epoch milliseconds.
*/
void add(final Key key, final long rxBytes, final long txBytes, final long latestHandshake) {
@@ -54,9 +54,9 @@ public class Statistics {
}
/**
* Get the statistics for the {@link com.wireguard.config.Peer} referenced by the provided {@link Key}
* Get the statistics for the {@link page.onram.wirevpn.config.Peer} referenced by the provided {@link Key}
*
* @param peer A {@link Key} representing a {@link com.wireguard.config.Peer}.
* @param peer A {@link Key} representing a {@link page.onram.wirevpn.config.Peer}.
* @return a {@link PeerStats} representing various statistics about this peer.
*/
@Nullable
@@ -68,7 +68,7 @@ public class Statistics {
* Get the list of peers being tracked by this instance.
*
* @return An array of {@link Key} instances representing WireGuard
* {@link com.wireguard.config.Peer}s
* {@link page.onram.wirevpn.config.Peer}s
*/
public Key[] peers() {
return stats.keySet().toArray(new Key[0]);
@@ -3,9 +3,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.android.backend;
package page.onram.wirevpn.backend;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
import java.util.regex.Pattern;
@@ -3,19 +3,19 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.android.backend;
package page.onram.wirevpn.backend;
import android.content.Context;
import android.util.Log;
import android.util.Pair;
import com.wireguard.android.backend.BackendException.Reason;
import com.wireguard.android.backend.Tunnel.State;
import com.wireguard.android.util.RootShell;
import com.wireguard.android.util.ToolsInstaller;
import com.wireguard.config.Config;
import com.wireguard.crypto.Key;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.backend.BackendException.Reason;
import page.onram.wirevpn.backend.Tunnel.State;
import page.onram.wirevpn.util.RootShell;
import page.onram.wirevpn.util.ToolsInstaller;
import page.onram.wirevpn.config.Config;
import page.onram.wirevpn.crypto.Key;
import page.onram.wirevpn.util.NonNullForAll;
import java.io.File;
import java.io.FileOutputStream;
@@ -3,9 +3,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
import java.util.Iterator;
import java.util.Optional;
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import com.wireguard.crypto.KeyFormatException;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.crypto.KeyFormatException;
import page.onram.wirevpn.util.NonNullForAll;
import androidx.annotation.Nullable;
@@ -3,12 +3,12 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import com.wireguard.config.BadConfigException.Location;
import com.wireguard.config.BadConfigException.Reason;
import com.wireguard.config.BadConfigException.Section;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.config.BadConfigException.Location;
import page.onram.wirevpn.config.BadConfigException.Reason;
import page.onram.wirevpn.config.BadConfigException.Section;
import page.onram.wirevpn.util.NonNullForAll;
import java.io.BufferedReader;
import java.io.IOException;
@@ -3,9 +3,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
import java.lang.reflect.Method;
import java.net.Inet4Address;
@@ -3,9 +3,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
import java.net.Inet4Address;
import java.net.InetAddress;
@@ -3,9 +3,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
import java.net.Inet4Address;
import java.net.InetAddress;
@@ -3,15 +3,15 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import com.wireguard.config.BadConfigException.Location;
import com.wireguard.config.BadConfigException.Reason;
import com.wireguard.config.BadConfigException.Section;
import com.wireguard.crypto.Key;
import com.wireguard.crypto.KeyFormatException;
import com.wireguard.crypto.KeyPair;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.config.BadConfigException.Location;
import page.onram.wirevpn.config.BadConfigException.Reason;
import page.onram.wirevpn.config.BadConfigException.Section;
import page.onram.wirevpn.crypto.Key;
import page.onram.wirevpn.crypto.KeyFormatException;
import page.onram.wirevpn.crypto.KeyPair;
import page.onram.wirevpn.util.NonNullForAll;
import java.net.InetAddress;
import java.util.Collection;
@@ -3,9 +3,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
import androidx.annotation.Nullable;
@@ -3,14 +3,14 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import com.wireguard.config.BadConfigException.Location;
import com.wireguard.config.BadConfigException.Reason;
import com.wireguard.config.BadConfigException.Section;
import com.wireguard.crypto.Key;
import com.wireguard.crypto.KeyFormatException;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.config.BadConfigException.Location;
import page.onram.wirevpn.config.BadConfigException.Reason;
import page.onram.wirevpn.config.BadConfigException.Section;
import page.onram.wirevpn.crypto.Key;
import page.onram.wirevpn.crypto.KeyFormatException;
import page.onram.wirevpn.util.NonNullForAll;
import java.util.Collection;
import java.util.Collections;
@@ -4,9 +4,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.crypto;
package page.onram.wirevpn.crypto;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
import java.util.Arrays;
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.crypto;
package page.onram.wirevpn.crypto;
import com.wireguard.crypto.KeyFormatException.Type;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.crypto.KeyFormatException.Type;
import page.onram.wirevpn.util.NonNullForAll;
import java.security.MessageDigest;
import java.security.SecureRandom;
@@ -3,9 +3,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.crypto;
package page.onram.wirevpn.crypto;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
/**
* An exception thrown when attempting to parse an invalid key (too short, too long, or byte
@@ -3,9 +3,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.crypto;
package page.onram.wirevpn.crypto;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
/**
* Represents a Curve25519 key pair as used by WireGuard.
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.util;
package page.onram.wirevpn.util;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -3,13 +3,13 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.android.util;
package page.onram.wirevpn.util;
import android.content.Context;
import android.util.Log;
import com.wireguard.android.util.RootShell.RootShellException.Reason;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.RootShell.RootShellException.Reason;
import page.onram.wirevpn.util.NonNullForAll;
import java.io.BufferedReader;
import java.io.File;
@@ -3,13 +3,13 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.android.util;
package page.onram.wirevpn.util;
import android.content.Context;
import android.os.Build;
import android.util.Log;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.NonNullForAll;
import java.io.File;
import java.io.FileOutputStream;
@@ -3,14 +3,14 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.android.util;
package page.onram.wirevpn.util;
import android.content.Context;
import android.system.OsConstants;
import android.util.Log;
import com.wireguard.android.util.RootShell.RootShellException;
import com.wireguard.util.NonNullForAll;
import page.onram.wirevpn.util.RootShell.RootShellException;
import page.onram.wirevpn.util.NonNullForAll;
import java.io.File;
import java.io.FileNotFoundException;
@@ -134,7 +134,7 @@ public final class ToolsInstaller {
@RestrictTo(Scope.LIBRARY_GROUP)
public int install() throws RootShellException, IOException {
if (!context.getPackageName().startsWith("com.wireguard."))
if (!context.getPackageName().startsWith("page.onram.wirevpn."))
throw new SecurityException("The tools may only be installed system-wide from the main WireGuard app.");
return willInstallAsMagiskModule() ? installMagisk() : installSystem();
}
@@ -3,11 +3,11 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import com.wireguard.config.BadConfigException.Location;
import com.wireguard.config.BadConfigException.Reason;
import com.wireguard.config.BadConfigException.Section;
import page.onram.wirevpn.config.BadConfigException.Location;
import page.onram.wirevpn.config.BadConfigException.Reason;
import page.onram.wirevpn.config.BadConfigException.Section;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
package com.wireguard.config;
package page.onram.wirevpn.config;
import org.junit.Test;