1 <?xml version="1.0" encoding="utf-8"?> 2 3 <!-- Copyright 2014 The Chromium Authors. All rights reserved. 4 5 Use of this source code is governed by a BSD-style license that can be 6 found in the LICENSE file. 7 --> 8 9 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 10 package="org.chromium.chrome.sync_shell"> 11 12 <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="20" /> 13 <permission android:name="org.chromium.chrome.shell.permission.SANDBOX" 14 android:protectionLevel="signature" /> 15 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 16 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 17 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 18 <uses-permission android:name="android.permission.CAMERA" /> 19 <uses-permission android:name="android.permission.GET_ACCOUNTS"/> 20 <uses-permission android:name="android.permission.INTERNET"/> 21 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 22 <uses-permission android:name="android.permission.RECORD_AUDIO"/> 23 <uses-permission android:name="android.permission.VIBRATE"/> 24 <uses-permission android:name="android.permission.WAKE_LOCK"/> 25 <uses-permission android:name="android.permission.READ_SYNC_SETTINGS"/> 26 <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" /> 27 <uses-permission android:name="android.permission.USE_CREDENTIALS" /> 28 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 29 <!-- Only Chrome can receive the messages and registration result for GCM --> 30 <permission android:name="org.chromium.chrome.shell.permission.C2D_MESSAGE" 31 android:protectionLevel="signature" /> 32 <uses-permission android:name="org.chromium.chrome.shell.permission.C2D_MESSAGE" /> 33 <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 34 35 <application android:name="org.chromium.chrome.shell.ChromeShellApplication" 36 android:icon="@mipmap/app_icon" 37 android:label="Chrome Sync Shell"> 38 <activity android:name="org.chromium.chrome.shell.ChromeShellActivity" 39 android:launchMode="singleTask" 40 android:theme="@android:style/Theme.Holo.Light.NoActionBar" 41 android:configChanges="orientation|keyboardHidden|keyboard|screenSize" 42 android:hardwareAccelerated="true"> 43 <intent-filter> 44 <action android:name="android.intent.action.MAIN" /> 45 <category android:name="android.intent.category.LAUNCHER" /> 46 </intent-filter> 47 </activity> 48 <activity android:name="org.chromium.sync.test.util.MockGrantCredentialsPermissionActivity" 49 android:exported="true"> 50 <intent-filter> 51 <action android:name="android.intent.action.VIEW" /> 52 <category android:name="android.intent.category.DEFAULT" /> 53 </intent-filter> 54 </activity> 55 <!-- The following service entries exist in order to allow us to 56 start more than one sandboxed process. --> 57 58 <!-- NOTE: If you change the values of "android:process" for any of the below services, 59 you also need to update kHelperProcessExecutableName in chrome_constants.cc. --> 60 <service android:name="org.chromium.content.app.SandboxedProcessService0" 61 android:process=":sandboxed_process0" 62 android:permission="org.chromium.content_shell.permission.SANDBOX" 63 android:isolatedProcess="true" 64 android:exported="false" /> 65 <service android:name="org.chromium.content.app.SandboxedProcessService1" 66 android:process=":sandboxed_process1" 67 android:permission="org.chromium.content_shell.permission.SANDBOX" 68 android:isolatedProcess="true" 69 android:exported="false" /> 70 <service android:name="org.chromium.content.app.SandboxedProcessService2" 71 android:process=":sandboxed_process2" 72 android:permission="org.chromium.content_shell.permission.SANDBOX" 73 android:isolatedProcess="true" 74 android:exported="false" /> 75 <service android:name="org.chromium.content.app.SandboxedProcessService3" 76 android:process=":sandboxed_process3" 77 android:permission="org.chromium.content_shell.permission.SANDBOX" 78 android:isolatedProcess="true" 79 android:exported="false" /> 80 <service android:name="org.chromium.content.app.SandboxedProcessService4" 81 android:process=":sandboxed_process4" 82 android:permission="org.chromium.content_shell.permission.SANDBOX" 83 android:isolatedProcess="true" 84 android:exported="false" /> 85 <service android:name="org.chromium.content.app.SandboxedProcessService5" 86 android:process=":sandboxed_process5" 87 android:permission="org.chromium.content_shell.permission.SANDBOX" 88 android:isolatedProcess="true" 89 android:exported="false" /> 90 <service android:name="org.chromium.content.app.SandboxedProcessService6" 91 android:process=":sandboxed_process6" 92 android:permission="org.chromium.content_shell.permission.SANDBOX" 93 android:isolatedProcess="true" 94 android:exported="false" /> 95 <service android:name="org.chromium.content.app.SandboxedProcessService7" 96 android:process=":sandboxed_process7" 97 android:permission="org.chromium.content_shell.permission.SANDBOX" 98 android:isolatedProcess="true" 99 android:exported="false" /> 100 <service android:name="org.chromium.content.app.SandboxedProcessService8" 101 android:process=":sandboxed_process8" 102 android:permission="org.chromium.content_shell.permission.SANDBOX" 103 android:isolatedProcess="true" 104 android:exported="false" /> 105 <service android:name="org.chromium.content.app.SandboxedProcessService9" 106 android:process=":sandboxed_process9" 107 android:permission="org.chromium.content_shell.permission.SANDBOX" 108 android:isolatedProcess="true" 109 android:exported="false" /> 110 <service android:name="org.chromium.content.app.SandboxedProcessService10" 111 android:process=":sandboxed_process10" 112 android:permission="org.chromium.content_shell.permission.SANDBOX" 113 android:isolatedProcess="true" 114 android:exported="false" /> 115 <service android:name="org.chromium.content.app.SandboxedProcessService11" 116 android:process=":sandboxed_process11" 117 android:permission="org.chromium.content_shell.permission.SANDBOX" 118 android:isolatedProcess="true" 119 android:exported="false" /> 120 <service android:name="org.chromium.content.app.SandboxedProcessService12" 121 android:process=":sandboxed_process12" 122 android:permission="org.chromium.content_shell.permission.SANDBOX" 123 android:isolatedProcess="true" 124 android:exported="false" /> 125 <service android:name="org.chromium.content.app.SandboxedProcessService13" 126 android:process=":sandboxed_process13" 127 android:permission="org.chromium.content_shell.permission.SANDBOX" 128 android:isolatedProcess="true" 129 android:exported="false" /> 130 <service android:name="org.chromium.content.app.SandboxedProcessService14" 131 android:process=":sandboxed_process14" 132 android:permission="org.chromium.content_shell.permission.SANDBOX" 133 android:isolatedProcess="true" 134 android:exported="false" /> 135 <service android:name="org.chromium.content.app.SandboxedProcessService15" 136 android:process=":sandboxed_process15" 137 android:permission="org.chromium.content_shell.permission.SANDBOX" 138 android:isolatedProcess="true" 139 android:exported="false" /> 140 <service android:name="org.chromium.content.app.SandboxedProcessService16" 141 android:process=":sandboxed_process16" 142 android:permission="org.chromium.content_shell.permission.SANDBOX" 143 android:isolatedProcess="true" 144 android:exported="false" /> 145 <service android:name="org.chromium.content.app.SandboxedProcessService17" 146 android:process=":sandboxed_process17" 147 android:permission="org.chromium.content_shell.permission.SANDBOX" 148 android:isolatedProcess="true" 149 android:exported="false" /> 150 <service android:name="org.chromium.content.app.SandboxedProcessService18" 151 android:process=":sandboxed_process18" 152 android:permission="org.chromium.content_shell.permission.SANDBOX" 153 android:isolatedProcess="true" 154 android:exported="false" /> 155 <service android:name="org.chromium.content.app.SandboxedProcessService19" 156 android:process=":sandboxed_process19" 157 android:permission="org.chromium.content_shell.permission.SANDBOX" 158 android:isolatedProcess="true" 159 android:exported="false" /> 160 161 <!-- Receiver for GCM messages. Rebroadcasts them locally for sync. --> 162 <receiver android:exported="true" 163 android:name="com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener$GCMReceiver" 164 android:permission="com.google.android.c2dm.permission.SEND"> 165 <intent-filter> 166 <action android:name="com.google.android.c2dm.intent.RECEIVE" /> 167 <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> 168 <category android:name="org.chromium.chrome.shell"/> 169 </intent-filter> 170 </receiver> 171 <service android:exported="false" 172 android:name="com.google.ipc.invalidation.external.client.contrib.MultiplexingGcmListener"> 173 <meta-data android:name="sender_ids" 174 android:value="cloudprint.c2dm (a] gmail.com,ipc.invalidation (a] gmail.com"/> 175 </service> 176 177 <!-- Notification service for sync. --> 178 <meta-data android:name="ipc.invalidation.ticl.listener_service_class" 179 android:value="org.chromium.sync.notifier.InvalidationService"/> 180 <service android:name="org.chromium.sync.notifier.InvalidationService" 181 android:exported="false"> 182 <intent-filter> 183 <action android:name="com.google.ipc.invalidation.AUTH_TOKEN_REQUEST"/> 184 </intent-filter> 185 </service> 186 <service android:exported="false" 187 android:name="com.google.ipc.invalidation.ticl.android2.TiclService"/> 188 <service android:exported="false" 189 android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageSenderService"/> 190 <receiver android:exported="false" 191 android:name="com.google.ipc.invalidation.ticl.android2.AndroidInternalScheduler$AlarmReceiver"/> 192 <receiver android:exported="false" 193 android:name="com.google.ipc.invalidation.external.client.contrib.AndroidListener$AlarmReceiver"/> 194 195 <!-- Notification service multiplexed GCM receiver --> 196 <service android:exported="false" 197 android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageReceiverService" 198 android:enabled="true"/> 199 <receiver android:exported="false" 200 android:name="com.google.ipc.invalidation.ticl.android2.channel.AndroidMessageReceiverService$Receiver"> 201 <intent-filter> 202 <action android:name="com.google.ipc.invalidation.gcmmplex.EVENT" /> 203 </intent-filter> 204 </receiver> 205 206 <!-- GCMDriver multiplexed GCM receiver --> 207 <service android:exported="false" 208 android:name="org.chromium.components.gcm_driver.GCMListener"/> 209 <receiver android:exported="false" 210 android:name="org.chromium.components.gcm_driver.GCMListener$Receiver"> 211 <intent-filter> 212 <action android:name="com.google.ipc.invalidation.gcmmplex.EVENT" /> 213 </intent-filter> 214 </receiver> 215 216 <provider android:name="org.chromium.chrome.browser.ChromeBrowserProvider" 217 android:authorities="org.chromium.chrome.sync_shell" 218 android:exported="true" /> 219 220 <!-- Sync adapter for browser sync. --> 221 <service android:exported="false" 222 android:name="org.chromium.chrome.shell.sync.ChromeShellSyncAdapterService"> 223 <intent-filter> 224 <action android:name="android.content.SyncAdapter" /> 225 </intent-filter> 226 <meta-data android:name="android.content.SyncAdapter" 227 android:resource="@xml/syncadapter" /> 228 </service> 229 230 <!-- Broadcast receiver that will be notified of account changes. --> 231 <receiver android:name="org.chromium.chrome.shell.signin.AccountsChangedReceiver"> 232 <intent-filter> 233 <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" /> 234 </intent-filter> 235 </receiver> 236 <meta-data android:name="org.chromium.content.browser.SMART_CLIP_PROVIDER" 237 android:value="org.chromium.content.browser.SmartClipProvider" /> 238 239 </application> 240 </manifest> 241