4c0b85ba06
Fix some minor bugs and ensure fused location provider correctly supports location bypass. This is especially important for when location bypass is invoked in direct boot. The added UPDATE_DEVICE_STATS permission is necessary for FusedLocation to correctly update WorkSources. FusedLocation receives work from LMS and then further delegates that work to other location providers. The other location providers should be informed of the correct applications for battery blame, and should not be blaming the FusedLocation package. 1) This is the minimally scoped permission necessary to battery blame correctly. 2) There is no way to attribute battery blame without this permission. 3) This is the correct permission - as required by LocationManager, and this permission will likely never be removed (FusedLocation will always need to battery blame). Test: atest FusedLocationTests Change-Id: If7126fffaae5577ddf8e366a0b5c17b3e5286582
53 lines
2.3 KiB
XML
53 lines
2.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
/*
|
|
* Copyright (c) 2012 Google Inc.
|
|
*
|
|
* 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="com.android.location.fused"
|
|
coreApp="true"
|
|
android:sharedUserId="android.uid.system">
|
|
|
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
|
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
|
|
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
|
|
<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
|
|
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
|
|
|
|
<application
|
|
android:label="@string/app_label"
|
|
android:process="system"
|
|
android:defaultToDeviceProtectedStorage="true"
|
|
android:directBootAware="true">
|
|
|
|
<uses-library android:name="com.android.location.provider" />
|
|
|
|
<!-- Fused Location Service that LocationManagerService binds to.
|
|
LocationManagerService will bind to the service with the highest
|
|
version. -->
|
|
<service android:name="com.android.location.fused.FusedLocationService"
|
|
android:exported="true"
|
|
android:permission="android.permission.WRITE_SECURE_SETTINGS">
|
|
<intent-filter>
|
|
<action android:name="com.android.location.service.FusedLocationProvider" />
|
|
</intent-filter>
|
|
<meta-data android:name="serviceVersion" android:value="0" />
|
|
<meta-data android:name="serviceIsMultiuser" android:value="true" />
|
|
</service>
|
|
</application>
|
|
</manifest>
|