Merge change 6363 into donut
* changes: LocationManagerService: Use Context.checkCallingOrSelfPermission for permission checks
This commit is contained in:
@@ -648,14 +648,14 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
|
|||||||
|
|
||||||
private void checkPermissionsSafe(String provider) {
|
private void checkPermissionsSafe(String provider) {
|
||||||
if (LocationManager.GPS_PROVIDER.equals(provider)
|
if (LocationManager.GPS_PROVIDER.equals(provider)
|
||||||
&& (mContext.checkCallingPermission(ACCESS_FINE_LOCATION)
|
&& (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION)
|
||||||
!= PackageManager.PERMISSION_GRANTED)) {
|
!= PackageManager.PERMISSION_GRANTED)) {
|
||||||
throw new SecurityException("Requires ACCESS_FINE_LOCATION permission");
|
throw new SecurityException("Requires ACCESS_FINE_LOCATION permission");
|
||||||
}
|
}
|
||||||
if (LocationManager.NETWORK_PROVIDER.equals(provider)
|
if (LocationManager.NETWORK_PROVIDER.equals(provider)
|
||||||
&& (mContext.checkCallingPermission(ACCESS_FINE_LOCATION)
|
&& (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION)
|
||||||
!= PackageManager.PERMISSION_GRANTED)
|
!= PackageManager.PERMISSION_GRANTED)
|
||||||
&& (mContext.checkCallingPermission(ACCESS_COARSE_LOCATION)
|
&& (mContext.checkCallingOrSelfPermission(ACCESS_COARSE_LOCATION)
|
||||||
!= PackageManager.PERMISSION_GRANTED)) {
|
!= PackageManager.PERMISSION_GRANTED)) {
|
||||||
throw new SecurityException(
|
throw new SecurityException(
|
||||||
"Requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission");
|
"Requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permission");
|
||||||
@@ -664,14 +664,14 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
|
|||||||
|
|
||||||
private boolean isAllowedProviderSafe(String provider) {
|
private boolean isAllowedProviderSafe(String provider) {
|
||||||
if (LocationManager.GPS_PROVIDER.equals(provider)
|
if (LocationManager.GPS_PROVIDER.equals(provider)
|
||||||
&& (mContext.checkCallingPermission(ACCESS_FINE_LOCATION)
|
&& (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION)
|
||||||
!= PackageManager.PERMISSION_GRANTED)) {
|
!= PackageManager.PERMISSION_GRANTED)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (LocationManager.NETWORK_PROVIDER.equals(provider)
|
if (LocationManager.NETWORK_PROVIDER.equals(provider)
|
||||||
&& (mContext.checkCallingPermission(ACCESS_FINE_LOCATION)
|
&& (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION)
|
||||||
!= PackageManager.PERMISSION_GRANTED)
|
!= PackageManager.PERMISSION_GRANTED)
|
||||||
&& (mContext.checkCallingPermission(ACCESS_COARSE_LOCATION)
|
&& (mContext.checkCallingOrSelfPermission(ACCESS_COARSE_LOCATION)
|
||||||
!= PackageManager.PERMISSION_GRANTED)) {
|
!= PackageManager.PERMISSION_GRANTED)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1075,7 +1075,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
|
|||||||
if (mGpsStatusProvider == null) {
|
if (mGpsStatusProvider == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (mContext.checkCallingPermission(ACCESS_FINE_LOCATION) !=
|
if (mContext.checkCallingOrSelfPermission(ACCESS_FINE_LOCATION) !=
|
||||||
PackageManager.PERMISSION_GRANTED) {
|
PackageManager.PERMISSION_GRANTED) {
|
||||||
throw new SecurityException("Requires ACCESS_FINE_LOCATION permission");
|
throw new SecurityException("Requires ACCESS_FINE_LOCATION permission");
|
||||||
}
|
}
|
||||||
@@ -1103,7 +1103,7 @@ public class LocationManagerService extends ILocationManager.Stub implements Run
|
|||||||
// first check for permission to the provider
|
// first check for permission to the provider
|
||||||
checkPermissionsSafe(provider);
|
checkPermissionsSafe(provider);
|
||||||
// and check for ACCESS_LOCATION_EXTRA_COMMANDS
|
// and check for ACCESS_LOCATION_EXTRA_COMMANDS
|
||||||
if ((mContext.checkCallingPermission(ACCESS_LOCATION_EXTRA_COMMANDS)
|
if ((mContext.checkCallingOrSelfPermission(ACCESS_LOCATION_EXTRA_COMMANDS)
|
||||||
!= PackageManager.PERMISSION_GRANTED)) {
|
!= PackageManager.PERMISSION_GRANTED)) {
|
||||||
throw new SecurityException("Requires ACCESS_LOCATION_EXTRA_COMMANDS permission");
|
throw new SecurityException("Requires ACCESS_LOCATION_EXTRA_COMMANDS permission");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user