Merge "DeviceAdminService must be protected with BIND_DEVICE_ADMIN." into oc-dev

This commit is contained in:
TreeHugger Robot
2017-04-25 22:42:02 +00:00
committed by Android (Google) Code Review
2 changed files with 8 additions and 4 deletions

View File

@@ -1518,7 +1518,8 @@ public class DevicePolicyManager {
* Service action: Action for a service that device owner and profile owner can optionally
* own. If a device owner or a profile owner has such a service, the system tries to keep
* a bound connection to it, in order to keep their process always running.
* The service must not be exported.
* The service must be protected with the {@link android.Manifest.permission#BIND_DEVICE_ADMIN}
* permission.
*/
@SdkConstant(SdkConstantType.SERVICE_ACTION)
public static final String ACTION_DEVICE_ADMIN_SERVICE

View File

@@ -15,6 +15,7 @@
*/
package com.android.server.devicepolicy;
import android.Manifest.permission;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.admin.DevicePolicyManager;
@@ -115,10 +116,12 @@ public class DeviceAdminServiceController {
return null;
}
final ServiceInfo si = list.get(0).serviceInfo;
if (si.exported) {
Log.e(TAG, "DeviceAdminService must not be exported: '"
if (!permission.BIND_DEVICE_ADMIN.equals(si.permission)) {
Log.e(TAG, "DeviceAdminService "
+ si.getComponentName().flattenToShortString()
+ "' will be ignored.");
+ " must be protected with " + permission.BIND_DEVICE_ADMIN
+ ".");
return null;
}
return si;