Implement Settings#checkAndNoteChangeNetworkStateOperation on CS
Connectivity is becoming a mainline module in S and ConnectivityManager#enforceChangePermission is using Settings#checkAndNoteChangeNetworkStateOperation for performing a strict and comprehensive check of whether a calling package is allowed to change the state of network. However, Mainline modules are not allowed to use non-formal APIs, fortunately CS is the only caller of this ConnectivityManager#enforceChangePermission. Thus, implement the Settings API on ConnectivityService and remove the ConnectivityManager#enforceChangePermission and Settings#checkAndNoteChangeNetworkStateOperation. Bug: 178565313 Test: atest FrameworksNetTests Change-Id: I6f03398c1735b89470ad5bdbe3a036929daeb53c Merged-In: I6f03398c1735b89470ad5bdbe3a036929daeb53c
This commit is contained in:
@@ -2245,31 +2245,6 @@ public class ConnectivityManager {
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO: These permissions checks don't belong in client-side code. Move them to
|
||||
* services.jar, possibly in com.android.server.net. */
|
||||
|
||||
/** {@hide} */
|
||||
public static final void enforceChangePermission(Context context,
|
||||
String callingPkg, String callingAttributionTag) {
|
||||
int uid = Binder.getCallingUid();
|
||||
checkAndNoteChangeNetworkStateOperation(context, uid, callingPkg,
|
||||
callingAttributionTag, true /* throwException */);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the package is a allowed to change the network state. This also accounts that such
|
||||
* an access happened.
|
||||
*
|
||||
* @return {@code true} iff the package is allowed to change the network state.
|
||||
*/
|
||||
// TODO: Remove method and replace with direct call once R code is pushed to AOSP
|
||||
private static boolean checkAndNoteChangeNetworkStateOperation(@NonNull Context context,
|
||||
int uid, @NonNull String callingPackage, @Nullable String callingAttributionTag,
|
||||
boolean throwException) {
|
||||
return Settings.checkAndNoteChangeNetworkStateOperation(context, uid, callingPackage,
|
||||
throwException);
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the package is a allowed to write settings. This also accounts that such an access
|
||||
* happened.
|
||||
|
||||
Reference in New Issue
Block a user