Merge "DO NOT MERGE. Add a permissions check to LocationManagerService." into sc-dev
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
package com.android.server.location;
|
package com.android.server.location;
|
||||||
|
|
||||||
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
|
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
|
||||||
|
import static android.Manifest.permission.INTERACT_ACROSS_USERS;
|
||||||
import static android.app.compat.CompatChanges.isChangeEnabled;
|
import static android.app.compat.CompatChanges.isChangeEnabled;
|
||||||
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
|
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
|
||||||
import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY;
|
import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY;
|
||||||
@@ -39,6 +40,7 @@ import android.Manifest;
|
|||||||
import android.Manifest.permission;
|
import android.Manifest.permission;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
import android.annotation.Nullable;
|
import android.annotation.Nullable;
|
||||||
|
import android.annotation.RequiresPermission;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.AppOpsManager;
|
import android.app.AppOpsManager;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
@@ -1063,10 +1065,12 @@ public class LocationManagerService extends ILocationManager.Stub implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addProviderRequestListener(IProviderRequestListener listener) {
|
public void addProviderRequestListener(IProviderRequestListener listener) {
|
||||||
|
if (mContext.checkCallingOrSelfPermission(INTERACT_ACROSS_USERS) == PERMISSION_GRANTED) {
|
||||||
for (LocationProviderManager manager : mProviderManagers) {
|
for (LocationProviderManager manager : mProviderManagers) {
|
||||||
manager.addProviderRequestListener(listener);
|
manager.addProviderRequestListener(listener);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeProviderRequestListener(IProviderRequestListener listener) {
|
public void removeProviderRequestListener(IProviderRequestListener listener) {
|
||||||
|
|||||||
Reference in New Issue
Block a user