1 /*
2  * Copyright (C) 2014 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 android.content.pm;
18 
19 import android.content.pm.IPackageDeleteObserver2;
20 import android.content.pm.IPackageInstallerCallback;
21 import android.content.pm.IPackageInstallerSession;
22 import android.content.pm.PackageInstaller;
23 import android.content.pm.ParceledListSlice;
24 import android.content.pm.VersionedPackage;
25 import android.content.IntentSender;
26 import android.os.RemoteCallback;
27 
28 import android.graphics.Bitmap;
29 
30 /** {@hide} */
31 interface IPackageInstaller {
createSession(in PackageInstaller.SessionParams params, String installerPackageName, String installerAttributionTag, int userId)32     int createSession(in PackageInstaller.SessionParams params, String installerPackageName,
33             String installerAttributionTag, int userId);
34 
updateSessionAppIcon(int sessionId, in Bitmap appIcon)35     void updateSessionAppIcon(int sessionId, in Bitmap appIcon);
updateSessionAppLabel(int sessionId, String appLabel)36     void updateSessionAppLabel(int sessionId, String appLabel);
37 
abandonSession(int sessionId)38     void abandonSession(int sessionId);
39 
openSession(int sessionId)40     IPackageInstallerSession openSession(int sessionId);
41 
getSessionInfo(int sessionId)42     PackageInstaller.SessionInfo getSessionInfo(int sessionId);
43 
getAllSessions(int userId)44     ParceledListSlice getAllSessions(int userId);
getMySessions(String installerPackageName, int userId)45     ParceledListSlice getMySessions(String installerPackageName, int userId);
46 
getStagedSessions()47     ParceledListSlice getStagedSessions();
48 
registerCallback(IPackageInstallerCallback callback, int userId)49     void registerCallback(IPackageInstallerCallback callback, int userId);
unregisterCallback(IPackageInstallerCallback callback)50     void unregisterCallback(IPackageInstallerCallback callback);
51 
52     @UnsupportedAppUsage(maxTargetSdk = 30, trackingBug = 170729553)
uninstall(in VersionedPackage versionedPackage, String callerPackageName, int flags, in IntentSender statusReceiver, int userId)53     void uninstall(in VersionedPackage versionedPackage, String callerPackageName, int flags,
54             in IntentSender statusReceiver, int userId);
55 
uninstallExistingPackage(in VersionedPackage versionedPackage, String callerPackageName, in IntentSender statusReceiver, int userId)56     void uninstallExistingPackage(in VersionedPackage versionedPackage, String callerPackageName,
57             in IntentSender statusReceiver, int userId);
58 
installExistingPackage(String packageName, int installFlags, int installReason, in IntentSender statusReceiver, int userId, in List<String> whiteListedPermissions)59     void installExistingPackage(String packageName, int installFlags, int installReason,
60             in IntentSender statusReceiver, int userId, in List<String> whiteListedPermissions);
61 
setPermissionsResult(int sessionId, boolean accepted)62     void setPermissionsResult(int sessionId, boolean accepted);
63 
bypassNextStagedInstallerCheck(boolean value)64     void bypassNextStagedInstallerCheck(boolean value);
65 
bypassNextAllowedApexUpdateCheck(boolean value)66     void bypassNextAllowedApexUpdateCheck(boolean value);
67 
disableVerificationForUid(int uid)68     void disableVerificationForUid(int uid);
69 
setAllowUnlimitedSilentUpdates(String installerPackageName)70     void setAllowUnlimitedSilentUpdates(String installerPackageName);
setSilentUpdatesThrottleTime(long throttleTimeInSeconds)71     void setSilentUpdatesThrottleTime(long throttleTimeInSeconds);
checkInstallConstraints(String installerPackageName, in List<String> packageNames, in PackageInstaller.InstallConstraints constraints, in RemoteCallback callback)72     void checkInstallConstraints(String installerPackageName, in List<String> packageNames,
73             in PackageInstaller.InstallConstraints constraints, in RemoteCallback callback);
waitForInstallConstraints(String installerPackageName, in List<String> packageNames, in PackageInstaller.InstallConstraints constraints, in IntentSender callback, long timeout)74     void waitForInstallConstraints(String installerPackageName, in List<String> packageNames,
75             in PackageInstaller.InstallConstraints constraints, in IntentSender callback,
76             long timeout);
77 }
78