IPackageManager.aidl revision 8dbe612dc60526d635e57257b58627b33a099678
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;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageInstallObserver;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageDeleteObserver;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageDataObserver;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageStatsObserver;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.InstrumentationInfo;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PackageInfo;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ProviderInfo;
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PermissionGroupInfo;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PermissionInfo;
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ResolveInfo;
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ServiceInfo;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri;
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.app.PendingIntent;
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *  See {@link PackageManager} for documentation on most of the APIs
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *  here.
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *  {@hide}
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IPackageManager {
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    PackageInfo getPackageInfo(String packageName, int flags);
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getPackageUid(String packageName);
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int[] getPackageGids(String packageName);
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    PermissionInfo getPermissionInfo(String name, int flags);
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<PermissionInfo> queryPermissionsByGroup(String group, int flags);
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    PermissionGroupInfo getPermissionGroupInfo(String name, int flags);
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<PermissionGroupInfo> getAllPermissionGroups(int flags);
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ApplicationInfo getApplicationInfo(String packageName, int flags);
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ActivityInfo getActivityInfo(in ComponentName className, int flags);
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ActivityInfo getReceiverInfo(in ComponentName className, int flags);
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ServiceInfo getServiceInfo(in ComponentName className, int flags);
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int checkPermission(String permName, String pkgName);
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int checkUidPermission(String permName, int uid);
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean addPermission(in PermissionInfo info);
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void removePermission(String name);
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int checkSignatures(String pkg1, String pkg2);
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String[] getPackagesForUid(int uid);
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String getNameForUid(int uid);
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getUidForSharedUser(String sharedUserName);
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ResolveInfo resolveIntent(in Intent intent, String resolvedType, int flags);
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
84eae850cefe7e149f396c9e8ca1f34ec02b20a3f0Mihai Preda    ResolveInfo resolveIntentForPackage(in Intent intent, String resolvedType, int flags,
85eae850cefe7e149f396c9e8ca1f34ec02b20a3f0Mihai Preda            String packageName);
86eae850cefe7e149f396c9e8ca1f34ec02b20a3f0Mihai Preda
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ResolveInfo> queryIntentActivities(in Intent intent,
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType, int flags);
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ResolveInfo> queryIntentActivityOptions(
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            in ComponentName caller, in Intent[] specifics,
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            in String[] specificTypes, in Intent intent,
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType, int flags);
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ResolveInfo> queryIntentReceivers(in Intent intent,
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType, int flags);
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ResolveInfo resolveService(in Intent intent,
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType, int flags);
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ResolveInfo> queryIntentServices(in Intent intent,
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String resolvedType, int flags);
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<PackageInfo> getInstalledPackages(int flags);
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ApplicationInfo> getInstalledApplications(int flags);
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieve all applications that are marked as persistent.
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return A List&lt;applicationInfo> containing one entry for each persistent
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *         application.
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ApplicationInfo> getPersistentApplications(int flags);
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    ProviderInfo resolveContentProvider(String name, int flags);
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieve sync information for all content providers.
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param outNames Filled in with a list of the root names of the content
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *                 providers that can sync.
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param outInfo Filled in with a list of the ProviderInfo for each
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *                name in 'outNames'.
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void querySyncProviders(inout List<String> outNames,
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            inout List<ProviderInfo> outInfo);
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<ProviderInfo> queryContentProviders(
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String processName, int uid, int flags);
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    InstrumentationInfo getInstrumentationInfo(
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            in ComponentName className, int flags);
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<InstrumentationInfo> queryInstrumentation(
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            String targetPackage, int flags);
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Install a package.
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param packageURI The location of the package file to install.
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer a callback to use to notify when the package installation in finished.
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param flags - possible values: {@link #FORWARD_LOCK_PACKAGE},
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #REPLACE_EXISITING_PACKAGE}
145c64322c35212e919906ffd66118c7d5d3ad36636Jacek Surazski     * @param installerPackageName Optional package name of the application that is performing the
146c64322c35212e919906ffd66118c7d5d3ad36636Jacek Surazski     * installation. This identifies which market the package came from.
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
148c64322c35212e919906ffd66118c7d5d3ad36636Jacek Surazski    void installPackage(in Uri packageURI, IPackageInstallObserver observer, int flags,
149c64322c35212e919906ffd66118c7d5d3ad36636Jacek Surazski            in String installerPackageName);
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Delete a package.
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param packageName The fully qualified name of the package to delete.
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer a callback to use to notify when the package deletion in finished.
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param flags - possible values: {@link #DONT_DELETE_DATA}
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void deletePackage(in String packageName, IPackageDeleteObserver observer, int flags);
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
160c64322c35212e919906ffd66118c7d5d3ad36636Jacek Surazski    String getInstallerPackageName(in String packageName);
161c64322c35212e919906ffd66118c7d5d3ad36636Jacek Surazski
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void addPackageToPreferred(String packageName);
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void removePackageFromPreferred(String packageName);
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    List<PackageInfo> getPreferredPackages(int flags);
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void addPreferredActivity(in IntentFilter filter, int match,
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            in ComponentName[] set, in ComponentName activity);
1708dbe612dc60526d635e57257b58627b33a099678Satish Sampath
1718dbe612dc60526d635e57257b58627b33a099678Satish Sampath    void replacePreferredActivity(in IntentFilter filter, int match,
1728dbe612dc60526d635e57257b58627b33a099678Satish Sampath            in ComponentName[] set, in ComponentName activity);
1738dbe612dc60526d635e57257b58627b33a099678Satish Sampath
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void clearPackagePreferredActivities(String packageName);
1758dbe612dc60526d635e57257b58627b33a099678Satish Sampath
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getPreferredActivities(out List<IntentFilter> outFilters,
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out List<ComponentName> outActivities, String packageName);
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * As per {@link android.content.pm.PackageManager#setComponentEnabledSetting}.
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setComponentEnabledSetting(in ComponentName componentName,
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            in int newState, in int flags);
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * As per {@link android.content.pm.PackageManager#getComponentEnabledSetting}.
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getComponentEnabledSetting(in ComponentName componentName);
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * As per {@link android.content.pm.PackageManager#setApplicationEnabledSetting}.
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setApplicationEnabledSetting(in String packageName, in int newState, int flags);
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * As per {@link android.content.pm.PackageManager#getApplicationEnabledSetting}.
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getApplicationEnabledSetting(in String packageName);
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Free storage by deleting LRU sorted list of cache files across
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * all applications. If the currently available free storage
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on the device is greater than or equal to the requested
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * free storage, no cache files are cleared. If the currently
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available storage on the device is less than the requested
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * free storage, some or all of the cache files across
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * all applications are deleted (based on last accessed time)
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * to increase the free storage space on the device to
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the requested value. There is no guarantee that clearing all
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the cache files from all applications will clear up
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * enough storage to achieve the desired value.
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param freeStorageSize The number of bytes of storage to be
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * freed by the system. Say if freeStorageSize is XX,
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and the current free storage is YY,
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if XX is less than YY, just return. if not free XX-YY number
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of bytes if possible.
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer call back used to notify when
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the operation is completed
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     void freeStorageAndNotify(in long freeStorageSize,
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project             IPackageDataObserver observer);
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Free storage by deleting LRU sorted list of cache files across
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * all applications. If the currently available free storage
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * on the device is greater than or equal to the requested
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * free storage, no cache files are cleared. If the currently
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * available storage on the device is less than the requested
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * free storage, some or all of the cache files across
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * all applications are deleted (based on last accessed time)
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * to increase the free storage space on the device to
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the requested value. There is no guarantee that clearing all
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the cache files from all applications will clear up
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * enough storage to achieve the desired value.
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param freeStorageSize The number of bytes of storage to be
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * freed by the system. Say if freeStorageSize is XX,
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and the current free storage is YY,
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * if XX is less than YY, just return. if not free XX-YY number
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of bytes if possible.
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param opFinishedIntent PendingIntent call back used to
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * notify when the operation is completed.May be null
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * to indicate that no call back is desired.
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     void freeStorage(in long freeStorageSize,
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project             in PendingIntent opFinishedIntent);
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Delete all the cache files in an applications cache directory
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param packageName The package name of the application whose cache
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * files need to be deleted
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer a callback used to notify when the deletion is finished.
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void deleteApplicationCacheFiles(in String packageName, IPackageDataObserver observer);
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Clear the user data directory of an application.
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param packageName The package name of the application whose cache
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * files need to be deleted
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer a callback used to notify when the operation is completed.
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void clearApplicationUserData(in String packageName, IPackageDataObserver observer);
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project   /**
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get package statistics including the code, data and cache size for
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * an already installed package
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param packageName The package name of the application
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param observer a callback to use to notify when the asynchronous
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * retrieval of information is complete.
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void getPackageSizeInfo(in String packageName, IPackageStatsObserver observer);
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Get a list of shared libraries that are available on the
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * system.
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    String[] getSystemSharedLibraryNames();
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void enterSafeMode();
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isSafeMode();
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void systemReady();
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean hasSystemUidErrors();
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
283