Files
cromite/build/patches/00Disable-Android-AppRestrictions.patch
T

132 lines
6.1 KiB
Diff

From: uazo <uazo@users.noreply.github.com>
Date: Fri, 5 Jan 2024 17:02:29 +0000
Subject: Disable Android AppRestrictions
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
chrome/browser/flags/BUILD.gn | 1 +
.../cromite/sEnableAndroidAppRestriction.java | 38 +++++++++++++++++++
.../policy/AppRestrictionsProvider.java | 8 ++++
.../DisableAndroidAppRestriction.inc | 13 +++++++
.../disable-android-app-restriction.inc | 3 ++
.../disable-android-app-restriction.inc | 1 +
6 files changed, 64 insertions(+)
create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/DisableAndroidAppRestriction.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-android-app-restriction.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-android-app-restriction.inc
diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn
--- a/chrome/browser/flags/BUILD.gn
+++ b/chrome/browser/flags/BUILD.gn
@@ -35,6 +35,7 @@ android_library("java") {
"//build:chromeos_buildflags",
"//build/android:build_java",
"//chrome/browser/preferences:java",
+ "//components/policy/android:policy_java",
"//components/version_info/android:version_constants_java",
"//third_party/android_deps:guava_android_java",
"//third_party/androidx:androidx_annotation_annotation_java",
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java
new file mode 100644
--- /dev/null
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sEnableAndroidAppRestriction.java
@@ -0,0 +1,38 @@
+/*
+ This file is part of Cromite.
+
+ Cromite 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.
+
+ Cromite 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 Cromite. If not, see <https://www.gnu.org/licenses/>.
+*/
+
+package org.chromium.chrome.browser.flags.cromite;
+
+import org.chromium.chrome.browser.flags.CachedFlag;
+import org.chromium.components.policy.AppRestrictionsProvider;
+
+public class sEnableAndroidAppRestriction {
+ private static boolean initialized_ = false;
+
+ private static final CachedFlag sInstance =
+ new CachedFlag("EnableAndroidAppRestriction", false);
+
+ private sEnableAndroidAppRestriction() {}
+
+ public static CachedFlag getInstance() {
+ if (!initialized_) {
+ initialized_ = true;
+ AppRestrictionsProvider.setEnabled(sInstance.isEnabled());
+ }
+ return sInstance;
+ }
+}
diff --git a/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java b/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
--- a/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
+++ b/components/policy/android/java/src/org/chromium/components/policy/AppRestrictionsProvider.java
@@ -17,6 +17,11 @@ import org.chromium.base.Log;
*/
public class AppRestrictionsProvider extends AbstractAppRestrictionsProvider {
private static final String TAG = "AppResProvider";
+ private static boolean mEnabled = false;
+
+ public static void setEnabled(boolean value) {
+ mEnabled = value;
+ }
/**
* Get the app restriction information from provided user manager, and record some timing
@@ -28,6 +33,9 @@ public class AppRestrictionsProvider extends AbstractAppRestrictionsProvider {
*/
public static Bundle getApplicationRestrictionsFromUserManager(
UserManager userManager, String packageName) {
+ if (!mEnabled) {
+ return new Bundle();
+ }
try {
Bundle bundle = userManager.getApplicationRestrictions(packageName);
Log.i(TAG, "#getApplicationRestrictionsFromUserManager() " + bundle);
diff --git a/cromite_flags/chrome/browser/about_flags_cc/DisableAndroidAppRestriction.inc b/cromite_flags/chrome/browser/about_flags_cc/DisableAndroidAppRestriction.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/browser/about_flags_cc/DisableAndroidAppRestriction.inc
@@ -0,0 +1,13 @@
+#ifdef FLAG_SECTION
+
+#if BUILDFLAG(IS_ANDROID)
+
+ {"enable-android-apprestrictions",
+ "Enable AppRestrictions",
+ "Does not allow loading of policies in android via AppRestrictions.",
+ kOsAndroid,
+ FEATURE_VALUE_TYPE(chrome::android::kEnableAndroidAppRestriction)},
+
+#endif
+
+#endif
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-android-app-restriction.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-android-app-restriction.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/disable-android-app-restriction.inc
@@ -0,0 +1,3 @@
+CROMITE_FEATURE(kEnableAndroidAppRestriction,
+ "EnableAndroidAppRestriction",
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-android-app-restriction.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-android-app-restriction.inc
new file mode 100644
--- /dev/null
+++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/disable-android-app-restriction.inc
@@ -0,0 +1 @@
+BASE_DECLARE_FEATURE(kEnableAndroidAppRestriction);
--
2.25.1