Loading services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +15 −0 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManagerInternal; import android.content.pm.ParceledListSlice; import android.content.pm.PermissionInfo; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.pm.UserInfo; Loading Loading @@ -123,6 +124,7 @@ import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; import android.util.EventLog; import android.util.Log; import android.util.Pair; import android.util.Slog; Loading Loading @@ -8626,6 +8628,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { < 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 @@ -8651,12 +8657,21 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { return true; } catch (SecurityException se) { return false; } catch (NameNotFoundException e) { return false; } finally { 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 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 @@ -71,6 +71,7 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManagerInternal; import android.content.pm.ParceledListSlice; import android.content.pm.PermissionInfo; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.pm.UserInfo; Loading Loading @@ -123,6 +124,7 @@ import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; import android.util.EventLog; import android.util.Log; import android.util.Pair; import android.util.Slog; Loading Loading @@ -8626,6 +8628,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { < 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 @@ -8651,12 +8657,21 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { return true; } catch (SecurityException se) { return false; } catch (NameNotFoundException e) { return false; } finally { 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 public int getPermissionGrantState(ComponentName admin, String packageName, String permission) throws RemoteException { Loading