1cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root/*
2cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * Copyright (C) 2011 The Android Open Source Project
3cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root *
4cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * Licensed under the Apache License, Version 2.0 (the "License");
5cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * you may not use this file except in compliance with the License.
6cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * You may obtain a copy of the License at
7cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root *
8cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root *      http://www.apache.org/licenses/LICENSE-2.0
9cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root *
10cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * Unless required by applicable law or agreed to in writing, software
11cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * distributed under the License is distributed on an "AS IS" BASIS,
12cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * See the License for the specific language governing permissions and
14cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root * limitations under the License.
15cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root */
16cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root
17cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootpackage com.android.server.pm;
18cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root
19cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport android.content.pm.ApplicationInfo;
20cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root
21cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootimport java.util.HashSet;
22cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root
23cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Rootclass GrantedPermissions {
24cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root    int pkgFlags;
25cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root
26cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root    HashSet<String> grantedPermissions = new HashSet<String>();
27cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root
28cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root    int[] gids;
29cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root
30cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root    GrantedPermissions(int pkgFlags) {
31cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root        setFlags(pkgFlags);
32cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root    }
33cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root
34cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root    @SuppressWarnings("unchecked")
35cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root    GrantedPermissions(GrantedPermissions base) {
36cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root        pkgFlags = base.pkgFlags;
37cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root        grantedPermissions = (HashSet<String>) base.grantedPermissions.clone();
38cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root
39cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root        if (base.gids != null) {
40cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root            gids = base.gids.clone();
41cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root        }
42cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root    }
43cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root
44cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root    void setFlags(int pkgFlags) {
45cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root        this.pkgFlags = pkgFlags
46cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root                & (ApplicationInfo.FLAG_SYSTEM
47dd72c9ed558158f889a8cdfed8a108553ba5a562Ben Gruver                        | ApplicationInfo.FLAG_PRIVILEGED
48cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root                        | ApplicationInfo.FLAG_FORWARD_LOCK
49cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root                        | ApplicationInfo.FLAG_EXTERNAL_STORAGE);
50cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root    }
51cf0b38ca6e5aa5efded7dbdbb623f6cd2746c96aKenny Root}
52