Merge "Use unified Tethering Permission Check" into lmp-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
61b67c71c5
@@ -1402,6 +1402,20 @@ public class ConnectivityManager {
|
|||||||
return (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
return (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** {@hide */
|
||||||
|
public static final void enforceTetherChangePermission(Context context) {
|
||||||
|
if (context.getResources().getStringArray(
|
||||||
|
com.android.internal.R.array.config_mobile_hotspot_provision_app).length == 2) {
|
||||||
|
// Have a provisioning app - must only let system apps (which check this app)
|
||||||
|
// turn on tethering
|
||||||
|
context.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.CONNECTIVITY_INTERNAL, "ConnectivityService");
|
||||||
|
} else {
|
||||||
|
context.enforceCallingOrSelfPermission(
|
||||||
|
android.Manifest.permission.CHANGE_NETWORK_STATE, "ConnectivityService");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the set of tetherable, available interfaces. This list is limited by
|
* Get the set of tetherable, available interfaces. This list is limited by
|
||||||
* device configuration and current interface existence.
|
* device configuration and current interface existence.
|
||||||
|
|||||||
@@ -1357,13 +1357,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
"ConnectivityService");
|
"ConnectivityService");
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Make this a special check when it goes public
|
|
||||||
private void enforceTetherChangePermission() {
|
|
||||||
mContext.enforceCallingOrSelfPermission(
|
|
||||||
android.Manifest.permission.CHANGE_NETWORK_STATE,
|
|
||||||
"ConnectivityService");
|
|
||||||
}
|
|
||||||
|
|
||||||
private void enforceTetherAccessPermission() {
|
private void enforceTetherAccessPermission() {
|
||||||
mContext.enforceCallingOrSelfPermission(
|
mContext.enforceCallingOrSelfPermission(
|
||||||
android.Manifest.permission.ACCESS_NETWORK_STATE,
|
android.Manifest.permission.ACCESS_NETWORK_STATE,
|
||||||
@@ -2389,8 +2382,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
|
|
||||||
// javadoc from interface
|
// javadoc from interface
|
||||||
public int tether(String iface) {
|
public int tether(String iface) {
|
||||||
enforceTetherChangePermission();
|
ConnectivityManager.enforceTetherChangePermission(mContext);
|
||||||
|
|
||||||
if (isTetheringSupported()) {
|
if (isTetheringSupported()) {
|
||||||
return mTethering.tether(iface);
|
return mTethering.tether(iface);
|
||||||
} else {
|
} else {
|
||||||
@@ -2400,7 +2392,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
|
|
||||||
// javadoc from interface
|
// javadoc from interface
|
||||||
public int untether(String iface) {
|
public int untether(String iface) {
|
||||||
enforceTetherChangePermission();
|
ConnectivityManager.enforceTetherChangePermission(mContext);
|
||||||
|
|
||||||
if (isTetheringSupported()) {
|
if (isTetheringSupported()) {
|
||||||
return mTethering.untether(iface);
|
return mTethering.untether(iface);
|
||||||
@@ -2449,7 +2441,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int setUsbTethering(boolean enable) {
|
public int setUsbTethering(boolean enable) {
|
||||||
enforceTetherChangePermission();
|
ConnectivityManager.enforceTetherChangePermission(mContext);
|
||||||
if (isTetheringSupported()) {
|
if (isTetheringSupported()) {
|
||||||
return mTethering.setUsbTethering(enable);
|
return mTethering.setUsbTethering(enable);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user