summaryrefslogtreecommitdiff
path: root/permissionseos/libs/hidden-apis-stub
diff options
context:
space:
mode:
Diffstat (limited to 'permissionseos/libs/hidden-apis-stub')
-rw-r--r--permissionseos/libs/hidden-apis-stub/.gitignore1
-rw-r--r--permissionseos/libs/hidden-apis-stub/build.gradle35
-rw-r--r--permissionseos/libs/hidden-apis-stub/src/main/AndroidManifest.xml24
-rw-r--r--permissionseos/libs/hidden-apis-stub/src/main/java/android/app/AppOpsManager.java46
-rw-r--r--permissionseos/libs/hidden-apis-stub/src/main/java/android/app/NotificationChannel.java34
-rw-r--r--permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/PackageManager.java104
-rw-r--r--permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/UserInfo.java36
-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
-rw-r--r--permissionseos/libs/hidden-apis-stub/src/main/java/android/os/ServiceManager.java24
-rw-r--r--permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserHandle.java24
-rw-r--r--permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserManager.java48
12 files changed, 505 insertions, 0 deletions
diff --git a/permissionseos/libs/hidden-apis-stub/.gitignore b/permissionseos/libs/hidden-apis-stub/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/.gitignore
@@ -0,0 +1 @@
+/build \ No newline at end of file
diff --git a/permissionseos/libs/hidden-apis-stub/build.gradle b/permissionseos/libs/hidden-apis-stub/build.gradle
new file mode 100644
index 0000000..2043edc
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/build.gradle
@@ -0,0 +1,35 @@
+/*
+ * 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/>.
+ */
+
+plugins {
+ id 'com.android.library'
+}
+
+android {
+ compileSdkVersion buildConfig.compileSdk
+}
+
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_1_7
+ targetCompatibility = JavaVersion.VERSION_1_7
+}
+
+dependencies {
+ implementation 'org.jetbrains:annotations:15.0'
+ implementation 'androidx.annotation:annotation:1.5.0'
+}
diff --git a/permissionseos/libs/hidden-apis-stub/src/main/AndroidManifest.xml b/permissionseos/libs/hidden-apis-stub/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..61f315a
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/src/main/AndroidManifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ 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/>.
+ -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ package="foundation.e.advancedprivacy.hidden.apis"
+ tools:ignore="ProtectedPermissions">
+
+</manifest>
diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/app/AppOpsManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/app/AppOpsManager.java
new file mode 100644
index 0000000..753b456
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/app/AppOpsManager.java
@@ -0,0 +1,46 @@
+/*
+ * 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.app;
+
+import android.annotation.TargetApi;
+
+import androidx.annotation.DeprecatedSinceApi;
+import androidx.annotation.NonNull;
+
+// Stub based on:
+// https://gitlab.e.foundation/e/os/android_frameworks_base/-/blob/[SDK_VERSION]/core/java/android/app/AppOpsManager.java
+public class AppOpsManager {
+
+ public static final int OP_NONE = -1;
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check disponibility in SDK34"
+ )
+ public static int strOpToOp(@NonNull String op) {
+ return 0;
+ }
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check disponibility in SDK34"
+ )
+ public void setMode(int code, int uid, String packageName, int mode) {}
+}
diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/app/NotificationChannel.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/app/NotificationChannel.java
new file mode 100644
index 0000000..9e8d65a
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/app/NotificationChannel.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2022 MURENA SAS
+ *
+ * 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.app;
+
+import android.annotation.TargetApi;
+
+import androidx.annotation.DeprecatedSinceApi;
+
+public class NotificationChannel {
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(api = 30, message = "Use setBlockable() instead.")
+ public void setBlockableSystem(boolean blockableSystem) {}
+
+ // Public in API 33.
+ @TargetApi(30)
+ public void setBlockable(boolean blockableSystem) {}
+
+}
diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/PackageManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/PackageManager.java
new file mode 100644
index 0000000..c6232ce
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/PackageManager.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2022 MURENA SAS
+ *
+ * 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.content.pm;
+
+import android.annotation.TargetApi;
+import android.graphics.drawable.Drawable;
+import android.os.UserHandle;
+
+import androidx.annotation.DeprecatedSinceApi;
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresPermission;
+
+import java.util.List;
+import android.util.AndroidException;
+
+// Stub based on:
+// https://gitlab.e.foundation/e/os/android_frameworks_base/-/blob/[SDK_VERSION]/core/java/android/content/pm/PackageManager.java
+public abstract class PackageManager {
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check availability in SDK34"
+ )
+ public static class NameNotFoundException extends AndroidException {
+ public NameNotFoundException() {
+ }
+
+ public NameNotFoundException(String name) {
+ super(name);
+ }
+ }
+
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check disponibility in SDK34"
+ )
+ @RequiresPermission("android.permission.GRANT_RUNTIME_PERMISSIONS")
+ public abstract void grantRuntimePermission(
+ @NonNull String packageName,
+ @NonNull String permissionName,
+ @NonNull UserHandle user
+ );
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check disponibility in SDK34"
+ )
+ @RequiresPermission("android.permission.REVOKE_RUNTIME_PERMISSIONS")
+ public abstract void revokeRuntimePermission(
+ @NonNull String packageName,
+ @NonNull String permissionName,
+ @NonNull UserHandle user
+ );
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 33,
+ message = "@deprecated Use {@link #getApplicationInfoAsUser(String, ApplicationInfoFlags, int)} instead."
+ )
+ public abstract ApplicationInfo getApplicationInfoAsUser(
+ @NonNull String packageName,
+ int flags,
+ int userId
+ ) throws NameNotFoundException;
+
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check disponibility in SDK34"
+ )
+ @RequiresPermission("android.permission.INTERACT_ACROSS_USERS_FULL")
+ public abstract List<PackageInfo> getInstalledPackagesAsUser(int flags, int userId);
+
+ // Public
+ public abstract List<PackageInfo> getInstalledPackages(int flags);
+
+ @NonNull
+ public abstract Drawable getUserBadgedIcon(
+ @NonNull Drawable drawable,
+ @NonNull UserHandle user
+ );
+
+ public static final int GET_PERMISSIONS = 0x00001000;
+}
diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/UserInfo.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/UserInfo.java
new file mode 100644
index 0000000..28a3732
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/UserInfo.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2022 MURENA SAS
+ *
+ * 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.content.pm;
+
+import android.annotation.TargetApi;
+import android.os.UserHandle;
+
+import androidx.annotation.DeprecatedSinceApi;
+
+public class UserInfo {
+ public int id;
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check availability in SDK34"
+ )
+ public UserHandle getUserHandle() {
+ return null;
+ }
+}
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;
+ }
+}
diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/ServiceManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/ServiceManager.java
new file mode 100644
index 0000000..4696b79
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/ServiceManager.java
@@ -0,0 +1,24 @@
+/*
+ * 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.os;
+
+public class ServiceManager {
+ public static IBinder getService(String name) {
+ return null;
+ }
+}
diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserHandle.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserHandle.java
new file mode 100644
index 0000000..df56daf
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserHandle.java
@@ -0,0 +1,24 @@
+/*
+ * 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.os;
+
+public class UserHandle {
+ public static /*@UserIdInt*/ int myUserId() {
+ return 0;
+ }
+}
diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserManager.java
new file mode 100644
index 0000000..be6797e
--- /dev/null
+++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserManager.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2022 MURENA SAS
+ *
+ * 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.os;
+
+import android.annotation.TargetApi;
+import android.content.pm.UserInfo;
+
+import androidx.annotation.DeprecatedSinceApi;
+import androidx.annotation.RequiresPermission;
+import java.util.List;
+
+public class UserManager {
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check availability in SDK34"
+ )
+ @RequiresPermission("android.permission.MANAGE_USERS")
+ public List<UserInfo> getProfiles(int userHandle) {
+ return null;
+ }
+
+ @TargetApi(29)
+ @DeprecatedSinceApi(
+ api = 34,
+ message = "Check availability in SDK34"
+ )
+ @RequiresPermission("android.permission.MANAGE_USERS")
+ public boolean isManagedProfile(int userId) {
+ return false;
+ }
+}