• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 **
3 ** Copyright 2017, The Android Open Source Project
4 **
5 ** Licensed under the Apache License, Version 2.0 (the "License");
6 ** you may not use this file except in compliance with the License.
7 ** You may obtain a copy of the License at
8 **
9 **     http://www.apache.org/licenses/LICENSE-2.0
10 **
11 ** Unless required by applicable law or agreed to in writing, software
12 ** distributed under the License is distributed on an "AS IS" BASIS,
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ** See the License for the specific language governing permissions and
15 ** limitations under the License.
16 */
17 
18 package android.content.pm;
19 
20 /**
21  * Parallel implementation of certain {@link PackageManager} APIs that need to
22  * be exposed to native code.
23  * <p>These APIs are a parallel definition to the APIs in PackageManager, so,
24  * they can technically diverge. However, it's good practice to keep these
25  * APIs in sync with each other.
26  * <p>Because these APIs are exposed to native code, it's possible they will
27  * be exposed to privileged components [such as UID 0]. Care should be taken
28  * to avoid exposing potential security holes for methods where permission
29  * checks are bypassed based upon UID alone.
30  *
31  * @hide
32  */
33 interface IPackageManagerNative {
34     /**
35      * Returns a set of names for the given UIDs.
36      * IMPORTANT: Unlike the Java version of this API, unknown UIDs are
37      * not represented by 'null's. Instead, they are represented by empty
38      * strings.
39      */
getNamesForUids(in int[] uids)40     @utf8InCpp String[] getNamesForUids(in int[] uids);
41 
42     /**
43      * Returns the name of the installer (a package) which installed the named
44      * package. Preloaded packages return the string "preload". Sideloaded packages
45      * return an empty string. Unknown or unknowable are returned as empty strings.
46      */
47 
getInstallerForPackage(in String packageName)48     @utf8InCpp String getInstallerForPackage(in String packageName);
49 
50     /**
51      * Returns the version code of the named package.
52      * Unknown or unknowable versions are returned as 0.
53      */
54 
getVersionCodeForPackage(in String packageName)55     int getVersionCodeForPackage(in String packageName);
56 
57 }
58