| <!-- |
| /* |
| * Copyright 2006, The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| --> |
| |
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| package="{{ manifest_package }}"> |
| |
| <permission android:name="{{ app_package_name }}.permission.PRELOAD" |
| android:label="@string/permission_preload_label" |
| android:protectionLevel="signatureOrSystem" /> |
| |
| <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> |
| <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/> |
| <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> |
| <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> |
| <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> |
| <uses-permission android:name="android.permission.CAMERA" /> |
| <uses-permission android:name="android.permission.INTERNET" /> |
| <uses-permission android:name="android.permission.NFC" /> |
| <uses-permission android:name="android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS" /> |
| <uses-permission android:name="android.permission.SET_WALLPAPER" /> |
| <uses-permission android:name="android.permission.WAKE_LOCK"/> |
| <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" /> |
| <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
| <uses-permission android:name="android.permission.WRITE_SETTINGS" /> |
| <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> |
| <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> |
| <uses-permission android:name="android.permission.GET_ACCOUNTS"/> |
| <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/> |
| <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/> |
| <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/> |
| <uses-permission android:name="{{ app_package_name }}.permission.READ_HOMEPAGE" /> |
| <uses-permission android:name="{{ app_package_name }}.permission.WRITE_HOMEPAGE" /> |
| <uses-permission android:name="android.permission.VIBRATE"/> |
| <uses-permission android:name="android.permission.RECORD_AUDIO"/> |
| <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> |
| <!-- Templatize taskAffinity otherwise it will default to 'package' |
| defined in manifest --> |
| <application android:name="com.android.browser.Browser" |
| android:label="{{ apk_label }}" |
| android:icon="@mipmap/ic_launcher_browser" |
| android:backupAgent="com.android.browser.BrowserBackupAgent" |
| android:hardwareAccelerated="true" |
| android:taskAffinity="{{ apk_task_affinity }}" |
| android:theme="@style/BrowserBase" > |
| |
| <uses-library android:name="com.qrd.useragent" |
| android:required="false" /> |
| |
| <provider android:name="com.android.browser.provider.BrowserProvider2" |
| android:authorities="{{app_package_name}};{{apk_authorities}};{{app_authorities}}" |
| android:multiprocess="false" |
| android:exported="true" |
| android:readPermission="com.android.browser.permission.READ_HISTORY_BOOKMARKS" |
| android:writePermission="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"> |
| <path-permission android:path="/bookmarks/search_suggest_query" |
| android:readPermission="android.permission.GLOBAL_SEARCH" /> |
| <path-permission android:path="/homepage" |
| android:readPermission="{{ app_package_name }}.permission.READ_HOMEPAGE" |
| android:writePermission="{{ app_package_name }}.permission.WRITE_HOMEPAGE" /> |
| </provider> |
| |
| <activity android:name="com.android.browser.BrowserLauncher" |
| android:theme="@android:style/Theme.NoDisplay" > |
| <!-- We are the main entry point of the browser. --> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.LAUNCHER" /> |
| <category android:name="android.intent.category.BROWSABLE" /> |
| <category android:name="android.intent.category.APP_BROWSER" /> |
| </intent-filter> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.BrowserLauncher" |
| android:targetActivity="com.android.browser.BrowserLauncher" |
| android:exported="true"> |
| </activity-alias> |
| {% endif %} |
| |
| <activity android:name="com.android.browser.BrowserActivity" |
| android:label="{{ apk_label }}" |
| android:launchMode="singleTask" |
| android:alwaysRetainTaskState="true" |
| android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" |
| android:theme="@style/BrowserTheme" |
| android:windowSoftInputMode="adjustResize" > |
| |
| <intent-filter> |
| <action android:name="android.speech.action.VOICE_SEARCH_RESULTS" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| <!-- For these schemes were not particular MIME type has been |
| supplied, we are a good candidate. --> |
| <intent-filter> |
| <action android:name="android.intent.action.VIEW" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.BROWSABLE" /> |
| <data android:scheme="http" /> |
| <data android:scheme="https" /> |
| <data android:scheme="about" /> |
| <data android:scheme="javascript" /> |
| </intent-filter> |
| <!-- For these schemes where any of these particular MIME types |
| have been supplied, we are a good candidate. --> |
| <intent-filter> |
| <action android:name="android.intent.action.VIEW" /> |
| <category android:name="android.intent.category.BROWSABLE" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:scheme="http" /> |
| <data android:scheme="https" /> |
| <data android:scheme="inline" /> |
| <data android:mimeType="text/html"/> |
| <data android:mimeType="text/plain"/> |
| <data android:mimeType="application/xhtml+xml"/> |
| <data android:mimeType="application/vnd.wap.xhtml+xml"/> |
| </intent-filter> |
| <!-- For viewing saved web archives. --> |
| <intent-filter> |
| <action android:name="android.intent.action.VIEW" /> |
| <category android:name="android.intent.category.BROWSABLE" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:scheme="http" /> |
| <data android:scheme="https" /> |
| <data android:scheme="file" /> |
| <data android:mimeType="application/x-webarchive-xml"/> |
| </intent-filter> |
| <!-- Accept inbound NFC URLs --> |
| <intent-filter> |
| <action android:name="android.nfc.action.NDEF_DISCOVERED" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:scheme="http" /> |
| <data android:scheme="https" /> |
| </intent-filter> |
| <!-- The maps app is a much better experience, so it's not |
| worth having this at all... especially for a demo! |
| <intent-filter android:label="Map In Browser"> |
| <action android:name="android.intent.action.VIEW" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.item/postal-address" /> |
| </intent-filter> |
| --> |
| <intent-filter> |
| <action android:name="android.intent.action.WEB_SEARCH" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <category android:name="android.intent.category.BROWSABLE" /> |
| </intent-filter> |
| <intent-filter> |
| <action android:name="android.intent.action.MEDIA_SEARCH" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| <intent-filter> |
| <action android:name="android.intent.action.SEARCH" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| <meta-data android:name="android.app.searchable" |
| android:resource="@xml/searchable" /> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.BrowserActivity" |
| android:targetActivity="com.android.browser.BrowserActivity"/> |
| {% endif %} |
| |
| <activity android:name="com.android.browser.ShortcutActivity" |
| android:theme="@style/ShortcutTheme" |
| android:label="@string/shortcut_bookmark" |
| android:icon="@mipmap/ic_launcher_shortcut_browser_bookmark"> |
| <intent-filter> |
| <action android:name="android.intent.action.CREATE_SHORTCUT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.ShortcutActivity" |
| android:targetActivity="com.android.browser.ShortcutActivity" |
| android:exported="false"> |
| </activity-alias> |
| {% endif %} |
| |
| <activity android:name="com.android.browser.BrowserPreferencesPage" |
| android:label="@string/menu_preferences" |
| android:parentActivityName="com.android.browser.BrowserActivity" |
| android:theme="@style/SettingsTheme"> |
| <intent-filter> |
| <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.BrowserPreferencesPage" |
| android:targetActivity="com.android.browser.BrowserPreferencesPage" |
| android:exported="false"> |
| </activity-alias> |
| {% endif %} |
| |
| <activity android:name="com.android.browser.preferences.LegalPreviewActivity" |
| android:parentActivityName="com.android.browser.BrowserActivity" |
| android:theme="@style/SettingsTheme"> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.LegalPreviewActivity" |
| android:targetActivity="com.android.browser.preferences.LegalPreviewActivity" |
| android:exported="false"> |
| </activity-alias> |
| {% endif %} |
| |
| <activity android:name="com.android.browser.BookmarkSearch" |
| android:label="@string/application_name" |
| android:stateNotNeeded="true" |
| android:theme="@android:style/Theme.NoDisplay" |
| android:excludeFromRecents="true"> |
| <intent-filter> |
| <action android:name="android.intent.action.SEARCH" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| <meta-data android:name="android.app.searchable" |
| android:resource="@xml/bookmarks_searchable" /> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.BookmarkSearch" |
| android:targetActivity="com.android.browser.BookmarkSearch" |
| android:exported="false"> |
| </activity-alias> |
| {% endif %} |
| |
| <activity android:name="com.android.browser.AddBookmarkPage" |
| android:label="@string/bookmarks_add_page" |
| android:theme="@style/MyNavAddStyle" |
| android:configChanges="orientation|keyboardHidden|screenSize" |
| android:windowSoftInputMode="adjustResize"> |
| <intent-filter> |
| <action android:name="android.intent.action.INSERT" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.dir/bookmark"/> |
| </intent-filter> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.AddBookmarkPage" |
| android:targetActivity="com.android.browser.AddBookmarkPage" |
| android:exported="false"> |
| </activity-alias> |
| {% endif %} |
| |
| <activity android:name="com.android.browser.DownloadSettings" |
| android:label="@string/download_settings_title" |
| android:theme="@style/DialogWhenLarge" |
| android:launchMode="singleTask" |
| android:configChanges="orientation|keyboardHidden|screenSize" |
| android:windowSoftInputMode="adjustResize"> |
| <intent-filter> |
| <action android:name="android.intent.action.BROWSERDOWNLOAD" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.DownloadSettings" |
| android:targetActivity="com.android.browser.DownloadSettings" |
| android:exported="false"> |
| </activity-alias> |
| {% endif %} |
| |
| <!-- For creating new folder in bookmarks page --> |
| <activity android:name="com.android.browser.AddBookmarkFolder" |
| android:label="@string/new_folder" |
| android:theme="@style/DialogWhenLarge" |
| android:configChanges="orientation|keyboardHidden|screenSize"> |
| <intent-filter> |
| <category android:name="android.intent.category.DEFAULT" /> |
| <data android:mimeType="vnd.android.cursor.dir/bookmark"/> |
| </intent-filter> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.AddBookmarkFolder" |
| android:targetActivity="com.android.browser.AddBookmarkFolder" |
| android:exported="false"> |
| </activity-alias> |
| {% endif %} |
| |
| <activity android:name="com.android.browser.ComboViewActivity" |
| android:theme="@style/ComboViewTheme"> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.ComboViewActivity" |
| android:targetActivity="com.android.browser.ComboViewActivity" |
| android:exported="false"> |
| </activity-alias> |
| {% endif %} |
| |
| <!-- Bookmark thumbnail homescreen widget --> |
| <receiver |
| android:name="com.android.browser.widget.BookmarkThumbnailWidgetProvider" |
| android:label="@string/bookmarks"> |
| <intent-filter> |
| <action |
| android:name="android.appwidget.action.APPWIDGET_UPDATE" /> |
| <action |
| android:name="com.android.browser.BOOKMARK_APPWIDGET_UPDATE" /> |
| </intent-filter> |
| <meta-data |
| android:name="android.appwidget.provider" |
| android:resource="@xml/bookmarkthumbnailwidget_info" /> |
| </receiver> |
| <service |
| android:name="com.android.browser.widget.BookmarkThumbnailWidgetService" |
| android:permission="android.permission.BIND_REMOTEVIEWS" |
| android:exported="false" /> |
| <receiver |
| android:name="com.android.browser.widget.BookmarkWidgetProxy" |
| android:exported="false" /> |
| <activity android:name="com.android.browser.widget.BookmarkWidgetConfigure" |
| android:theme="@style/DialogWhenLarge"> |
| <intent-filter> |
| <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/> |
| </intent-filter> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.widget.BookmarkWidgetConfigure" |
| android:targetActivity="com.android.browser.widget.BookmarkWidgetConfigure" |
| android:exported="false"> |
| </activity-alias> |
| {% endif %} |
| <!-- add or edit my navigation activity --> |
| <activity android:name="com.android.browser.mynavigation.AddMyNavigationPage" |
| android:label="@string/my_navigation_page_title" |
| android:configChanges="orientation|keyboardHidden" |
| android:windowSoftInputMode="stateHidden"> |
| </activity> |
| {% if not app_package_name in ['com.android.browser'] %} |
| <activity-alias android:name="{{ app_package_name }}.mynavigation.AddMyNavigationPage" |
| android:targetActivity="com.android.browser.mynavigation.AddMyNavigationPage" |
| android:exported="false"> |
| </activity-alias> |
| {% endif %} |
| |
| <!-- Makes .BrowserActivity the search target for any activity in Browser --> |
| <meta-data android:name="android.app.default_searchable" android:value="com.android.browser.BrowserActivity" /> |
| |
| <receiver android:name="com.android.browser.OpenDownloadReceiver"> |
| <intent-filter> |
| <action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED"/> |
| </intent-filter> |
| </receiver> |
| |
| <!-- For custom home pages (like most visited) --> |
| <provider |
| android:name="com.android.browser.homepages.HomeProvider" |
| android:authorities="{{ app_package_name }}.home;{{app_authorities}}.home" |
| android:grantUriPermissions="true" |
| android:readPermission="com.android.browser.permission.READ_HISTORY_BOOKMARKS" |
| android:exported="false" /> |
| |
| <receiver android:name="com.android.browser.MessagesReceiver"> |
| <intent-filter> |
| <action android:name="com.android.mms.transaction.MESSAGE_RECEIVED" /> |
| </intent-filter> |
| </receiver> |
| |
| <receiver android:name="com.android.browser.PreloadRequestReceiver" |
| android:permission="{{ app_package_name }}.permission.PRELOAD" > |
| <intent-filter> |
| <action android:name="android.intent.action.PRELOAD"/> |
| <data android:scheme="http" /> |
| </intent-filter> |
| </receiver> |
| |
| <provider android:name="com.android.browser.provider.SnapshotProvider" |
| android:authorities="{{ app_package_name }}.snapshots;{{app_authorities}}.snapshots" |
| android:exported="false" /> |
| <provider |
| android:name="com.android.browser.provider.MyNavigationProvider" |
| android:authorities="{{ app_package_name }}.mynavigation;{{app_authorities}}.mynavigation" |
| android:exported="false" |
| android:grantUriPermissions="true"/> |
| |
| {% set num_sandboxed_services = 20 %} |
| <meta-data android:name="org.chromium.content.browser.NUM_SANDBOXED_SERVICES" |
| android:value="{{ num_sandboxed_services }}"/> |
| {% for i in range(num_sandboxed_services) %} |
| <service android:name="org.chromium.content.app.SandboxedProcessService{{ i }}" |
| android:process=":sandboxed_process{{ i }}" |
| android:isolatedProcess="true" |
| android:exported="false" /> |
| {% endfor %} |
| |
| {% set num_privileged_services = 3 %} |
| <meta-data android:name="org.chromium.content.browser.NUM_PRIVILEGED_SERVICES" |
| android:value="{{ num_privileged_services }}"/> |
| {% for i in range(num_privileged_services) %} |
| <service android:name="org.chromium.content.app.PrivilegedProcessService{{ i }}" |
| android:process=":privileged_process{{ i }}" |
| android:isolatedProcess="false" |
| android:exported="false" /> |
| {% endfor %} |
| |
| |
| <!-- Provider for FileProvider. --> |
| <provider android:name="android.support.v4.content.FileProvider" |
| android:authorities="{{ app_package_name }}.FileProvider" |
| android:exported="false" |
| android:grantUriPermissions="true"> |
| <meta-data android:name="android.support.FILE_PROVIDER_PATHS" |
| android:resource="@xml/file_paths" /> |
| </provider> |
| |
| <service |
| android:name="com.android.browser.UpdateNotificationService" |
| android:exported="false" > |
| </service> |
| |
| <!-- Compiler gcc/llvm --> |
| <meta-data android:name="Compiler" android:value="{{ apk_compiler }}" /> |
| <!-- Architecture x64/x32 --> |
| <meta-data android:name="Architecture" android:value="{{ apk_architecture }}" /> |
| |
| </application> |
| |
| <!-- CM 12.1+ --> |
| <uses-sdk android:minSdkVersion="22" android:targetSdkVersion="23" /> |
| |
| {{ extra_supports_gl_texture }} |
| |
| <uses-feature android:name="android.hardware.location.gps" android:required="false" /> |
| |
| </manifest> |