blob: 0e1234a12a3ecce15fe18a2dfe64445b75bb1fe7 [file] [log] [blame]
Tarun Nainanief749cb2014-05-19 18:16:53 -07001<!--
2/*
3 * Copyright 2006, The Android Open Source Project
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17-->
18
19<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.browser">
20
21 <original-package android:name="com.android.browser" />
22
23 <permission android:name="com.android.browser.permission.PRELOAD"
24 android:label="@string/permission_preload_label"
25 android:protectionLevel="signatureOrSystem" />
26 <permission android:name="com.android.browser.permission.INITIALIZE_DATABASE"
27 android:protectionLevel="signatureOrSystem" />
Tarun Nainanief749cb2014-05-19 18:16:53 -070028
29 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
30 <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
31 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
32 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
33 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
Vivek Sekhared791da2015-02-22 12:39:05 -080034 <uses-permission android:name="android.permission.CAMERA" />
Tarun Nainanief749cb2014-05-19 18:16:53 -070035 <uses-permission android:name="android.permission.INTERNET" />
36 <uses-permission android:name="android.permission.NFC" />
37 <uses-permission android:name="android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS" />
38 <uses-permission android:name="android.permission.SET_WALLPAPER" />
39 <uses-permission android:name="android.permission.WAKE_LOCK"/>
40 <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
41 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
42 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
43 <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
44 <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
45 <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
46 <uses-permission android:name="android.permission.READ_PROFILE" />
47 <uses-permission android:name="android.permission.READ_CONTACTS" />
48 <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
49 <uses-permission android:name="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS"/>
50 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
51 <uses-permission android:name="com.android.browser.permission.READ_HOMEPAGE" />
52 <uses-permission android:name="com.android.browser.permission.WRITE_HOMEPAGE" />
53 <uses-permission android:name="com.android.browser.permission.INITIALIZE_DATABASE"/>
54 <uses-permission android:name="android.permission.VIBRATE"/>
55 <uses-permission android:name="android.permission.RECORD_AUDIO"/>
56 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
Tarun Nainani8eb00912014-07-17 12:28:32 -070057 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Tarun Nainanief749cb2014-05-19 18:16:53 -070058
59 <application android:name="Browser"
60 android:label="@string/application_name"
61 android:icon="@mipmap/ic_launcher_browser"
62 android:backupAgent=".BrowserBackupAgent"
63 android:hardwareAccelerated="true"
Enrico Rosd6efa972014-12-02 19:49:59 -080064 android:taskAffinity="android.task.browser"
65 android:theme="@style/BrowserBase" >
Tarun Nainanief749cb2014-05-19 18:16:53 -070066
67 <uses-library android:name="com.qrd.useragent"
68 android:required="false" />
69
70 <provider android:name=".provider.BrowserProvider2"
71 android:authorities="com.android.browser;browser"
72 android:multiprocess="false"
73 android:exported="true"
74 android:readPermission="com.android.browser.permission.READ_HISTORY_BOOKMARKS"
75 android:writePermission="com.android.browser.permission.WRITE_HISTORY_BOOKMARKS">
76 <path-permission android:path="/bookmarks/search_suggest_query"
77 android:readPermission="android.permission.GLOBAL_SEARCH" />
78 <path-permission android:path="/homepage"
79 android:readPermission="com.android.browser.permission.READ_HOMEPAGE"
80 android:writePermission="com.android.browser.permission.WRITE_HOMEPAGE" />
81 </provider>
82 <activity android:name="BrowserActivity"
83 android:label="@string/application_name"
84 android:launchMode="singleTask"
85 android:alwaysRetainTaskState="true"
86 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
87 android:theme="@style/BrowserTheme"
88 android:windowSoftInputMode="adjustResize" >
89 <intent-filter>
90 <action android:name="android.speech.action.VOICE_SEARCH_RESULTS" />
91 <category android:name="android.intent.category.DEFAULT" />
92 </intent-filter>
93 <!-- For these schemes were not particular MIME type has been
94 supplied, we are a good candidate. -->
95 <intent-filter>
96 <action android:name="android.intent.action.VIEW" />
97 <category android:name="android.intent.category.DEFAULT" />
98 <category android:name="android.intent.category.BROWSABLE" />
99 <data android:scheme="http" />
100 <data android:scheme="https" />
101 <data android:scheme="about" />
102 <data android:scheme="javascript" />
103 </intent-filter>
104 <!-- For these schemes where any of these particular MIME types
105 have been supplied, we are a good candidate. -->
106 <intent-filter>
107 <action android:name="android.intent.action.VIEW" />
108 <category android:name="android.intent.category.BROWSABLE" />
109 <category android:name="android.intent.category.DEFAULT" />
110 <data android:scheme="http" />
111 <data android:scheme="https" />
112 <data android:scheme="inline" />
113 <data android:mimeType="text/html"/>
114 <data android:mimeType="text/plain"/>
115 <data android:mimeType="application/xhtml+xml"/>
116 <data android:mimeType="application/vnd.wap.xhtml+xml"/>
117 </intent-filter>
118 <!-- For viewing saved web archives. -->
119 <intent-filter>
120 <action android:name="android.intent.action.VIEW" />
121 <category android:name="android.intent.category.BROWSABLE" />
122 <category android:name="android.intent.category.DEFAULT" />
123 <data android:scheme="http" />
124 <data android:scheme="https" />
125 <data android:scheme="file" />
126 <data android:mimeType="application/x-webarchive-xml"/>
127 </intent-filter>
128 <!-- Accept inbound NFC URLs at a low priority -->
129 <intent-filter android:priority="-101">
130 <action android:name="android.nfc.action.NDEF_DISCOVERED" />
131 <category android:name="android.intent.category.DEFAULT" />
132 <data android:scheme="http" />
133 <data android:scheme="https" />
134 </intent-filter>
135 <!-- We are also the main entry point of the browser. -->
136 <intent-filter>
137 <action android:name="android.intent.action.MAIN" />
138 <category android:name="android.intent.category.DEFAULT" />
139 <category android:name="android.intent.category.LAUNCHER" />
140 <category android:name="android.intent.category.BROWSABLE" />
141 <category android:name="android.intent.category.APP_BROWSER" />
142 </intent-filter>
143 <!-- The maps app is a much better experience, so it's not
144 worth having this at all... especially for a demo!
145 <intent-filter android:label="Map In Browser">
146 <action android:name="android.intent.action.VIEW" />
147 <category android:name="android.intent.category.DEFAULT" />
148 <data android:mimeType="vnd.android.cursor.item/postal-address" />
149 </intent-filter>
150 -->
151 <intent-filter>
152 <action android:name="android.intent.action.WEB_SEARCH" />
153 <category android:name="android.intent.category.DEFAULT" />
154 <category android:name="android.intent.category.BROWSABLE" />
155 <data android:scheme="" />
156 <data android:scheme="http" />
157 <data android:scheme="https" />
158 </intent-filter>
159 <intent-filter>
160 <action android:name="android.intent.action.MEDIA_SEARCH" />
161 <category android:name="android.intent.category.DEFAULT" />
162 </intent-filter>
163 <intent-filter>
164 <action android:name="android.intent.action.SEARCH" />
165 <category android:name="android.intent.category.DEFAULT" />
166 </intent-filter>
167 <meta-data android:name="android.app.searchable"
168 android:resource="@xml/searchable" />
169 </activity>
170
171 <activity android:name="ShortcutActivity"
172 android:theme="@style/ShortcutTheme"
173 android:label="@string/shortcut_bookmark"
174 android:icon="@mipmap/ic_launcher_shortcut_browser_bookmark">
175 <intent-filter>
176 <action android:name="android.intent.action.CREATE_SHORTCUT" />
177 <category android:name="android.intent.category.DEFAULT" />
178 </intent-filter>
179 </activity>
180
Enrico Rosd6efa972014-12-02 19:49:59 -0800181 <activity android:name="BrowserPreferencesPage" android:label="@string/menu_preferences"
182 android:parentActivityName=".BrowserActivity"
183 android:theme="@style/SettingsTheme">
Tarun Nainanief749cb2014-05-19 18:16:53 -0700184 <intent-filter>
185 <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
186 <category android:name="android.intent.category.DEFAULT" />
187 </intent-filter>
188 </activity>
189
190 <activity android:name="BookmarkSearch"
191 android:label="@string/bookmarks_search"
192 android:stateNotNeeded="true"
193 android:theme="@android:style/Theme.NoDisplay"
194 android:excludeFromRecents="true">
195 <intent-filter>
196 <action android:name="android.intent.action.SEARCH" />
197 <category android:name="android.intent.category.DEFAULT" />
198 </intent-filter>
199 <meta-data android:name="android.app.searchable"
200 android:resource="@xml/bookmarks_searchable" />
201 </activity>
202
203 <activity android:name="AddBookmarkPage" android:label="@string/bookmarks_add_page"
204 android:theme="@style/DialogWhenLarge"
205 android:configChanges="orientation|keyboardHidden|screenSize"
206 android:windowSoftInputMode="adjustResize">
207 <intent-filter>
208 <action android:name="android.intent.action.INSERT" />
209 <category android:name="android.intent.category.DEFAULT" />
210 <data android:mimeType="vnd.android.cursor.dir/bookmark"/>
211 </intent-filter>
212 </activity>
213
214 <activity android:name="DownloadSettings" android:label="@string/download_settings_title"
215 android:theme="@style/DialogWhenLarge"
216 android:launchMode="singleTask"
217 android:configChanges="orientation|keyboardHidden|screenSize"
218 android:windowSoftInputMode="adjustResize">
219 <intent-filter>
220 <action android:name="android.intent.action.BROWSERDOWNLOAD" />
221 <category android:name="android.intent.category.DEFAULT" />
222 </intent-filter>
223 </activity>
224
225 <!-- For creating new folder in bookmarks page -->
226 <activity android:name="AddBookmarkFolder" android:label="@string/save_bookmark_folder"
227 android:theme="@style/DialogWhenLarge"
228 android:configChanges="orientation|keyboardHidden|screenSize">
229 <intent-filter>
230 <category android:name="android.intent.category.DEFAULT" />
231 <data android:mimeType="vnd.android.cursor.dir/bookmark"/>
232 </intent-filter>
233 </activity>
234
235 <activity android:name="ComboViewActivity">
236 </activity>
237
238 <!-- Bookmark thumbnail homescreen widget -->
239 <receiver
240 android:name=".widget.BookmarkThumbnailWidgetProvider"
241 android:label="@string/bookmarks">
242 <intent-filter>
243 <action
244 android:name="android.appwidget.action.APPWIDGET_UPDATE" />
245 <action
246 android:name="com.android.browser.BOOKMARK_APPWIDGET_UPDATE" />
247 </intent-filter>
248 <meta-data
249 android:name="android.appwidget.provider"
250 android:resource="@xml/bookmarkthumbnailwidget_info" />
251 </receiver>
252 <service
253 android:name=".widget.BookmarkThumbnailWidgetService"
254 android:permission="android.permission.BIND_REMOTEVIEWS"
255 android:exported="false" />
256 <receiver
257 android:name=".widget.BookmarkWidgetProxy"
258 android:exported="false" />
259 <activity android:name=".widget.BookmarkWidgetConfigure"
Enrico Rosd6efa972014-12-02 19:49:59 -0800260 android:theme="@style/DialogWhenLarge">
Tarun Nainanief749cb2014-05-19 18:16:53 -0700261 <intent-filter>
262 <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
263 </intent-filter>
264 </activity>
265 <!-- add or edit my navigation activity -->
266 <activity android:name=".mynavigation.AddMyNavigationPage"
267 android:label="@string/my_navigation_page_title"
268 android:configChanges="orientation|keyboardHidden"
269 android:windowSoftInputMode="stateHidden">
270 </activity>
271
272 <!-- Makes .BrowserActivity the search target for any activity in Browser -->
273 <meta-data android:name="android.app.default_searchable" android:value=".BrowserActivity" />
274
275 <receiver android:name=".OpenDownloadReceiver">
276 <intent-filter>
277 <action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED"/>
278 </intent-filter>
279 </receiver>
280
281 <!-- For custom home pages (like most visited) -->
282 <provider
283 android:name=".homepages.HomeProvider"
284 android:authorities="com.android.browser.home"
285 android:grantUriPermissions="true"
286 android:readPermission="com.android.browser.permission.READ_HISTORY_BOOKMARKS"
287 android:exported="false" />
288
289 <receiver android:name=".AccountsChangedReceiver">
290 <intent-filter>
291 <action android:name="android.accounts.LOGIN_ACCOUNTS_CHANGED" />
292 </intent-filter>
293 </receiver>
294
295 <receiver android:name=".MessagesReceiver">
296 <intent-filter>
297 <action android:name="com.android.mms.transaction.MESSAGE_RECEIVED" />
298 </intent-filter>
299 </receiver>
300
301 <receiver android:name=".PreloadRequestReceiver"
302 android:permission="com.android.browser.permission.PRELOAD" >
303 <intent-filter>
304 <action android:name="android.intent.action.PRELOAD"/>
305 <data android:scheme="http" />
306 </intent-filter>
307 </receiver>
308
309 <provider android:name=".provider.SnapshotProvider"
310 android:authorities="com.android.browser.snapshots"
311 android:exported="false" />
312 <provider
313 android:name=".provider.MyNavigationProvider"
314 android:authorities="com.android.browser.mynavigation"
Axesh R. Ajmera2e241242014-05-19 15:53:38 -0700315 android:exported="false"
316 android:grantUriPermissions="true"/>
Tarun Nainanief749cb2014-05-19 18:16:53 -0700317
Vivek Sekhared791da2015-02-22 12:39:05 -0800318
319 <meta-data android:name="org.chromium.content.browser.NUM_PRIVILEGED_SERVICES"
320 android:value="3"/>
321
322 <service android:name="org.chromium.content.app.PrivilegedProcessService0"
323 android:process=":privileged_process0"
324 android:isolatedProcess="false"
325 android:exported="false" />
326
327 <service android:name="org.chromium.content.app.PrivilegedProcessService1"
328 android:process=":privileged_process1"
329 android:isolatedProcess="false"
330 android:exported="false" />
331
332 <service android:name="org.chromium.content.app.PrivilegedProcessService2"
333 android:process=":privileged_process2"
334 android:isolatedProcess="false"
335 android:exported="false" />
336
337
338 <meta-data android:name="org.chromium.content.browser.NUM_SANDBOXED_SERVICES"
339 android:value="20"/>
340
Tarun Nainanief749cb2014-05-19 18:16:53 -0700341 <service android:name="org.chromium.content.app.SandboxedProcessService0"
342 android:process=":sandboxed_process0"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700343 android:isolatedProcess="true"
344 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800345
Tarun Nainanief749cb2014-05-19 18:16:53 -0700346 <service android:name="org.chromium.content.app.SandboxedProcessService1"
347 android:process=":sandboxed_process1"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700348 android:isolatedProcess="true"
349 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800350
Tarun Nainanief749cb2014-05-19 18:16:53 -0700351 <service android:name="org.chromium.content.app.SandboxedProcessService2"
352 android:process=":sandboxed_process2"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700353 android:isolatedProcess="true"
354 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800355
Tarun Nainanief749cb2014-05-19 18:16:53 -0700356 <service android:name="org.chromium.content.app.SandboxedProcessService3"
357 android:process=":sandboxed_process3"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700358 android:isolatedProcess="true"
359 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800360
Tarun Nainanief749cb2014-05-19 18:16:53 -0700361 <service android:name="org.chromium.content.app.SandboxedProcessService4"
362 android:process=":sandboxed_process4"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700363 android:isolatedProcess="true"
364 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800365
Tarun Nainanief749cb2014-05-19 18:16:53 -0700366 <service android:name="org.chromium.content.app.SandboxedProcessService5"
367 android:process=":sandboxed_process5"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700368 android:isolatedProcess="true"
369 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800370
Tarun Nainanief749cb2014-05-19 18:16:53 -0700371 <service android:name="org.chromium.content.app.SandboxedProcessService6"
372 android:process=":sandboxed_process6"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700373 android:isolatedProcess="true"
374 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800375
Tarun Nainanief749cb2014-05-19 18:16:53 -0700376 <service android:name="org.chromium.content.app.SandboxedProcessService7"
377 android:process=":sandboxed_process7"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700378 android:isolatedProcess="true"
379 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800380
Tarun Nainanief749cb2014-05-19 18:16:53 -0700381 <service android:name="org.chromium.content.app.SandboxedProcessService8"
382 android:process=":sandboxed_process8"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700383 android:isolatedProcess="true"
384 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800385
Tarun Nainanief749cb2014-05-19 18:16:53 -0700386 <service android:name="org.chromium.content.app.SandboxedProcessService9"
387 android:process=":sandboxed_process9"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700388 android:isolatedProcess="true"
389 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800390
Tarun Nainanief749cb2014-05-19 18:16:53 -0700391 <service android:name="org.chromium.content.app.SandboxedProcessService10"
392 android:process=":sandboxed_process10"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700393 android:isolatedProcess="true"
394 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800395
Tarun Nainanief749cb2014-05-19 18:16:53 -0700396 <service android:name="org.chromium.content.app.SandboxedProcessService11"
397 android:process=":sandboxed_process11"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700398 android:isolatedProcess="true"
399 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800400
Tarun Nainanief749cb2014-05-19 18:16:53 -0700401 <service android:name="org.chromium.content.app.SandboxedProcessService12"
402 android:process=":sandboxed_process12"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700403 android:isolatedProcess="true"
404 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800405
Tarun Nainanief749cb2014-05-19 18:16:53 -0700406 <service android:name="org.chromium.content.app.SandboxedProcessService13"
407 android:process=":sandboxed_process13"
Tarun Nainanief749cb2014-05-19 18:16:53 -0700408 android:isolatedProcess="true"
409 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800410
Tarun Nainani8eb00912014-07-17 12:28:32 -0700411 <service android:name="org.chromium.content.app.SandboxedProcessService14"
412 android:process=":sandboxed_process14"
Tarun Nainani8eb00912014-07-17 12:28:32 -0700413 android:isolatedProcess="true"
414 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800415
Tarun Nainani8eb00912014-07-17 12:28:32 -0700416 <service android:name="org.chromium.content.app.SandboxedProcessService15"
417 android:process=":sandboxed_process15"
Tarun Nainani8eb00912014-07-17 12:28:32 -0700418 android:isolatedProcess="true"
419 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800420
Tarun Nainani8eb00912014-07-17 12:28:32 -0700421 <service android:name="org.chromium.content.app.SandboxedProcessService16"
422 android:process=":sandboxed_process16"
Tarun Nainani8eb00912014-07-17 12:28:32 -0700423 android:isolatedProcess="true"
424 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800425
Tarun Nainani8eb00912014-07-17 12:28:32 -0700426 <service android:name="org.chromium.content.app.SandboxedProcessService17"
427 android:process=":sandboxed_process17"
Tarun Nainani8eb00912014-07-17 12:28:32 -0700428 android:isolatedProcess="true"
429 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800430
Tarun Nainani8eb00912014-07-17 12:28:32 -0700431 <service android:name="org.chromium.content.app.SandboxedProcessService18"
432 android:process=":sandboxed_process18"
Tarun Nainani8eb00912014-07-17 12:28:32 -0700433 android:isolatedProcess="true"
434 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800435
Tarun Nainani8eb00912014-07-17 12:28:32 -0700436 <service android:name="org.chromium.content.app.SandboxedProcessService19"
437 android:process=":sandboxed_process19"
Tarun Nainani8eb00912014-07-17 12:28:32 -0700438 android:isolatedProcess="true"
439 android:exported="false" />
Vivek Sekhared791da2015-02-22 12:39:05 -0800440
441 <!-- Provider for FileProvider. -->
442 <provider android:name="android.support.v4.content.FileProvider"
443 android:authorities="com.android.browser.FileProvider"
444 android:exported="false"
445 android:grantUriPermissions="true">
446 <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
447 android:resource="@xml/file_paths" />
448 </provider>
Tarun Nainanief749cb2014-05-19 18:16:53 -0700449 </application>
450
Vivek Sekhar0989b452014-08-01 12:30:35 -0700451 <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="19" />
Tarun Nainanief749cb2014-05-19 18:16:53 -0700452
453 <uses-feature android:name="android.hardware.location.gps" android:required="false" />
454
455</manifest>
456