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

am: 781c8cb65e

Change-Id: I8417adc402df33b30b310ea87a27e1669fb5dad6
This commit is contained in:
Makoto Onuki
2017-04-25 22:48:57 +00:00
committed by android-build-merger
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;