Accept MAINLINE_NETWORK_STACK permission on register/unregister network provider
Registering/Unregistering network provider needs NETWORK_FACTORY which is signature only permission. But mainline modules can't grant this permission because it's not signed with platform key. Hence, these APIs should also accept MAINLINE_NETWORK_STACK permission that allow mainline module to register/unregister network provider. Bug: 150733435 Test: atest FrameworksNetTests Change-Id: Id22113aa0db01244817b4b008f5573c5e7b317f0 Merged-In: Id22113aa0db01244817b4b008f5573c5e7b317f0 (cherry picked from aosp/1248727)
This commit is contained in:
committed by
Paul Hu
parent
ea7800cb54
commit
6617c9be42
@@ -3222,7 +3222,9 @@ public class ConnectivityManager {
|
|||||||
|
|
||||||
/** {@hide} - returns the factory serial number */
|
/** {@hide} - returns the factory serial number */
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
@RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
|
@RequiresPermission(anyOf = {
|
||||||
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
|
android.Manifest.permission.NETWORK_FACTORY})
|
||||||
public int registerNetworkFactory(Messenger messenger, String name) {
|
public int registerNetworkFactory(Messenger messenger, String name) {
|
||||||
try {
|
try {
|
||||||
return mService.registerNetworkFactory(messenger, name);
|
return mService.registerNetworkFactory(messenger, name);
|
||||||
@@ -3233,7 +3235,9 @@ public class ConnectivityManager {
|
|||||||
|
|
||||||
/** {@hide} */
|
/** {@hide} */
|
||||||
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
|
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
|
||||||
@RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
|
@RequiresPermission(anyOf = {
|
||||||
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
|
android.Manifest.permission.NETWORK_FACTORY})
|
||||||
public void unregisterNetworkFactory(Messenger messenger) {
|
public void unregisterNetworkFactory(Messenger messenger) {
|
||||||
try {
|
try {
|
||||||
mService.unregisterNetworkFactory(messenger);
|
mService.unregisterNetworkFactory(messenger);
|
||||||
@@ -3253,7 +3257,9 @@ public class ConnectivityManager {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
|
@RequiresPermission(anyOf = {
|
||||||
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
|
android.Manifest.permission.NETWORK_FACTORY})
|
||||||
public int registerNetworkProvider(@NonNull NetworkProvider provider) {
|
public int registerNetworkProvider(@NonNull NetworkProvider provider) {
|
||||||
if (provider.getProviderId() != NetworkProvider.ID_NONE) {
|
if (provider.getProviderId() != NetworkProvider.ID_NONE) {
|
||||||
throw new IllegalStateException("NetworkProviders can only be registered once");
|
throw new IllegalStateException("NetworkProviders can only be registered once");
|
||||||
@@ -3276,7 +3282,9 @@ public class ConnectivityManager {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
@SystemApi
|
@SystemApi
|
||||||
@RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
|
@RequiresPermission(anyOf = {
|
||||||
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
|
android.Manifest.permission.NETWORK_FACTORY})
|
||||||
public void unregisterNetworkProvider(@NonNull NetworkProvider provider) {
|
public void unregisterNetworkProvider(@NonNull NetworkProvider provider) {
|
||||||
try {
|
try {
|
||||||
mService.unregisterNetworkProvider(provider.getMessenger());
|
mService.unregisterNetworkProvider(provider.getMessenger());
|
||||||
@@ -3288,7 +3296,9 @@ public class ConnectivityManager {
|
|||||||
|
|
||||||
|
|
||||||
/** @hide exposed via the NetworkProvider class. */
|
/** @hide exposed via the NetworkProvider class. */
|
||||||
@RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
|
@RequiresPermission(anyOf = {
|
||||||
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
|
android.Manifest.permission.NETWORK_FACTORY})
|
||||||
public void declareNetworkRequestUnfulfillable(@NonNull NetworkRequest request) {
|
public void declareNetworkRequestUnfulfillable(@NonNull NetworkRequest request) {
|
||||||
try {
|
try {
|
||||||
mService.declareNetworkRequestUnfulfillable(request);
|
mService.declareNetworkRequestUnfulfillable(request);
|
||||||
@@ -3306,7 +3316,9 @@ public class ConnectivityManager {
|
|||||||
* Register a NetworkAgent with ConnectivityService.
|
* Register a NetworkAgent with ConnectivityService.
|
||||||
* @return Network corresponding to NetworkAgent.
|
* @return Network corresponding to NetworkAgent.
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
|
@RequiresPermission(anyOf = {
|
||||||
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
|
android.Manifest.permission.NETWORK_FACTORY})
|
||||||
public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
|
public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
|
||||||
NetworkCapabilities nc, int score, NetworkAgentConfig config) {
|
NetworkCapabilities nc, int score, NetworkAgentConfig config) {
|
||||||
return registerNetworkAgent(messenger, ni, lp, nc, score, config, NetworkProvider.ID_NONE);
|
return registerNetworkAgent(messenger, ni, lp, nc, score, config, NetworkProvider.ID_NONE);
|
||||||
@@ -3317,7 +3329,9 @@ public class ConnectivityManager {
|
|||||||
* Register a NetworkAgent with ConnectivityService.
|
* Register a NetworkAgent with ConnectivityService.
|
||||||
* @return Network corresponding to NetworkAgent.
|
* @return Network corresponding to NetworkAgent.
|
||||||
*/
|
*/
|
||||||
@RequiresPermission(android.Manifest.permission.NETWORK_FACTORY)
|
@RequiresPermission(anyOf = {
|
||||||
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK,
|
||||||
|
android.Manifest.permission.NETWORK_FACTORY})
|
||||||
public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
|
public Network registerNetworkAgent(Messenger messenger, NetworkInfo ni, LinkProperties lp,
|
||||||
NetworkCapabilities nc, int score, NetworkAgentConfig config, int providerId) {
|
NetworkCapabilities nc, int score, NetworkAgentConfig config, int providerId) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -2083,9 +2083,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void enforceNetworkFactoryPermission() {
|
private void enforceNetworkFactoryPermission() {
|
||||||
mContext.enforceCallingOrSelfPermission(
|
enforceAnyPermissionOf(
|
||||||
android.Manifest.permission.NETWORK_FACTORY,
|
android.Manifest.permission.NETWORK_FACTORY,
|
||||||
"ConnectivityService");
|
NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkSettingsPermission() {
|
private boolean checkSettingsPermission() {
|
||||||
|
|||||||
Reference in New Issue
Block a user