aboutsummaryrefslogtreecommitdiffstats
path: root/permissionseos/libs/hidden-apis-stub/src/main/java/android/net
diff options
context:
space:
mode:
authorGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-11-06 08:14:27 +0000
committerGuillaume Jacquart <guillaume.jacquart@hoodbrains.com>2023-11-06 08:14:27 +0000
commit9d55978063947d5865bb3fa4e0c2ebef78f78812 (patch)
tree49a07707f82375dc9d5d1048a07bbdf866bffe67 /permissionseos/libs/hidden-apis-stub/src/main/java/android/net
parent0312ce64f85b5530a00bdc72eb310ba9dc1de05b (diff)
downloadadvanced-privacy-9d55978063947d5865bb3fa4e0c2ebef78f78812.tar.gz
epic18: Manage VPN services for Tor or Tracker control
Diffstat (limited to 'permissionseos/libs/hidden-apis-stub/src/main/java/android/net')
-rw-r--r--permissionseos/libs/hidden-apis-stub/src/main/java/android/net/IConnectivityManager.java65
-rw-r--r--permissionseos/libs/hidden-apis-stub/src/main/java/android/net/VpnManager.java64
2 files changed, 129 insertions, 0 deletions
diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/IConnectivityManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/IConnectivityManager.java
new file mode 100644
index 0000000..53440e0
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/IConnectivityManager.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2022 E FOUNDATION
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package android.net;
+
+import android.annotation.TargetApi;
+
+import android.os.Binder;
+import android.os.IBinder;
+import android.os.RemoteException;
+
+import androidx.annotation.DeprecatedSinceApi;
+
+// Stub based on:
+// https://gitlab.e.foundation/e/os/android_frameworks_base/-/blob/[SDK_VERSION]/core/java/android/net/IConnectivityManager.java
+public interface IConnectivityManager {
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 31,
+ message = "Moved to android.net.VpnManager"
+ )
+ boolean prepareVpn(String oldPackage, String newPackage, int userId) throws RemoteException;
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 30,
+ message = "Use instead setVpnPackageAuthorization(String packageName, int userId, int vpnType)"
+ )
+ void setVpnPackageAuthorization(String packageName, int userId, boolean authorized) throws RemoteException;
+
+ @TargetApi(30)
+ @DeprecatedSinceApi(
+ api = 31,
+ message = "Moved to android.net.VpnManager"
+ )
+ void setVpnPackageAuthorization(String packageName, int userId, int vpnType) throws RemoteException;
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 31,
+ message = "Moved to android.net.VpnManager"
+ )
+ public String getAlwaysOnVpnPackage(int userId) throws RemoteException;
+
+ public abstract static class Stub extends Binder implements IConnectivityManager {
+ public static IConnectivityManager asInterface(IBinder obj) {
+ return null;
+ }
+ }
+}
diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/VpnManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/VpnManager.java
new file mode 100644
index 0000000..dab2173
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/VpnManager.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2022 E FOUNDATION
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+package android.net;
+
+import android.annotation.TargetApi;
+
+import androidx.annotation.DeprecatedSinceApi;
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresPermission;
+
+// Stub based on:
+// https://gitlab.e.foundation/e/os/android_frameworks_base/-/blob/[SDK_VERSION]/core/java/android/net/VpnManager.java
+public class VpnManager {
+ public static final int TYPE_VPN_SERVICE = 1;
+
+ @TargetApi(31)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check disponibility in SDK34"
+ )
+ public boolean prepareVpn(
+ @Nullable String oldPackage,
+ @Nullable String newPackage,
+ int userId
+ ) {
+ return true;
+ }
+
+ @TargetApi(31)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check disponibility in SDK34"
+ )
+ public void setVpnPackageAuthorization(
+ String packageName,
+ int userId,
+ int vpnType
+ ) {}
+
+ @TargetApi(31)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check disponibility in SDK34"
+ )
+ @RequiresPermission("android.permission.CONTROL_ALWAYS_ON_VPN")
+ public String getAlwaysOnVpnPackageForUser(int userId) {
+ return null;
+ }
+}