resolve merge conflicts of 56a2b52937 to nyc-dev am: d7dcc3e227 am: 34377e0357 am: 68cce397b3

am: 4453c3cda2

Change-Id: Ic48643564a3685bc602c66901c9761b741b148a5
This commit is contained in:
Tony Mak
2017-09-11 14:36:08 +00:00
committed by android-build-merger

View File

@@ -71,6 +71,7 @@ import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.PackageManagerInternal; import android.content.pm.PackageManagerInternal;
import android.content.pm.ParceledListSlice; import android.content.pm.ParceledListSlice;
import android.content.pm.PermissionInfo;
import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo; import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo; import android.content.pm.UserInfo;
@@ -123,6 +124,7 @@ import android.telephony.TelephonyManager;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.EventLog;
import android.util.Log; import android.util.Log;
import android.util.Pair; import android.util.Pair;
import android.util.Slog; import android.util.Slog;
@@ -8626,6 +8628,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
< android.os.Build.VERSION_CODES.M) { < android.os.Build.VERSION_CODES.M) {
return false; return false;
} }
if (!isRuntimePermission(permission)) {
EventLog.writeEvent(0x534e4554, "62623498", user.getIdentifier(), "");
return false;
}
final PackageManager packageManager = mContext.getPackageManager(); final PackageManager packageManager = mContext.getPackageManager();
switch (grantState) { switch (grantState) {
case DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED: { case DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED: {
@@ -8651,12 +8657,21 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
return true; return true;
} catch (SecurityException se) { } catch (SecurityException se) {
return false; return false;
} catch (NameNotFoundException e) {
return false;
} finally { } finally {
mInjector.binderRestoreCallingIdentity(ident); mInjector.binderRestoreCallingIdentity(ident);
} }
} }
} }
public boolean isRuntimePermission(String permissionName) throws NameNotFoundException {
final PackageManager packageManager = mContext.getPackageManager();
PermissionInfo permissionInfo = packageManager.getPermissionInfo(permissionName, 0);
return (permissionInfo.protectionLevel & PermissionInfo.PROTECTION_MASK_BASE)
== PermissionInfo.PROTECTION_DANGEROUS;
}
@Override @Override
public int getPermissionGrantState(ComponentName admin, String packageName, public int getPermissionGrantState(ComponentName admin, String packageName,
String permission) throws RemoteException { String permission) throws RemoteException {