Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +15 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PermissionInfo; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.pm.UserInfo; Loading Loading @@ -97,6 +98,7 @@ import android.security.KeyChain; import android.security.KeyChain.KeyChainConnection; import android.service.persistentdata.PersistentDataBlockManager; import android.text.TextUtils; import android.util.EventLog; import android.util.Log; import android.util.PrintWriterPrinter; import android.util.Printer; Loading Loading @@ -6448,6 +6450,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { if (targetSdkVersion < android.os.Build.VERSION_CODES.M) { return false; } if (!isRuntimePermission(permission)) { EventLog.writeEvent(0x534e4554, "62623498", user.getIdentifier(), ""); return false; } final PackageManager packageManager = mContext.getPackageManager(); switch (grantState) { case DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED: { Loading @@ -6473,12 +6479,21 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { return true; } catch (SecurityException se) { return false; } catch (NameNotFoundException e) { return false; } finally { Binder.restoreCallingIdentity(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 public int getPermissionGrantState(ComponentName admin, String packageName, String permission) throws RemoteException { Loading Loading
services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +15 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PermissionInfo; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.pm.UserInfo; Loading Loading @@ -97,6 +98,7 @@ import android.security.KeyChain; import android.security.KeyChain.KeyChainConnection; import android.service.persistentdata.PersistentDataBlockManager; import android.text.TextUtils; import android.util.EventLog; import android.util.Log; import android.util.PrintWriterPrinter; import android.util.Printer; Loading Loading @@ -6448,6 +6450,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { if (targetSdkVersion < android.os.Build.VERSION_CODES.M) { return false; } if (!isRuntimePermission(permission)) { EventLog.writeEvent(0x534e4554, "62623498", user.getIdentifier(), ""); return false; } final PackageManager packageManager = mContext.getPackageManager(); switch (grantState) { case DevicePolicyManager.PERMISSION_GRANT_STATE_GRANTED: { Loading @@ -6473,12 +6479,21 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { return true; } catch (SecurityException se) { return false; } catch (NameNotFoundException e) { return false; } finally { Binder.restoreCallingIdentity(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 public int getPermissionGrantState(ComponentName admin, String packageName, String permission) throws RemoteException { Loading