diff options
Diffstat (limited to 'permissionseos/libs')
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; + } +} |