• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.packageinstaller.permission.model;
18 
19 import android.app.AppOpsManager;
20 import android.content.pm.PackageManager;
21 
22 public final class Permission {
23     private final String mName;
24     private final int mAppOp;
25 
26     private boolean mGranted;
27     private boolean mAppOpAllowed;
28     private int mFlags;
29 
Permission(String name, boolean granted, int appOp, boolean appOpAllowed, int flags)30     public Permission(String name, boolean granted,
31             int appOp, boolean appOpAllowed, int flags) {
32         mName = name;
33         mGranted = granted;
34         mAppOp = appOp;
35         mAppOpAllowed = appOpAllowed;
36         mFlags = flags;
37     }
38 
getName()39     public String getName() {
40         return mName;
41     }
42 
getAppOp()43     public int getAppOp() {
44         return mAppOp;
45     }
46 
getFlags()47     public int getFlags() {
48         return mFlags;
49     }
50 
hasAppOp()51     public boolean hasAppOp() {
52         return mAppOp != AppOpsManager.OP_NONE;
53     }
54 
isGranted()55     public boolean isGranted() {
56         return mGranted;
57     }
58 
setGranted(boolean mGranted)59     public void setGranted(boolean mGranted) {
60         this.mGranted = mGranted;
61     }
62 
isAppOpAllowed()63     public boolean isAppOpAllowed() {
64         return mAppOpAllowed;
65     }
66 
isUserFixed()67     public boolean isUserFixed() {
68         return (mFlags & PackageManager.FLAG_PERMISSION_USER_FIXED) != 0;
69     }
70 
setUserFixed(boolean userFixed)71     public void setUserFixed(boolean userFixed) {
72         if (userFixed) {
73             mFlags |= PackageManager.FLAG_PERMISSION_USER_FIXED;
74         } else {
75             mFlags &= ~PackageManager.FLAG_PERMISSION_USER_FIXED;
76         }
77     }
78 
isSystemFixed()79     public boolean isSystemFixed() {
80         return (mFlags & PackageManager.FLAG_PERMISSION_SYSTEM_FIXED) != 0;
81     }
82 
isPolicyFixed()83     public boolean isPolicyFixed() {
84         return (mFlags & PackageManager.FLAG_PERMISSION_POLICY_FIXED) != 0;
85     }
86 
isUserSet()87     public boolean isUserSet() {
88         return (mFlags & PackageManager.FLAG_PERMISSION_USER_SET) != 0;
89     }
90 
isGrantedByDefault()91     public boolean isGrantedByDefault() {
92         return (mFlags & PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT) != 0;
93     }
94 
setUserSet(boolean userSet)95     public void setUserSet(boolean userSet) {
96         if (userSet) {
97             mFlags |= PackageManager.FLAG_PERMISSION_USER_SET;
98         } else {
99             mFlags &= ~PackageManager.FLAG_PERMISSION_USER_SET;
100         }
101     }
102 
setPolicyFixed(boolean policyFixed)103     public void setPolicyFixed(boolean policyFixed) {
104         if (policyFixed) {
105             mFlags |= PackageManager.FLAG_PERMISSION_POLICY_FIXED;
106         } else {
107             mFlags &= ~PackageManager.FLAG_PERMISSION_POLICY_FIXED;
108         }
109     }
110 
shouldRevokeOnUpgrade()111     public boolean shouldRevokeOnUpgrade() {
112         return (mFlags & PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE) != 0;
113     }
114 
setRevokeOnUpgrade(boolean revokeOnUpgrade)115     public void setRevokeOnUpgrade(boolean revokeOnUpgrade) {
116         if (revokeOnUpgrade) {
117             mFlags |= PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE;
118         } else {
119             mFlags &= ~PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE;
120         }
121     }
122 
setAppOpAllowed(boolean mAppOpAllowed)123     public void setAppOpAllowed(boolean mAppOpAllowed) {
124         this.mAppOpAllowed = mAppOpAllowed;
125     }
126 }