Merge "Removes WRITE_SECURE_SETTINGS from location bypass APIs" into tm-dev
This commit is contained in:
@@ -5842,9 +5842,9 @@ package android.location {
|
|||||||
ctor public LastLocationRequest.Builder();
|
ctor public LastLocationRequest.Builder();
|
||||||
ctor public LastLocationRequest.Builder(@NonNull android.location.LastLocationRequest);
|
ctor public LastLocationRequest.Builder(@NonNull android.location.LastLocationRequest);
|
||||||
method @NonNull public android.location.LastLocationRequest build();
|
method @NonNull public android.location.LastLocationRequest build();
|
||||||
method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.WRITE_SECURE_SETTINGS, android.Manifest.permission.LOCATION_BYPASS}) public android.location.LastLocationRequest.Builder setAdasGnssBypass(boolean);
|
method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public android.location.LastLocationRequest.Builder setAdasGnssBypass(boolean);
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_APP_OPS_STATS) public android.location.LastLocationRequest.Builder setHiddenFromAppOps(boolean);
|
method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_APP_OPS_STATS) public android.location.LastLocationRequest.Builder setHiddenFromAppOps(boolean);
|
||||||
method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.WRITE_SECURE_SETTINGS, android.Manifest.permission.LOCATION_BYPASS}) public android.location.LastLocationRequest.Builder setLocationSettingsIgnored(boolean);
|
method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public android.location.LastLocationRequest.Builder setLocationSettingsIgnored(boolean);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Location implements android.os.Parcelable {
|
public class Location implements android.os.Parcelable {
|
||||||
@@ -5873,7 +5873,7 @@ package android.location {
|
|||||||
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
|
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.location.LocationListener, @Nullable android.os.Looper);
|
||||||
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener);
|
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull java.util.concurrent.Executor, @NonNull android.location.LocationListener);
|
||||||
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.app.PendingIntent);
|
method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}) public void requestLocationUpdates(@Nullable android.location.LocationRequest, @NonNull android.app.PendingIntent);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.WRITE_SECURE_SETTINGS, android.Manifest.permission.LOCATION_BYPASS}) public void setAdasGnssLocationEnabled(boolean);
|
method @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public void setAdasGnssLocationEnabled(boolean);
|
||||||
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setExtraLocationControllerPackage(@Nullable String);
|
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setExtraLocationControllerPackage(@Nullable String);
|
||||||
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setExtraLocationControllerPackageEnabled(boolean);
|
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void setExtraLocationControllerPackageEnabled(boolean);
|
||||||
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, @NonNull android.os.UserHandle);
|
method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setLocationEnabledForUser(boolean, @NonNull android.os.UserHandle);
|
||||||
@@ -5906,7 +5906,7 @@ package android.location {
|
|||||||
method @Deprecated @NonNull public android.location.LocationRequest setFastestInterval(long);
|
method @Deprecated @NonNull public android.location.LocationRequest setFastestInterval(long);
|
||||||
method @Deprecated public void setHideFromAppOps(boolean);
|
method @Deprecated public void setHideFromAppOps(boolean);
|
||||||
method @Deprecated @NonNull public android.location.LocationRequest setInterval(long);
|
method @Deprecated @NonNull public android.location.LocationRequest setInterval(long);
|
||||||
method @Deprecated @NonNull @RequiresPermission(anyOf={android.Manifest.permission.WRITE_SECURE_SETTINGS, android.Manifest.permission.LOCATION_BYPASS}) public android.location.LocationRequest setLocationSettingsIgnored(boolean);
|
method @Deprecated @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public android.location.LocationRequest setLocationSettingsIgnored(boolean);
|
||||||
method @Deprecated @NonNull public android.location.LocationRequest setLowPowerMode(boolean);
|
method @Deprecated @NonNull public android.location.LocationRequest setLowPowerMode(boolean);
|
||||||
method @Deprecated @NonNull public android.location.LocationRequest setNumUpdates(int);
|
method @Deprecated @NonNull public android.location.LocationRequest setNumUpdates(int);
|
||||||
method @Deprecated @NonNull public android.location.LocationRequest setProvider(@NonNull String);
|
method @Deprecated @NonNull public android.location.LocationRequest setProvider(@NonNull String);
|
||||||
@@ -5922,9 +5922,9 @@ package android.location {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static final class LocationRequest.Builder {
|
public static final class LocationRequest.Builder {
|
||||||
method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.WRITE_SECURE_SETTINGS, android.Manifest.permission.LOCATION_BYPASS}) public android.location.LocationRequest.Builder setAdasGnssBypass(boolean);
|
method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public android.location.LocationRequest.Builder setAdasGnssBypass(boolean);
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_APP_OPS_STATS) public android.location.LocationRequest.Builder setHiddenFromAppOps(boolean);
|
method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_APP_OPS_STATS) public android.location.LocationRequest.Builder setHiddenFromAppOps(boolean);
|
||||||
method @NonNull @RequiresPermission(anyOf={android.Manifest.permission.WRITE_SECURE_SETTINGS, android.Manifest.permission.LOCATION_BYPASS}) public android.location.LocationRequest.Builder setLocationSettingsIgnored(boolean);
|
method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_BYPASS) public android.location.LocationRequest.Builder setLocationSettingsIgnored(boolean);
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.location.LocationRequest.Builder setLowPower(boolean);
|
method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public android.location.LocationRequest.Builder setLowPower(boolean);
|
||||||
method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.location.LocationRequest.Builder setWorkSource(@Nullable android.os.WorkSource);
|
method @NonNull @RequiresPermission(android.Manifest.permission.UPDATE_DEVICE_STATS) public android.location.LocationRequest.Builder setWorkSource(@Nullable android.os.WorkSource);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
package android.location;
|
package android.location;
|
||||||
|
|
||||||
import static android.Manifest.permission.LOCATION_BYPASS;
|
import static android.Manifest.permission.LOCATION_BYPASS;
|
||||||
import static android.Manifest.permission.WRITE_SECURE_SETTINGS;
|
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.annotation.NonNull;
|
import android.annotation.NonNull;
|
||||||
@@ -223,9 +222,8 @@ public final class LastLocationRequest implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
// TODO: remove WRITE_SECURE_SETTINGS.
|
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(anyOf = {WRITE_SECURE_SETTINGS, LOCATION_BYPASS})
|
@RequiresPermission(LOCATION_BYPASS)
|
||||||
public @NonNull LastLocationRequest.Builder setAdasGnssBypass(boolean adasGnssBypass) {
|
public @NonNull LastLocationRequest.Builder setAdasGnssBypass(boolean adasGnssBypass) {
|
||||||
mAdasGnssBypass = adasGnssBypass;
|
mAdasGnssBypass = adasGnssBypass;
|
||||||
return this;
|
return this;
|
||||||
@@ -242,9 +240,8 @@ public final class LastLocationRequest implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
// TODO: remove WRITE_SECURE_SETTINGS.
|
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(anyOf = {WRITE_SECURE_SETTINGS, LOCATION_BYPASS})
|
@RequiresPermission(LOCATION_BYPASS)
|
||||||
public @NonNull Builder setLocationSettingsIgnored(boolean locationSettingsIgnored) {
|
public @NonNull Builder setLocationSettingsIgnored(boolean locationSettingsIgnored) {
|
||||||
mLocationSettingsIgnored = locationSettingsIgnored;
|
mLocationSettingsIgnored = locationSettingsIgnored;
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
@@ -679,9 +679,8 @@ public class LocationManager {
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
// TODO: remove WRITE_SECURE_SETTINGS.
|
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(anyOf = {WRITE_SECURE_SETTINGS, LOCATION_BYPASS})
|
@RequiresPermission(LOCATION_BYPASS)
|
||||||
public void setAdasGnssLocationEnabled(boolean enabled) {
|
public void setAdasGnssLocationEnabled(boolean enabled) {
|
||||||
try {
|
try {
|
||||||
mService.setAdasGnssLocationEnabledForUser(enabled, mContext.getUser().getIdentifier());
|
mService.setAdasGnssLocationEnabledForUser(enabled, mContext.getUser().getIdentifier());
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
package android.location;
|
package android.location;
|
||||||
|
|
||||||
import static android.Manifest.permission.LOCATION_BYPASS;
|
import static android.Manifest.permission.LOCATION_BYPASS;
|
||||||
import static android.Manifest.permission.WRITE_SECURE_SETTINGS;
|
|
||||||
|
|
||||||
import static java.lang.Math.max;
|
import static java.lang.Math.max;
|
||||||
import static java.lang.Math.min;
|
import static java.lang.Math.min;
|
||||||
@@ -665,10 +664,9 @@ public final class LocationRequest implements Parcelable {
|
|||||||
* @hide
|
* @hide
|
||||||
* @deprecated LocationRequests should be treated as immutable.
|
* @deprecated LocationRequests should be treated as immutable.
|
||||||
*/
|
*/
|
||||||
// TODO: remove WRITE_SECURE_SETTINGS.
|
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@RequiresPermission(anyOf = {WRITE_SECURE_SETTINGS, LOCATION_BYPASS})
|
@RequiresPermission(LOCATION_BYPASS)
|
||||||
public @NonNull LocationRequest setLocationSettingsIgnored(boolean locationSettingsIgnored) {
|
public @NonNull LocationRequest setLocationSettingsIgnored(boolean locationSettingsIgnored) {
|
||||||
mBypass = locationSettingsIgnored;
|
mBypass = locationSettingsIgnored;
|
||||||
return this;
|
return this;
|
||||||
@@ -1136,9 +1134,8 @@ public final class LocationRequest implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
// TODO: remove WRITE_SECURE_SETTINGS
|
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(anyOf = {WRITE_SECURE_SETTINGS, LOCATION_BYPASS})
|
@RequiresPermission(LOCATION_BYPASS)
|
||||||
public @NonNull Builder setAdasGnssBypass(boolean adasGnssBypass) {
|
public @NonNull Builder setAdasGnssBypass(boolean adasGnssBypass) {
|
||||||
mAdasGnssBypass = adasGnssBypass;
|
mAdasGnssBypass = adasGnssBypass;
|
||||||
return this;
|
return this;
|
||||||
@@ -1155,9 +1152,8 @@ public final class LocationRequest implements Parcelable {
|
|||||||
*
|
*
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
// TODO: remove WRITE_SECURE_SETTINGS
|
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(anyOf = {WRITE_SECURE_SETTINGS, LOCATION_BYPASS})
|
@RequiresPermission(LOCATION_BYPASS)
|
||||||
public @NonNull Builder setLocationSettingsIgnored(boolean locationSettingsIgnored) {
|
public @NonNull Builder setLocationSettingsIgnored(boolean locationSettingsIgnored) {
|
||||||
mBypass = locationSettingsIgnored;
|
mBypass = locationSettingsIgnored;
|
||||||
return this;
|
return this;
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ package com.android.server.location;
|
|||||||
import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
|
import static android.Manifest.permission.ACCESS_COARSE_LOCATION;
|
||||||
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
|
import static android.Manifest.permission.ACCESS_FINE_LOCATION;
|
||||||
import static android.Manifest.permission.LOCATION_BYPASS;
|
import static android.Manifest.permission.LOCATION_BYPASS;
|
||||||
import static android.Manifest.permission.WRITE_SECURE_SETTINGS;
|
|
||||||
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||||
|
|
||||||
import android.annotation.IntDef;
|
import android.annotation.IntDef;
|
||||||
@@ -134,15 +133,11 @@ public final class LocationPermissions {
|
|||||||
* perissions.
|
* perissions.
|
||||||
*/
|
*/
|
||||||
public static void enforceBypassPermission(Context context, int uid, int pid) {
|
public static void enforceBypassPermission(Context context, int uid, int pid) {
|
||||||
if (context.checkPermission(WRITE_SECURE_SETTINGS, pid, uid) == PERMISSION_GRANTED) {
|
|
||||||
// TODO: disallow WRITE_SECURE_SETTINGS permission.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (context.checkPermission(LOCATION_BYPASS, pid, uid) == PERMISSION_GRANTED) {
|
if (context.checkPermission(LOCATION_BYPASS, pid, uid) == PERMISSION_GRANTED) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
throw new SecurityException("uid" + uid + " does not have " + LOCATION_BYPASS
|
throw new SecurityException("uid" + uid + " does not have " + LOCATION_BYPASS
|
||||||
+ "or " + WRITE_SECURE_SETTINGS + ".");
|
+ ".");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user