Files
brave-core/patches/chrome-android-java-AndroidManifest.xml.patch
T
Serg e0365ec5d6 [Android] Remove unused FOREGROUND_SERVICE_CAMERA permission from Android manifest (#35178)
Upstream Chromium cr147 (https://chromium-review.googlesource.com/c/chromium/src/+/7559078)
made FOREGROUND_SERVICE_CAMERA unconditional for all Android builds by
removing the is_desktop_android guard. However, the feature that
actually uses it (kAndroidEnableBackgroundMediaCapturing) is disabled
by default and not enabled by Brave, so the permission is declared but
never used.

This blocks Play Store publishing because Google requires a declaration
with a demo video for any app using FOREGROUND_SERVICE_CAMERA.

This PR:
- Re-gates FOREGROUND_SERVICE_CAMERA behind is_desktop_android so it's
  excluded from Brave builds
- Removes AndroidManifest_user_permissions.xml since upstream now
  declares FOREGROUND_SERVICE_MICROPHONE unconditionally, making
  Brave's duplicate unnecessary

Resolves: https://github.com/brave/brave-browser/issues/54143
2026-04-02 00:06:11 +02:00

122 lines
6.4 KiB
Diff

diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
index 5270a95ee7b87aacdcad1f2823fe1d20e66cef3b..9e72230a8e6403526f9929e32ed7862899573469 100644
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -62,7 +62,9 @@ by a child template that "extends" this file.
<uses-permission-sdk-23 android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"/>
+<!--
<uses-permission-sdk-23 android:name="android.permission.READ_CONTACTS"/>
+-->
<uses-permission-sdk-23 android:name="android.permission.REORDER_TASKS"/>
<!-- Needed for allowing downloaded APKs to be installed. -->
@@ -72,28 +74,38 @@ by a child template that "extends" this file.
<uses-permission android:name="android.permission.CAPTURE_KEYBOARD" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+ {% if is_desktop_android == "true" %}
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA" />
+ {% endif %}
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
{% set enable_screen_capture = enable_screen_capture|default(0) %}
{% if enable_screen_capture == "true" %}
+<!--
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
+-->
{% endif %}
<!-- TODO(crbug.com/40259231): Remove this tools:ignore attribute once it's no longer necessary. -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" tools:ignore="SystemPermissionTypo" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" tools:ignore="SystemPermissionTypo" />
<uses-permission android:name="android.permission.RUN_USER_INITIATED_JOBS" />
+<!--
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
+-->
<uses-permission android:name="android.permission.INTERNET"/>
+<!--
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
+-->
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
+<!--
<uses-permission android:name="android.permission.NFC"/>
+-->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<!-- Needed to determine whether an app installed on the device should handle a web navigation. -->
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
<uses-permission-sdk-23 android:name="android.permission.READ_MEDIA_AUDIO"/>
<!-- Needed for handling media-viewing Intents from other apps for images and video on low end
@@ -111,12 +123,14 @@ by a child template that "extends" this file.
resizeTo, moveBy}|).
-->
<uses-permission android:name="android.permission.REPOSITION_SELF_WINDOWS"/>
+<!--
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
+-->
<uses-permission-sdk-23 android:name="android.permission.USE_BIOMETRIC"/>
<uses-permission-sdk-23 android:name="android.permission.USE_FINGERPRINT"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32"/>
<!-- Permission for using Android 14's credential management framework. -->
<uses-permission android:name="android.permission.CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS"/>
@@ -169,7 +183,9 @@ by a child template that "extends" this file.
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
+<!--
<uses-permission android:name="com.google.android.apps.now.CURRENT_ACCOUNT_ACCESS" />
+--> <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
<!-- Permission for using pinned windowing layer for document picture-in-picture. -->
<uses-permission android:name="android.permission.USE_PINNED_WINDOWING_LAYER" />
@@ -385,6 +401,7 @@ by a child template that "extends" this file.
<intent-filter>
<action android:name="com.sec.android.airview.HOVER" />
</intent-filter>
+ {% include "//brave/android/java/AndroidManifest_intent_filters.xml" %}
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity-alias>
@@ -942,6 +959,7 @@ by a child template that "extends" this file.
</service>
<!-- Quick Action Search widget -->
+ <!--
<receiver
android:name="org.chromium.chrome.browser.quickactionsearchwidget.QuickActionSearchWidgetProvider$QuickActionSearchWidgetProviderSearch"
android:label="@string/quick_action_search_widget_title"
@@ -971,6 +989,7 @@ by a child template that "extends" this file.
android:name="android.appwidget.provider"
android:resource="@xml/quick_action_search_widget_dino_info" />
</receiver>
+ -->
<!-- Bookmarks widget -->
<receiver android:name="com.google.android.apps.chrome.appwidget.bookmarks.BookmarkThumbnailWidgetProvider"
@@ -1184,7 +1203,7 @@ by a child template that "extends" this file.
<service android:name="org.chromium.chrome.browser.media.MediaCaptureNotificationService"
{% if enable_screen_capture == "true" %}
- android:foregroundServiceType="camera|microphone|mediaProjection|mediaPlayback"
+ android:foregroundServiceType="camera|microphone|mediaPlayback"
{% else %}
android:foregroundServiceType="camera|microphone"
{% endif %}
@@ -1281,6 +1300,7 @@ by a child template that "extends" this file.
</activity>
{% endif %}
+ {% include "//brave/android/java/AndroidManifest.xml" %}
{% block extra_application_definitions %}
{% endblock %}
{% endmacro %}