IPackageManager.aidl revision f475ca33d9232785710aaa438f17915029dfa83b
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Copyright 2007, The Android Open Source Project
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** you may not use this file except in compliance with the License.
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** You may obtain a copy of the License at
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**     http://www.apache.org/licenses/LICENSE-2.0
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Unless required by applicable law or agreed to in writing, software
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS,
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** See the License for the specific language governing permissions and
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** limitations under the License.
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project*/
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.content.pm;
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ComponentName;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.IntentFilter;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ActivityInfo;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ApplicationInfo;
25ceb1b0bfaea56251796b08c07b963de7403d84ebAnonymous Cowardimport android.content.pm.ContainerEncryptionParams;
2649237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackbornimport android.content.pm.FeatureInfo;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageInstallObserver;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageDeleteObserver;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageDataObserver;
308946dd3355fc1dcbad872c0546e356474d4cc5deSuchi Amalapurapuimport android.content.pm.IPackageMoveObserver;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageStatsObserver;
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.InstrumentationInfo;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PackageInfo;
345ab2157bf1f105b02d3e2913cd3a33f9765b74caKenny Rootimport android.content.pm.ManifestDigest;
357767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornimport android.content.pm.PackageCleanItem;
360e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Rootimport android.content.pm.ParceledListSlice;
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ProviderInfo;
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PermissionGroupInfo;
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PermissionInfo;
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ResolveInfo;
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ServiceInfo;
420b285499db739ba50f2f839d633e763c70e67f96Amith Yamasaniimport android.content.pm.UserInfo;
43706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich canningsimport android.content.pm.VerificationParams;
440aaa0d931716e9f57a1d84d795fab2df75092756Kenny Rootimport android.content.pm.VerifierDeviceIdentity;
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri;
46b8151ecd6ef4faa5c16d0a4c3abb45ec84d1f97aAmith Yamasaniimport android.os.ParcelFileDescriptor;
471ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapuimport android.content.IntentSender;
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *  See {@link PackageManager} for documentation on most of the APIs
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *  here.
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *  {@hide}
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IPackageManager {
56ba629da331d01d74067afdda5d4255682d4b24d7Christopher Tate    boolean isPackageAvailable(String packageName, int userId);
57483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    PackageInfo getPackageInfo(String packageName, int flags, int userId);
58483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    int getPackageUid(String packageName, int userId);
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int[] getPackageGids(String packageName);
60470969346d7958f859d97d1a136b4ecc11e2a464Dianne Hackborn
61470969346d7958f859d97d1a136b4ecc11e2a464Dianne Hackborn    String[] currentToCanonicalPackageNames(in String[] names);
62470969346d7958f859d97d1a136b4ecc11e2a464Dianne Hackborn    String[] canonicalToCurrentPackageNames(in String[] names);
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    PermissionInfo getPermissionInfo(String name, int flags);
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<PermissionInfo> queryPermissionsByGroup(String group, int flags);
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    PermissionGroupInfo getPermissionGroupInfo(String name, int flags);
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<PermissionGroupInfo> getAllPermissionGroups(int flags);
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    ApplicationInfo getApplicationInfo(String packageName, int flags ,int userId);
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
74483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    ActivityInfo getActivityInfo(in ComponentName className, int flags, int userId);
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
76483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    ActivityInfo getReceiverInfo(in ComponentName className, int flags, int userId);
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
78483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    ServiceInfo getServiceInfo(in ComponentName className, int flags, int userId);
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
80483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    ProviderInfo getProviderInfo(in ComponentName className, int flags, int userId);
81361199b5e742c6635d4d7a03de6cf37b31cf442cDianne Hackborn
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int checkPermission(String permName, String pkgName);
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int checkUidPermission(String permName, int uid);
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean addPermission(in PermissionInfo info);
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void removePermission(String name);
89e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn
90e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn    void grantPermission(String packageName, String permissionName);
91e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn
92e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn    void revokePermission(String packageName, String permissionName);
93e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn
94854060af30f928c0a65591e9c8314ae17056e6b8Dianne Hackborn    boolean isProtectedBroadcast(String actionName);
95854060af30f928c0a65591e9c8314ae17056e6b8Dianne Hackborn
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int checkSignatures(String pkg1, String pkg2);
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
98766cbfe44be3c5013a6a22bd6cd8ad1055a37256Dianne Hackborn    int checkUidSignatures(int uid1, int uid2);
99766cbfe44be3c5013a6a22bd6cd8ad1055a37256Dianne Hackborn
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String[] getPackagesForUid(int uid);
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getNameForUid(int uid);
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getUidForSharedUser(String sharedUserName);
105dd72c9ed558158f889a8cdfed8a108553ba5a562Ben Gruver
106dd72c9ed558158f889a8cdfed8a108553ba5a562Ben Gruver    int getFlagsForUid(int uid);
107dd72c9ed558158f889a8cdfed8a108553ba5a562Ben Gruver
108483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    ResolveInfo resolveIntent(in Intent intent, String resolvedType, int flags, int userId);
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ResolveInfo> queryIntentActivities(in Intent intent,
111483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani            String resolvedType, int flags, int userId);
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ResolveInfo> queryIntentActivityOptions(
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            in ComponentName caller, in Intent[] specifics,
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            in String[] specificTypes, in Intent intent,
116483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani            String resolvedType, int flags, int userId);
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ResolveInfo> queryIntentReceivers(in Intent intent,
119483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani            String resolvedType, int flags, int userId);
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ResolveInfo resolveService(in Intent intent,
122483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani            String resolvedType, int flags, int userId);
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ResolveInfo> queryIntentServices(in Intent intent,
125483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani            String resolvedType, int flags, int userId);
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
12785f5f8132015d8a5043ea4413702420d0d157c9fJeff Sharkey    List<ResolveInfo> queryIntentContentProviders(in Intent intent,
12885f5f8132015d8a5043ea4413702420d0d157c9fJeff Sharkey            String resolvedType, int flags, int userId);
12985f5f8132015d8a5043ea4413702420d0d157c9fJeff Sharkey
1300e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root    /**
1310e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root     * This implements getInstalledPackages via a "last returned row"
1320e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root     * mechanism that is not exposed in the API. This is to get around the IPC
1330e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root     * limit that kicks in when flags are included that bloat up the data
1340e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root     * returned.
1350e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root     */
136d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaacDianne Hackborn    ParceledListSlice getInstalledPackages(int flags, in int userId);
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1380e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root    /**
139e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn     * This implements getPackagesHoldingPermissions via a "last returned row"
140e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn     * mechanism that is not exposed in the API. This is to get around the IPC
141e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn     * limit that kicks in when flags are included that bloat up the data
142e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn     * returned.
143e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn     */
144e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn    ParceledListSlice getPackagesHoldingPermissions(in String[] permissions,
145d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaacDianne Hackborn            int flags, int userId);
146e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn
147e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn    /**
1480e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root     * This implements getInstalledApplications via a "last returned row"
1490e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root     * mechanism that is not exposed in the API. This is to get around the IPC
1500e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root     * limit that kicks in when flags are included that bloat up the data
1510e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root     * returned.
1520e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root     */
153d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaacDianne Hackborn    ParceledListSlice getInstalledApplications(int flags, int userId);
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieve all applications that are marked as persistent.
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return A List&lt;applicationInfo> containing one entry for each persistent
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *         application.
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ApplicationInfo> getPersistentApplications(int flags);
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
163483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    ProviderInfo resolveContentProvider(String name, int flags, int userId);
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieve sync information for all content providers.
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param outNames Filled in with a list of the root names of the content
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *                 providers that can sync.
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param outInfo Filled in with a list of the ProviderInfo for each
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *                name in 'outNames'.
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void querySyncProviders(inout List<String> outNames,
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            inout List<ProviderInfo> outInfo);
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ProviderInfo> queryContentProviders(
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String processName, int uid, int flags);
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    InstrumentationInfo getInstrumentationInfo(
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            in ComponentName className, int flags);
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<InstrumentationInfo> queryInstrumentation(
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String targetPackage, int flags);
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Install a package.
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param packageURI The location of the package file to install.
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer a callback to use to notify when the package installation in finished.
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param flags - possible values: {@link #FORWARD_LOCK_PACKAGE},
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #REPLACE_EXISITING_PACKAGE}
19265e13171e12cb9e9fc2f608d0c8a92cd3c098648Jacek Surazski     * @param installerPackageName Optional package name of the application that is performing the
19365e13171e12cb9e9fc2f608d0c8a92cd3c098648Jacek Surazski     * installation. This identifies which market the package came from.
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
19565e13171e12cb9e9fc2f608d0c8a92cd3c098648Jacek Surazski    void installPackage(in Uri packageURI, IPackageInstallObserver observer, int flags,
19665e13171e12cb9e9fc2f608d0c8a92cd3c098648Jacek Surazski            in String installerPackageName);
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1981bb6906c7a903ee6427c8ff37bdc5896c386ff73Christopher Tate    void finishPackageInstall(int token);
1991bb6906c7a903ee6427c8ff37bdc5896c386ff73Christopher Tate
200880119bf43d738ca632b5d3861eb52d655c1c0fcDianne Hackborn    void setInstallerPackageName(in String targetPackage, in String installerPackageName);
201880119bf43d738ca632b5d3861eb52d655c1c0fcDianne Hackborn
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
20367df64b3a48a8157d08a98fa90135d0ac0ee621cAmith Yamasani     * Delete a package for a specific user.
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param packageName The fully qualified name of the package to delete.
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer a callback to use to notify when the package deletion in finished.
20767df64b3a48a8157d08a98fa90135d0ac0ee621cAmith Yamasani     * @param userId the id of the user for whom to delete the package
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param flags - possible values: {@link #DONT_DELETE_DATA}
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
21067df64b3a48a8157d08a98fa90135d0ac0ee621cAmith Yamasani    void deletePackageAsUser(in String packageName, IPackageDeleteObserver observer,
21167df64b3a48a8157d08a98fa90135d0ac0ee621cAmith Yamasani            int userId, int flags);
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
21365e13171e12cb9e9fc2f608d0c8a92cd3c098648Jacek Surazski    String getInstallerPackageName(in String packageName);
21465e13171e12cb9e9fc2f608d0c8a92cd3c098648Jacek Surazski
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void addPackageToPreferred(String packageName);
21667df64b3a48a8157d08a98fa90135d0ac0ee621cAmith Yamasani
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void removePackageFromPreferred(String packageName);
21867df64b3a48a8157d08a98fa90135d0ac0ee621cAmith Yamasani
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<PackageInfo> getPreferredPackages(int flags);
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2218a2ed1d7c0c4f6476e39cc37d9ebd29c7562ce01Dianne Hackborn    void resetPreferredActivities(int userId);
2228a2ed1d7c0c4f6476e39cc37d9ebd29c7562ce01Dianne Hackborn
223e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani    ResolveInfo getLastChosenActivity(in Intent intent,
224e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani            String resolvedType, int flags);
225e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani
226e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani    void setLastChosenActivity(in Intent intent, String resolvedType, int flags,
227e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani            in IntentFilter filter, int match, in ComponentName activity);
228e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void addPreferredActivity(in IntentFilter filter, int match,
230a3f133afe885f9e005dfc0584cb7b3b90f75f665Amith Yamasani            in ComponentName[] set, in ComponentName activity, int userId);
2318dbe612dc60526d635e57257b58627b33a099678Satish Sampath
2328dbe612dc60526d635e57257b58627b33a099678Satish Sampath    void replacePreferredActivity(in IntentFilter filter, int match,
2338dbe612dc60526d635e57257b58627b33a099678Satish Sampath            in ComponentName[] set, in ComponentName activity);
2348dbe612dc60526d635e57257b58627b33a099678Satish Sampath
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void clearPackagePreferredActivities(String packageName);
2368dbe612dc60526d635e57257b58627b33a099678Satish Sampath
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getPreferredActivities(out List<IntentFilter> outFilters,
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out List<ComponentName> outActivities, String packageName);
239e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani
240f475ca33d9232785710aaa438f17915029dfa83bSander Alewijnse    void addPersistentPreferredActivity(in IntentFilter filter, in ComponentName activity, int userId);
241f475ca33d9232785710aaa438f17915029dfa83bSander Alewijnse
242f475ca33d9232785710aaa438f17915029dfa83bSander Alewijnse    void clearPackagePersistentPreferredActivities(String packageName, int userId);
243f475ca33d9232785710aaa438f17915029dfa83bSander Alewijnse
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
245a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate     * Report the set of 'Home' activity candidates, plus (if any) which of them
246a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate     * is the current "always use this one" setting.
247a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate     */
248a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate     ComponentName getHomeActivities(out List<ResolveInfo> outHomeCandidates);
249a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate
250a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate    /**
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * As per {@link android.content.pm.PackageManager#setComponentEnabledSetting}.
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setComponentEnabledSetting(in ComponentName componentName,
254483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani            in int newState, in int flags, int userId);
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * As per {@link android.content.pm.PackageManager#getComponentEnabledSetting}.
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
259483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    int getComponentEnabledSetting(in ComponentName componentName, int userId);
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * As per {@link android.content.pm.PackageManager#setApplicationEnabledSetting}.
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2643fa3c28a356108a6558b6b54a0b10e1a5cc4f1b6Dianne Hackborn    void setApplicationEnabledSetting(in String packageName, in int newState, int flags,
2653fa3c28a356108a6558b6b54a0b10e1a5cc4f1b6Dianne Hackborn            int userId, String callingPackage);
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * As per {@link android.content.pm.PackageManager#getApplicationEnabledSetting}.
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
270483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    int getApplicationEnabledSetting(in String packageName, int userId);
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
273e7f972122db87dc54e41ed1a6e417534d43bca3aDianne Hackborn     * Set whether the given package should be considered stopped, making
274e7f972122db87dc54e41ed1a6e417534d43bca3aDianne Hackborn     * it not visible to implicit intents that filter out stopped packages.
275e7f972122db87dc54e41ed1a6e417534d43bca3aDianne Hackborn     */
276483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    void setPackageStoppedState(String packageName, boolean stopped, int userId);
277e7f972122db87dc54e41ed1a6e417534d43bca3aDianne Hackborn
278e7f972122db87dc54e41ed1a6e417534d43bca3aDianne Hackborn    /**
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Free storage by deleting LRU sorted list of cache files across
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * all applications. If the currently available free storage
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on the device is greater than or equal to the requested
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * free storage, no cache files are cleared. If the currently
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available storage on the device is less than the requested
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * free storage, some or all of the cache files across
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * all applications are deleted (based on last accessed time)
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * to increase the free storage space on the device to
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the requested value. There is no guarantee that clearing all
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the cache files from all applications will clear up
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * enough storage to achieve the desired value.
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param freeStorageSize The number of bytes of storage to be
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * freed by the system. Say if freeStorageSize is XX,
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and the current free storage is YY,
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if XX is less than YY, just return. if not free XX-YY number
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of bytes if possible.
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer call back used to notify when
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the operation is completed
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     void freeStorageAndNotify(in long freeStorageSize,
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project             IPackageDataObserver observer);
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Free storage by deleting LRU sorted list of cache files across
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * all applications. If the currently available free storage
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on the device is greater than or equal to the requested
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * free storage, no cache files are cleared. If the currently
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available storage on the device is less than the requested
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * free storage, some or all of the cache files across
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * all applications are deleted (based on last accessed time)
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * to increase the free storage space on the device to
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the requested value. There is no guarantee that clearing all
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the cache files from all applications will clear up
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * enough storage to achieve the desired value.
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param freeStorageSize The number of bytes of storage to be
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * freed by the system. Say if freeStorageSize is XX,
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and the current free storage is YY,
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if XX is less than YY, just return. if not free XX-YY number
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of bytes if possible.
3181ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapu     * @param pi IntentSender call back used to
3191ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapu     * notify when the operation is completed.May be null
3201ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapu     * to indicate that no call back is desired.
3211ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapu     */
322bc806f65edc33f6eda0f475ac84e5e037a013a90Suchi Amalapurapu     void freeStorage(in long freeStorageSize,
3231ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapu             in IntentSender pi);
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Delete all the cache files in an applications cache directory
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param packageName The package name of the application whose cache
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * files need to be deleted
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer a callback used to notify when the deletion is finished.
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void deleteApplicationCacheFiles(in String packageName, IPackageDataObserver observer);
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Clear the user data directory of an application.
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param packageName The package name of the application whose cache
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * files need to be deleted
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer a callback used to notify when the operation is completed.
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
339483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani    void clearApplicationUserData(in String packageName, IPackageDataObserver observer, int userId);
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project   /**
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get package statistics including the code, data and cache size for
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * an already installed package
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param packageName The package name of the application
3450c3804950236fe170ebf6cc7a5f1e3e305b8f315Dianne Hackborn     * @param userHandle Which user the size should be retrieved for
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer a callback to use to notify when the asynchronous
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * retrieval of information is complete.
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3490c3804950236fe170ebf6cc7a5f1e3e305b8f315Dianne Hackborn    void getPackageSizeInfo(in String packageName, int userHandle, IPackageStatsObserver observer);
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get a list of shared libraries that are available on the
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * system.
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String[] getSystemSharedLibraryNames();
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
35749237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn    /**
35849237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn     * Get a list of features that are available on the
35949237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn     * system.
36049237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn     */
36149237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn    FeatureInfo[] getSystemAvailableFeatures();
36249237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn
363039c68e75606e837cf021815a0210836724574adDianne Hackborn    boolean hasSystemFeature(String name);
364039c68e75606e837cf021815a0210836724574adDianne Hackborn
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enterSafeMode();
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isSafeMode();
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void systemReady();
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean hasSystemUidErrors();
369661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn
370661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn    /**
371661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn     * Ask the package manager to perform boot-time dex-opt of all
372661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn     * existing packages.
373661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn     */
374661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn    void performBootDexOpt();
375661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn
3765c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn    /**
3775c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn     * Ask the package manager to perform dex-opt (if needed) on the given
3785c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn     * package, if it already hasn't done mode.  Only does this if running
3795c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn     * in the special development "no pre-dexopt" mode.
3805c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn     */
3815c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn    boolean performDexOpt(String packageName);
382af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu
383af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu    /**
384af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu     * Update status of external media on the package manager to scan and
385af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu     * install packages installed on the external media. Like say the
386af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu     * MountService uses this to call into the package manager to update
387af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu     * status of sdcard.
388af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu     */
389e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu    void updateExternalMediaStatus(boolean mounted, boolean reportStatus);
390af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu
3917767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn    PackageCleanItem nextPackageToClean(in PackageCleanItem lastPackage);
3928946dd3355fc1dcbad872c0546e356474d4cc5deSuchi Amalapurapu
3938946dd3355fc1dcbad872c0546e356474d4cc5deSuchi Amalapurapu    void movePackage(String packageName, IPackageMoveObserver observer, int flags);
394e1d7c711df3e3a2d2f195457882aa4ddb5626167Rich Cannings
395d7c096845dee7616095eda0fe9e7aa08f0ba9c20Dianne Hackborn    boolean addPermissionAsync(in PermissionInfo info);
39640e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu
39740e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu    boolean setInstallLocation(int loc);
39840e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu    int getInstallLocation();
3990b285499db739ba50f2f839d633e763c70e67f96Amith Yamasani
4005ab2157bf1f105b02d3e2913cd3a33f9765b74caKenny Root    void installPackageWithVerification(in Uri packageURI, in IPackageInstallObserver observer,
4015ab2157bf1f105b02d3e2913cd3a33f9765b74caKenny Root            int flags, in String installerPackageName, in Uri verificationURI,
402e1d7c711df3e3a2d2f195457882aa4ddb5626167Rich Cannings            in ManifestDigest manifestDigest, in ContainerEncryptionParams encryptionParams);
4035ab2157bf1f105b02d3e2913cd3a33f9765b74caKenny Root
404706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings    void installPackageWithVerificationAndEncryption(in Uri packageURI,
405706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings            in IPackageInstallObserver observer, int flags, in String installerPackageName,
406706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings            in VerificationParams verificationParams,
407706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings            in ContainerEncryptionParams encryptionParams);
408706e8ba26bf0de19ad5f736516dae40c4c88c2d7rich cannings
40967df64b3a48a8157d08a98fa90135d0ac0ee621cAmith Yamasani    int installExistingPackageAsUser(String packageName, int userId);
4107767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn
4113a9b5fbb97e65019abec97f172b4cbf2100d1225Kenny Root    void verifyPendingInstall(int id, int verificationCode);
412d9ef3e5495db1c46bcfcc1a2d4386af8db6deb0crich cannings    void extendVerificationTimeout(int id, int verificationCodeAtTimeout, long millisecondsToDelay);
4130aaa0d931716e9f57a1d84d795fab2df75092756Kenny Root
4140aaa0d931716e9f57a1d84d795fab2df75092756Kenny Root    VerifierDeviceIdentity getVerifierDeviceIdentity();
41558f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn
41658f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn    boolean isFirstBoot();
41713579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn    boolean isOnlyCoreApps();
418742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani
4195d32e772b3a19c1ac84e665f2885755427d590c8Jeff Sharkey    void setPermissionEnforced(String permission, boolean enforced);
4205d32e772b3a19c1ac84e665f2885755427d590c8Jeff Sharkey    boolean isPermissionEnforced(String permission);
421f6f7f1d2dc6e8fad5d6ff9a56af9929488873b4fJeff Sharkey
422f6f7f1d2dc6e8fad5d6ff9a56af9929488873b4fJeff Sharkey    /** Reflects current DeviceStorageMonitorService state */
423f6f7f1d2dc6e8fad5d6ff9a56af9929488873b4fJeff Sharkey    boolean isStorageLow();
424655d0e2029e6ae77a47e922dce4c4989818b8dd1Amith Yamasani
425655d0e2029e6ae77a47e922dce4c4989818b8dd1Amith Yamasani    boolean setApplicationBlockedSettingAsUser(String packageName, boolean blocked, int userId);
426655d0e2029e6ae77a47e922dce4c4989818b8dd1Amith Yamasani    boolean getApplicationBlockedSettingAsUser(String packageName, int userId);
4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
428