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; 262acf063da08dfff69f184c9a6a90a7a5fe60d818Svet Ganovimport android.content.pm.EphemeralApplicationInfo; 2749237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackbornimport android.content.pm.FeatureInfo; 28f1977b4500e82b72ea6aa5c46d97406a20017cafChristopher Tateimport android.content.pm.IPackageInstallObserver2; 293a44f3f1b446315ef894e01d2ab9b5388c2bd8c4Jeff Sharkeyimport android.content.pm.IPackageInstaller; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageDeleteObserver; 31fbd0e9fa37fc17ccd25e4c1f16195bbd27de3c4cJeff Sharkeyimport android.content.pm.IPackageDeleteObserver2; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageDataObserver; 338946dd3355fc1dcbad872c0546e356474d4cc5deSuchi Amalapurapuimport android.content.pm.IPackageMoveObserver; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.IPackageStatsObserver; 35f7c06eb03ab4479b9d0656a23a4733d17e995183Svetoslavimport android.content.pm.IOnPermissionsChangeListener; 361c1b47125da018b44240739db75f8898e064a948Fabrice Di Meglioimport android.content.pm.IntentFilterVerificationInfo; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.InstrumentationInfo; 38c6f22499f3046684d7175e10ca42cce1492cd36fdcashmanimport android.content.pm.KeySet; 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PackageInfo; 405ab2157bf1f105b02d3e2913cd3a33f9765b74caKenny Rootimport android.content.pm.ManifestDigest; 417767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackbornimport android.content.pm.PackageCleanItem; 420e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Rootimport android.content.pm.ParceledListSlice; 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ProviderInfo; 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PermissionGroupInfo; 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.PermissionInfo; 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ResolveInfo; 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.pm.ServiceInfo; 480b285499db739ba50f2f839d633e763c70e67f96Amith Yamasaniimport android.content.pm.UserInfo; 490aaa0d931716e9f57a1d84d795fab2df75092756Kenny Rootimport android.content.pm.VerifierDeviceIdentity; 502acf063da08dfff69f184c9a6a90a7a5fe60d818Svet Ganovimport android.graphics.Bitmap; 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.net.Uri; 52c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslavimport android.os.Bundle; 53b8151ecd6ef4faa5c16d0a4c3abb45ec84d1f97aAmith Yamasaniimport android.os.ParcelFileDescriptor; 541ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapuimport android.content.IntentSender; 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See {@link PackageManager} for documentation on most of the APIs 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * here. 59c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav * 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IPackageManager { 638924e8759f9a8cffb5ad538ca40a7826793aac07Jeff Sharkey void checkPackageStartable(String packageName, int userId); 64ba629da331d01d74067afdda5d4255682d4b24d7Christopher Tate boolean isPackageAvailable(String packageName, int userId); 65483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani PackageInfo getPackageInfo(String packageName, int flags, int userId); 66cd65448ccd13c4c2d0fe9e9623fec3a898ab9372Jeff Sharkey int getPackageUid(String packageName, int flags, int userId); 67cd65448ccd13c4c2d0fe9e9623fec3a898ab9372Jeff Sharkey int[] getPackageGids(String packageName, int flags, int userId); 68c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 69470969346d7958f859d97d1a136b4ecc11e2a464Dianne Hackborn String[] currentToCanonicalPackageNames(in String[] names); 70470969346d7958f859d97d1a136b4ecc11e2a464Dianne Hackborn String[] canonicalToCurrentPackageNames(in String[] names); 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project PermissionInfo getPermissionInfo(String name, int flags); 73c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 74d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice queryPermissionsByGroup(String group, int flags); 75c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project PermissionGroupInfo getPermissionGroupInfo(String name, int flags); 77c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 78d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice getAllPermissionGroups(int flags); 79c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 80483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani ApplicationInfo getApplicationInfo(String packageName, int flags ,int userId); 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 82483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani ActivityInfo getActivityInfo(in ComponentName className, int flags, int userId); 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8491097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn boolean activitySupportsIntent(in ComponentName className, in Intent intent, 8591097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn String resolvedType); 8691097de49b0f683b00e26a75dbc0ac6082344137Dianne Hackborn 87483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani ActivityInfo getReceiverInfo(in ComponentName className, int flags, int userId); 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 89483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani ServiceInfo getServiceInfo(in ComponentName className, int flags, int userId); 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 91483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani ProviderInfo getProviderInfo(in ComponentName className, int flags, int userId); 92361199b5e742c6635d4d7a03de6cf37b31cf442cDianne Hackborn 93c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav int checkPermission(String permName, String pkgName, int userId); 94c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int checkUidPermission(String permName, int uid); 96c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean addPermission(in PermissionInfo info); 98c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void removePermission(String name); 100e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn 1018c7f700a59ad26e75c9791335d78f14322cad49aSvet Ganov void grantRuntimePermission(String packageName, String permissionName, int userId); 102e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn 1038c7f700a59ad26e75c9791335d78f14322cad49aSvet Ganov void revokeRuntimePermission(String packageName, String permissionName, int userId); 1048c7f700a59ad26e75c9791335d78f14322cad49aSvet Ganov 105ca8e6da41c6e63e3ed17eb461171f1ef2e1d29c6Dianne Hackborn void resetRuntimePermissions(); 106ca8e6da41c6e63e3ed17eb461171f1ef2e1d29c6Dianne Hackborn 1078c7f700a59ad26e75c9791335d78f14322cad49aSvet Ganov int getPermissionFlags(String permissionName, String packageName, int userId); 1088c7f700a59ad26e75c9791335d78f14322cad49aSvet Ganov 1098c7f700a59ad26e75c9791335d78f14322cad49aSvet Ganov void updatePermissionFlags(String permissionName, String packageName, int flagMask, 1108c7f700a59ad26e75c9791335d78f14322cad49aSvet Ganov int flagValues, int userId); 111e639da7baa23121e35aa06d6e182558e0e755696Dianne Hackborn 1120bf8f7cc3982164a9e11ea4a25ed930e466f1dd8Amith Yamasani void updatePermissionFlagsForAllApps(int flagMask, int flagValues, int userId); 1130bf8f7cc3982164a9e11ea4a25ed930e466f1dd8Amith Yamasani 11420770ddbd4d6f2af0093f36462a8f44a678b084bSvetoslav boolean shouldShowRequestPermissionRationale(String permissionName, 11520770ddbd4d6f2af0093f36462a8f44a678b084bSvetoslav String packageName, int userId); 11620770ddbd4d6f2af0093f36462a8f44a678b084bSvetoslav 117854060af30f928c0a65591e9c8314ae17056e6b8Dianne Hackborn boolean isProtectedBroadcast(String actionName); 118c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int checkSignatures(String pkg1, String pkg2); 120c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 121766cbfe44be3c5013a6a22bd6cd8ad1055a37256Dianne Hackborn int checkUidSignatures(int uid1, int uid2); 122c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 123990fb6b5c91be62078a698ee1c01e24d33364c85David Brazdil List<String> getAllPackages(); 124990fb6b5c91be62078a698ee1c01e24d33364c85David Brazdil 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String[] getPackagesForUid(int uid); 126c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String getNameForUid(int uid); 128c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getUidForSharedUser(String sharedUserName); 130dd72c9ed558158f889a8cdfed8a108553ba5a562Ben Gruver 131dd72c9ed558158f889a8cdfed8a108553ba5a562Ben Gruver int getFlagsForUid(int uid); 132dd72c9ed558158f889a8cdfed8a108553ba5a562Ben Gruver 133b9f8a5204a1b0b3919fa921e858d04124c582828Alex Klyubin int getPrivateFlagsForUid(int uid); 134b9f8a5204a1b0b3919fa921e858d04124c582828Alex Klyubin 1352d7576b082b84068fb9d68419b710b9bec49139bDianne Hackborn boolean isUidPrivileged(int uid); 1362d7576b082b84068fb9d68419b710b9bec49139bDianne Hackborn 13733f5ddd1bea21296938f2cba196f95d223aa247cDianne Hackborn String[] getAppOpPermissionPackages(String permissionName); 13833f5ddd1bea21296938f2cba196f95d223aa247cDianne Hackborn 139483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani ResolveInfo resolveIntent(in Intent intent, String resolvedType, int flags, int userId); 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1418194899071e0a84c95ef10614bd1b9485b48f589Nicolas Prevot boolean canForwardTo(in Intent intent, String resolvedType, int sourceUserId, int targetUserId); 14210fa67c77e11699391e27975fc2d276a0b8c7cbbNicolas Prevot 143d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice queryIntentActivities(in Intent intent, 144483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani String resolvedType, int flags, int userId); 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 146d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice queryIntentActivityOptions( 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project in ComponentName caller, in Intent[] specifics, 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project in String[] specificTypes, in Intent intent, 149483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani String resolvedType, int flags, int userId); 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 151d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice queryIntentReceivers(in Intent intent, 152483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani String resolvedType, int flags, int userId); 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ResolveInfo resolveService(in Intent intent, 155483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani String resolvedType, int flags, int userId); 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 157d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice queryIntentServices(in Intent intent, 158483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani String resolvedType, int flags, int userId); 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 160d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice queryIntentContentProviders(in Intent intent, 16185f5f8132015d8a5043ea4413702420d0d157c9fJeff Sharkey String resolvedType, int flags, int userId); 16285f5f8132015d8a5043ea4413702420d0d157c9fJeff Sharkey 1630e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root /** 1640e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root * This implements getInstalledPackages via a "last returned row" 1650e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root * mechanism that is not exposed in the API. This is to get around the IPC 1660e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root * limit that kicks in when flags are included that bloat up the data 1670e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root * returned. 1680e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root */ 169d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaacDianne Hackborn ParceledListSlice getInstalledPackages(int flags, in int userId); 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1710e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root /** 172e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn * This implements getPackagesHoldingPermissions via a "last returned row" 173e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn * mechanism that is not exposed in the API. This is to get around the IPC 174e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn * limit that kicks in when flags are included that bloat up the data 175e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn * returned. 176e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn */ 177e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn ParceledListSlice getPackagesHoldingPermissions(in String[] permissions, 178d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaacDianne Hackborn int flags, int userId); 179e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn 180e799175b6ba3aadd972f4b861758d675d1f93987Dianne Hackborn /** 1810e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root * This implements getInstalledApplications via a "last returned row" 1820e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root * mechanism that is not exposed in the API. This is to get around the IPC 1830e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root * limit that kicks in when flags are included that bloat up the data 1840e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root * returned. 1850e2c0f37d98bb5539b0fe41865aaf1add0ff1bb3Kenny Root */ 186d8e1dbb6bc1fbaf4f2e38c3ba92ced94270deaacDianne Hackborn ParceledListSlice getInstalledApplications(int flags, int userId); 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve all applications that are marked as persistent. 190c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav * 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return A List<applicationInfo> containing one entry for each persistent 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * application. 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 194d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice getPersistentApplications(int flags); 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 196483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani ProviderInfo resolveContentProvider(String name, int flags, int userId); 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve sync information for all content providers. 200c6d1c345f41cf817bf2c07c97b97107d94296064Svetoslav * 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param outNames Filled in with a list of the root names of the content 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * providers that can sync. 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param outInfo Filled in with a list of the ProviderInfo for each 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * name in 'outNames'. 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void querySyncProviders(inout List<String> outNames, 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project inout List<ProviderInfo> outInfo); 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 20928ec27cbfa157c242fd9330a10c7c2b8ea838694Dianne Hackborn ParceledListSlice queryContentProviders( 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String processName, int uid, int flags); 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project InstrumentationInfo getInstrumentationInfo( 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project in ComponentName className, int flags); 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 215d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice queryInstrumentation( 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String targetPackage, int flags); 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 218a67932374dbbfbe4c6440d223fc7922b313dd957Todd Kennedy /** @deprecated Use PackageInstaller instead */ 219dda003ffa84f986bfaba4344124eafa533f5039dAmith Yamasani void installPackageAsUser(in String originPath, 220dda003ffa84f986bfaba4344124eafa533f5039dAmith Yamasani in IPackageInstallObserver2 observer, 221dda003ffa84f986bfaba4344124eafa533f5039dAmith Yamasani int flags, 222dda003ffa84f986bfaba4344124eafa533f5039dAmith Yamasani in String installerPackageName, 223dda003ffa84f986bfaba4344124eafa533f5039dAmith Yamasani int userId); 224dda003ffa84f986bfaba4344124eafa533f5039dAmith Yamasani 2255cf5578a457e448dda9fd47943e91f0f3b67690fChristopher Tate void finishPackageInstall(int token, boolean didLaunch); 2261bb6906c7a903ee6427c8ff37bdc5896c386ff73Christopher Tate 227880119bf43d738ca632b5d3861eb52d655c1c0fcDianne Hackborn void setInstallerPackageName(in String targetPackage, in String installerPackageName); 228880119bf43d738ca632b5d3861eb52d655c1c0fcDianne Hackborn 229fbd0e9fa37fc17ccd25e4c1f16195bbd27de3c4cJeff Sharkey /** @deprecated rawr, don't call AIDL methods directly! */ 230fbd0e9fa37fc17ccd25e4c1f16195bbd27de3c4cJeff Sharkey void deletePackageAsUser(in String packageName, IPackageDeleteObserver observer, 231fbd0e9fa37fc17ccd25e4c1f16195bbd27de3c4cJeff Sharkey int userId, int flags); 232fbd0e9fa37fc17ccd25e4c1f16195bbd27de3c4cJeff Sharkey 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 23467df64b3a48a8157d08a98fa90135d0ac0ee621cAmith Yamasani * Delete a package for a specific user. 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param packageName The fully qualified name of the package to delete. 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer a callback to use to notify when the package deletion in finished. 23867df64b3a48a8157d08a98fa90135d0ac0ee621cAmith Yamasani * @param userId the id of the user for whom to delete the package 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param flags - possible values: {@link #DONT_DELETE_DATA} 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 241fbd0e9fa37fc17ccd25e4c1f16195bbd27de3c4cJeff Sharkey void deletePackage(in String packageName, IPackageDeleteObserver2 observer, int userId, int flags); 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 24365e13171e12cb9e9fc2f608d0c8a92cd3c098648Jacek Surazski String getInstallerPackageName(in String packageName); 24465e13171e12cb9e9fc2f608d0c8a92cd3c098648Jacek Surazski 2459c8b8ab941e3ca7bdf2cccad6836760d7723518eSvet Ganov void resetApplicationPreferences(int userId); 2468a2ed1d7c0c4f6476e39cc37d9ebd29c7562ce01Dianne Hackborn 247e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani ResolveInfo getLastChosenActivity(in Intent intent, 248e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani String resolvedType, int flags); 249e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani 250e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani void setLastChosenActivity(in Intent intent, String resolvedType, int flags, 251e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani in IntentFilter filter, int match, in ComponentName activity); 252e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addPreferredActivity(in IntentFilter filter, int match, 254a3f133afe885f9e005dfc0584cb7b3b90f75f665Amith Yamasani in ComponentName[] set, in ComponentName activity, int userId); 2558dbe612dc60526d635e57257b58627b33a099678Satish Sampath 2568dbe612dc60526d635e57257b58627b33a099678Satish Sampath void replacePreferredActivity(in IntentFilter filter, int match, 25741c1ded7f042a4cf303479550b38fa66d7a18906Amith Yamasani in ComponentName[] set, in ComponentName activity, int userId); 2588dbe612dc60526d635e57257b58627b33a099678Satish Sampath 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void clearPackagePreferredActivities(String packageName); 2608dbe612dc60526d635e57257b58627b33a099678Satish Sampath 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getPreferredActivities(out List<IntentFilter> outFilters, 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project out List<ComponentName> outActivities, String packageName); 263e9ecc8b49992840249bfb9d5d52b8824dd5de39bAmith Yamasani 264f475ca33d9232785710aaa438f17915029dfa83bSander Alewijnse void addPersistentPreferredActivity(in IntentFilter filter, in ComponentName activity, int userId); 265f475ca33d9232785710aaa438f17915029dfa83bSander Alewijnse 266f475ca33d9232785710aaa438f17915029dfa83bSander Alewijnse void clearPackagePersistentPreferredActivities(String packageName, int userId); 267f475ca33d9232785710aaa438f17915029dfa83bSander Alewijnse 2683f7777fa4f1d392e18bad39edcd4539880c52ff9Nicolas Prevot void addCrossProfileIntentFilter(in IntentFilter intentFilter, String ownerPackage, 2694b8d5821512c6a4fdaf442f6d48e1dc412539136Nicolas Prevot int sourceUserId, int targetUserId, int flags); 27010fa67c77e11699391e27975fc2d276a0b8c7cbbNicolas Prevot 2714b8d5821512c6a4fdaf442f6d48e1dc412539136Nicolas Prevot void clearCrossProfileIntentFilters(int sourceUserId, String ownerPackage); 27210fa67c77e11699391e27975fc2d276a0b8c7cbbNicolas Prevot 273eb84b1843a3f6805c6109c1d9d023550229a3fc5Andrei Stingaceanu String[] setPackagesSuspendedAsUser(in String[] packageNames, boolean suspended, int userId); 274355b232d7998cfc9b29d42a0356390e25191bcbdAndrei Stingaceanu boolean isPackageSuspendedForUser(String packageName, int userId); 2751e2839188fb49575b86646d3aadb355c81ef9cc5Andrei Stingaceanu 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 277e012a235569fe307d165dfd0784ae847d0b13739Christopher Tate * Backup/restore support - only the system uid may use these. 278e012a235569fe307d165dfd0784ae847d0b13739Christopher Tate */ 279e012a235569fe307d165dfd0784ae847d0b13739Christopher Tate byte[] getPreferredActivityBackup(int userId); 280e012a235569fe307d165dfd0784ae847d0b13739Christopher Tate void restorePreferredActivities(in byte[] backup, int userId); 2816038d15cbc7f4648ceaadf5f15d1928c4899f98eChristopher Tate byte[] getDefaultAppsBackup(int userId); 2826038d15cbc7f4648ceaadf5f15d1928c4899f98eChristopher Tate void restoreDefaultApps(in byte[] backup, int userId); 2836038d15cbc7f4648ceaadf5f15d1928c4899f98eChristopher Tate byte[] getIntentFilterVerificationBackup(int userId); 2846038d15cbc7f4648ceaadf5f15d1928c4899f98eChristopher Tate void restoreIntentFilterVerification(in byte[] backup, int userId); 285e9fd1fa31ad6f62d1eb6f32cdcdab50349f246ebChristopher Tate byte[] getPermissionGrantBackup(int userId); 286e9fd1fa31ad6f62d1eb6f32cdcdab50349f246ebChristopher Tate void restorePermissionGrants(in byte[] backup, int userId); 287e012a235569fe307d165dfd0784ae847d0b13739Christopher Tate 288e012a235569fe307d165dfd0784ae847d0b13739Christopher Tate /** 289a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate * Report the set of 'Home' activity candidates, plus (if any) which of them 290a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate * is the current "always use this one" setting. 291a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate */ 292a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate ComponentName getHomeActivities(out List<ResolveInfo> outHomeCandidates); 293a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate 2944828a59d68570270875d43d29b1ee25b799a923dMakoto Onuki void setHomeActivity(in ComponentName className, int userId); 2954828a59d68570270875d43d29b1ee25b799a923dMakoto Onuki 296a2a0850de8e7324db37e0595d5374bb9c9903461Christopher Tate /** 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * As per {@link android.content.pm.PackageManager#setComponentEnabledSetting}. 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setComponentEnabledSetting(in ComponentName componentName, 300483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani in int newState, in int flags, int userId); 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * As per {@link android.content.pm.PackageManager#getComponentEnabledSetting}. 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 305483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani int getComponentEnabledSetting(in ComponentName componentName, int userId); 3062a880312086147577e1e814bda6985fa97fb343bJeff Davidson 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * As per {@link android.content.pm.PackageManager#setApplicationEnabledSetting}. 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3103fa3c28a356108a6558b6b54a0b10e1a5cc4f1b6Dianne Hackborn void setApplicationEnabledSetting(in String packageName, in int newState, int flags, 3113fa3c28a356108a6558b6b54a0b10e1a5cc4f1b6Dianne Hackborn int userId, String callingPackage); 3122a880312086147577e1e814bda6985fa97fb343bJeff Davidson 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * As per {@link android.content.pm.PackageManager#getApplicationEnabledSetting}. 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 316483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani int getApplicationEnabledSetting(in String packageName, int userId); 3172a880312086147577e1e814bda6985fa97fb343bJeff Davidson 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 319b52a461851f322b0edf3cb9383da5f449b533311Michal Karpinski * Logs process start information (including APK hash) to the security log. 320b52a461851f322b0edf3cb9383da5f449b533311Michal Karpinski */ 321b52a461851f322b0edf3cb9383da5f449b533311Michal Karpinski void logAppProcessStartIfNeeded(String processName, int uid, String seinfo, String apkFile, 322b52a461851f322b0edf3cb9383da5f449b533311Michal Karpinski int pid); 323b52a461851f322b0edf3cb9383da5f449b533311Michal Karpinski 324b52a461851f322b0edf3cb9383da5f449b533311Michal Karpinski /** 325bbb3ff2b2a29d42771a9ce2fe2d6f576cff62617Sudheer Shanka * As per {@link android.content.pm.PackageManager#flushPackageRestrictionsAsUser}. 326bbb3ff2b2a29d42771a9ce2fe2d6f576cff62617Sudheer Shanka */ 327bbb3ff2b2a29d42771a9ce2fe2d6f576cff62617Sudheer Shanka void flushPackageRestrictionsAsUser(in int userId); 328bbb3ff2b2a29d42771a9ce2fe2d6f576cff62617Sudheer Shanka 329bbb3ff2b2a29d42771a9ce2fe2d6f576cff62617Sudheer Shanka /** 330e7f972122db87dc54e41ed1a6e417534d43bca3aDianne Hackborn * Set whether the given package should be considered stopped, making 331e7f972122db87dc54e41ed1a6e417534d43bca3aDianne Hackborn * it not visible to implicit intents that filter out stopped packages. 332e7f972122db87dc54e41ed1a6e417534d43bca3aDianne Hackborn */ 333483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani void setPackageStoppedState(String packageName, boolean stopped, int userId); 334e7f972122db87dc54e41ed1a6e417534d43bca3aDianne Hackborn 335e7f972122db87dc54e41ed1a6e417534d43bca3aDianne Hackborn /** 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Free storage by deleting LRU sorted list of cache files across 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * all applications. If the currently available free storage 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * on the device is greater than or equal to the requested 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * free storage, no cache files are cleared. If the currently 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * available storage on the device is less than the requested 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * free storage, some or all of the cache files across 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * all applications are deleted (based on last accessed time) 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to increase the free storage space on the device to 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the requested value. There is no guarantee that clearing all 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the cache files from all applications will clear up 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * enough storage to achieve the desired value. 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param freeStorageSize The number of bytes of storage to be 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * freed by the system. Say if freeStorageSize is XX, 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and the current free storage is YY, 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if XX is less than YY, just return. if not free XX-YY number 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * of bytes if possible. 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer call back used to notify when 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the operation is completed 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 355529f91fc8e7e884ef19bef8eb3e4e3a1d69336f4Jeff Sharkey void freeStorageAndNotify(in String volumeUuid, in long freeStorageSize, 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IPackageDataObserver observer); 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Free storage by deleting LRU sorted list of cache files across 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * all applications. If the currently available free storage 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * on the device is greater than or equal to the requested 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * free storage, no cache files are cleared. If the currently 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * available storage on the device is less than the requested 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * free storage, some or all of the cache files across 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * all applications are deleted (based on last accessed time) 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to increase the free storage space on the device to 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the requested value. There is no guarantee that clearing all 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the cache files from all applications will clear up 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * enough storage to achieve the desired value. 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param freeStorageSize The number of bytes of storage to be 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * freed by the system. Say if freeStorageSize is XX, 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and the current free storage is YY, 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if XX is less than YY, just return. if not free XX-YY number 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * of bytes if possible. 3751ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapu * @param pi IntentSender call back used to 3761ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapu * notify when the operation is completed.May be null 3771ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapu * to indicate that no call back is desired. 3781ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapu */ 379529f91fc8e7e884ef19bef8eb3e4e3a1d69336f4Jeff Sharkey void freeStorage(in String volumeUuid, in long freeStorageSize, 3801ccac75e1f1b97eccb916a8de04fc1012b30f6e5Suchi Amalapurapu in IntentSender pi); 3812a880312086147577e1e814bda6985fa97fb343bJeff Davidson 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Delete all the cache files in an applications cache directory 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param packageName The package name of the application whose cache 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * files need to be deleted 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer a callback used to notify when the deletion is finished. 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void deleteApplicationCacheFiles(in String packageName, IPackageDataObserver observer); 3892a880312086147577e1e814bda6985fa97fb343bJeff Davidson 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 39178c9eb8947538f63d2e06684663d400991dfff8fSuprabh Shukla * Delete all the cache files in an applications cache directory 39278c9eb8947538f63d2e06684663d400991dfff8fSuprabh Shukla * @param packageName The package name of the application whose cache 39378c9eb8947538f63d2e06684663d400991dfff8fSuprabh Shukla * files need to be deleted 39478c9eb8947538f63d2e06684663d400991dfff8fSuprabh Shukla * @param userId the user to delete application cache for 39578c9eb8947538f63d2e06684663d400991dfff8fSuprabh Shukla * @param observer a callback used to notify when the deletion is finished. 39678c9eb8947538f63d2e06684663d400991dfff8fSuprabh Shukla */ 39778c9eb8947538f63d2e06684663d400991dfff8fSuprabh Shukla void deleteApplicationCacheFilesAsUser(in String packageName, int userId, IPackageDataObserver observer); 39878c9eb8947538f63d2e06684663d400991dfff8fSuprabh Shukla 39978c9eb8947538f63d2e06684663d400991dfff8fSuprabh Shukla /** 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Clear the user data directory of an application. 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param packageName The package name of the application whose cache 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * files need to be deleted 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer a callback used to notify when the operation is completed. 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 405483f3b06ea84440a082e21b68ec2c2e54046f5a6Amith Yamasani void clearApplicationUserData(in String packageName, IPackageDataObserver observer, int userId); 4062a880312086147577e1e814bda6985fa97fb343bJeff Davidson 4079aa6db03f0a317b8414af760b8b1ee6331bedc46David Brazdil /** 4089aa6db03f0a317b8414af760b8b1ee6331bedc46David Brazdil * Clear the profile data of an application. 4099aa6db03f0a317b8414af760b8b1ee6331bedc46David Brazdil * @param packageName The package name of the application whose profile data 4109aa6db03f0a317b8414af760b8b1ee6331bedc46David Brazdil * need to be deleted 4119aa6db03f0a317b8414af760b8b1ee6331bedc46David Brazdil */ 4129aa6db03f0a317b8414af760b8b1ee6331bedc46David Brazdil void clearApplicationProfileData(in String packageName); 4139aa6db03f0a317b8414af760b8b1ee6331bedc46David Brazdil 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get package statistics including the code, data and cache size for 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * an already installed package 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param packageName The package name of the application 4180c3804950236fe170ebf6cc7a5f1e3e305b8f315Dianne Hackborn * @param userHandle Which user the size should be retrieved for 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param observer a callback to use to notify when the asynchronous 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * retrieval of information is complete. 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4220c3804950236fe170ebf6cc7a5f1e3e305b8f315Dianne Hackborn void getPackageSizeInfo(in String packageName, int userHandle, IPackageStatsObserver observer); 4232a880312086147577e1e814bda6985fa97fb343bJeff Davidson 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Get a list of shared libraries that are available on the 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * system. 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String[] getSystemSharedLibraryNames(); 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 43049237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn /** 43149237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn * Get a list of features that are available on the 43249237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn * system. 43349237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn */ 434d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice getSystemAvailableFeatures(); 43549237345d83e62fdb9eb8d50b13ad086636a04faDianne Hackborn 436115d2c189a46f535778d9dd0923f703ff2f888feJeff Sharkey boolean hasSystemFeature(String name, int version); 4372a880312086147577e1e814bda6985fa97fb343bJeff Davidson 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void enterSafeMode(); 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isSafeMode(); 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void systemReady(); 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean hasSystemUidErrors(); 442661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn 443661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn /** 44427c073796978106746e4a51f2100b29068ab37f6Nicolas Geoffray * Ask the package manager to fstrim the disk if needed. 445661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn */ 44627c073796978106746e4a51f2100b29068ab37f6Nicolas Geoffray void performFstrimIfNeeded(); 44727c073796978106746e4a51f2100b29068ab37f6Nicolas Geoffray 44827c073796978106746e4a51f2100b29068ab37f6Nicolas Geoffray /** 449f5c444ffd4fdce4fab939fcd88f163288dc804c5David Brazdil * Ask the package manager to update packages if needed. 450a0e10434c49c6fe075e853da2046fd281318c4c4David Brazdil */ 451f5c444ffd4fdce4fab939fcd88f163288dc804c5David Brazdil void updatePackagesIfNeeded(); 452a0e10434c49c6fe075e853da2046fd281318c4c4David Brazdil 453a0e10434c49c6fe075e853da2046fd281318c4c4David Brazdil /** 454ca82e616d3131570bf2ee29778f4796f343720d5Brian Carlstrom * Notify the package manager that a package is going to be used and why. 455ca82e616d3131570bf2ee29778f4796f343720d5Brian Carlstrom * 456ca82e616d3131570bf2ee29778f4796f343720d5Brian Carlstrom * See PackageManager.NOTIFY_PACKAGE_USE_* for reasons. 45727c073796978106746e4a51f2100b29068ab37f6Nicolas Geoffray */ 458ca82e616d3131570bf2ee29778f4796f343720d5Brian Carlstrom void notifyPackageUse(String packageName, int reason); 459661cd52e0e1d527132eb1cae604d3e64da7ec0cbDianne Hackborn 4605c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn /** 4615c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn * Ask the package manager to perform dex-opt (if needed) on the given 462fb6cf77a6721f2af4df09b33d649f66ad79559f6Nicolas Geoffray * package if it already hasn't done so. 4632053168eb4506e2f8795afdbe9731c6451e1589cNarayan Kamath * 4642053168eb4506e2f8795afdbe9731c6451e1589cNarayan Kamath * In most cases, apps are dexopted in advance and this function will 4652053168eb4506e2f8795afdbe9731c6451e1589cNarayan Kamath * be a no-op. 4665c1e00b14d2ef10ec76abf3e951fa8003a67f558Dianne Hackborn */ 467fb6cf77a6721f2af4df09b33d649f66ad79559f6Nicolas Geoffray boolean performDexOptIfNeeded(String packageName); 468af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu 469bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe /** 470bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe * Ask the package manager to perform a dex-opt for the given reason. The package 471bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe * manager will map the reason to a compiler filter according to the current system 472bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe * configuration. 473bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe */ 474fb6cf77a6721f2af4df09b33d649f66ad79559f6Nicolas Geoffray boolean performDexOpt(String packageName, boolean checkProfiles, 475bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe int compileReason, boolean force); 476bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe /** 477bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe * Ask the package manager to perform a dex-opt with the given compiler filter. 478bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe * 479bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe * Note: exposed only for the shell command to allow moving packages explicitly to a 480bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe * definite state. 481bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe */ 482fb6cf77a6721f2af4df09b33d649f66ad79559f6Nicolas Geoffray boolean performDexOptMode(String packageName, boolean checkProfiles, 483bdd30d86ef98456161069d11481b2ccd25a11b4eAndreas Gampe String targetCompilerFilter, boolean force); 484493411ace40a8b4a90be70576f361c5b7515f29dDavid Brazdil 485a87770828637813dacd176ba3c8d3810f7ed6ab8David Sehr /** 486a87770828637813dacd176ba3c8d3810f7ed6ab8David Sehr * Ask the package manager to dump profiles associated with a package. 487a87770828637813dacd176ba3c8d3810f7ed6ab8David Sehr */ 488a87770828637813dacd176ba3c8d3810f7ed6ab8David Sehr void dumpProfiles(String packageName); 489a87770828637813dacd176ba3c8d3810f7ed6ab8David Sehr 49020e0c50f601e5930a246d4556118423a49c12ca1Jeff Sharkey void forceDexOpt(String packageName); 49120e0c50f601e5930a246d4556118423a49c12ca1Jeff Sharkey 492af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu /** 493af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu * Update status of external media on the package manager to scan and 494af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu * install packages installed on the external media. Like say the 495af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu * MountService uses this to call into the package manager to update 496af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu * status of sdcard. 497af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu */ 498e99bb5f10b90736d10cee9729b56cba156fc0921Suchi Amalapurapu void updateExternalMediaStatus(boolean mounted, boolean reportStatus); 499af8e9f4805643f90a9dc0ecfa119e0a860c12f8aSuchi Amalapurapu 5007767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn PackageCleanItem nextPackageToClean(in PackageCleanItem lastPackage); 5018946dd3355fc1dcbad872c0546e356474d4cc5deSuchi Amalapurapu 502620b32b316fd4f1bab4eef55ec8802d14a55e7ddJeff Sharkey int getMoveStatus(int moveId); 503620b32b316fd4f1bab4eef55ec8802d14a55e7ddJeff Sharkey 504620b32b316fd4f1bab4eef55ec8802d14a55e7ddJeff Sharkey void registerMoveCallback(in IPackageMoveObserver callback); 505620b32b316fd4f1bab4eef55ec8802d14a55e7ddJeff Sharkey void unregisterMoveCallback(in IPackageMoveObserver callback); 506620b32b316fd4f1bab4eef55ec8802d14a55e7ddJeff Sharkey 507620b32b316fd4f1bab4eef55ec8802d14a55e7ddJeff Sharkey int movePackage(in String packageName, in String volumeUuid); 508620b32b316fd4f1bab4eef55ec8802d14a55e7ddJeff Sharkey int movePrimaryStorage(in String volumeUuid); 509b2b9ab8354da1485178cd8d8e9d89ac915b3f269Jeff Sharkey 510d7c096845dee7616095eda0fe9e7aa08f0ba9c20Dianne Hackborn boolean addPermissionAsync(in PermissionInfo info); 51140e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu 51240e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu boolean setInstallLocation(int loc); 51340e472521a544f26cb6956995788f7c36fff1404Suchi Amalapurapu int getInstallLocation(); 5140b285499db739ba50f2f839d633e763c70e67f96Amith Yamasani 51567df64b3a48a8157d08a98fa90135d0ac0ee621cAmith Yamasani int installExistingPackageAsUser(String packageName, int userId); 5167767eac3232ba2fb9828766813cdb481d6a97584Dianne Hackborn 5173a9b5fbb97e65019abec97f172b4cbf2100d1225Kenny Root void verifyPendingInstall(int id, int verificationCode); 518d9ef3e5495db1c46bcfcc1a2d4386af8db6deb0crich cannings void extendVerificationTimeout(int id, int verificationCodeAtTimeout, long millisecondsToDelay); 5190aaa0d931716e9f57a1d84d795fab2df75092756Kenny Root 520d3d8a32217d5a2d895917cfe7e1645935d228494Fabrice Di Meglio void verifyIntentFilter(int id, int verificationCode, in List<String> failedDomains); 5211c1b47125da018b44240739db75f8898e064a948Fabrice Di Meglio int getIntentVerificationStatus(String packageName, int userId); 5221c1b47125da018b44240739db75f8898e064a948Fabrice Di Meglio boolean updateIntentVerificationStatus(String packageName, int status, int userId); 523d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice getIntentFilterVerifications(String packageName); 524d5896630f6a2f21da107031cab216dc93bdcd851Jeff Sharkey ParceledListSlice getAllIntentFilters(String packageName); 5251c1b47125da018b44240739db75f8898e064a948Fabrice Di Meglio 5266227172310663e1267b1fabd68be890a1cb7e145Fabrice Di Meglio boolean setDefaultBrowserPackageName(String packageName, int userId); 5276227172310663e1267b1fabd68be890a1cb7e145Fabrice Di Meglio String getDefaultBrowserPackageName(int userId); 5286227172310663e1267b1fabd68be890a1cb7e145Fabrice Di Meglio 5290aaa0d931716e9f57a1d84d795fab2df75092756Kenny Root VerifierDeviceIdentity getVerifierDeviceIdentity(); 53058f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn 53158f42a59bda3bc912d0d2f81dc65a9d31d140eaaDianne Hackborn boolean isFirstBoot(); 53213579ed3305bf89b41a9fa88e1347f0e0769d279Dianne Hackborn boolean isOnlyCoreApps(); 5339f60c08a446e38f9e2d5271546ef69ca5941eba9Jeff Hao boolean isUpgrade(); 534742a67127366c376fdf188ff99ba30b27d3bf90cAmith Yamasani 5355d32e772b3a19c1ac84e665f2885755427d590c8Jeff Sharkey void setPermissionEnforced(String permission, boolean enforced); 5365d32e772b3a19c1ac84e665f2885755427d590c8Jeff Sharkey boolean isPermissionEnforced(String permission); 537f6f7f1d2dc6e8fad5d6ff9a56af9929488873b4fJeff Sharkey 538f6f7f1d2dc6e8fad5d6ff9a56af9929488873b4fJeff Sharkey /** Reflects current DeviceStorageMonitorService state */ 539f6f7f1d2dc6e8fad5d6ff9a56af9929488873b4fJeff Sharkey boolean isStorageLow(); 540655d0e2029e6ae77a47e922dce4c4989818b8dd1Amith Yamasani 541e5bcff624fb58b6f95be8ddff7f5b6b3bf5d19c7Amith Yamasani boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, int userId); 542e5bcff624fb58b6f95be8ddff7f5b6b3bf5d19c7Amith Yamasani boolean getApplicationHiddenSettingAsUser(String packageName, int userId); 5433a44f3f1b446315ef894e01d2ab9b5388c2bd8c4Jeff Sharkey 5443a44f3f1b446315ef894e01d2ab9b5388c2bd8c4Jeff Sharkey IPackageInstaller getPackageInstaller(); 545c13053bf1c05b980421611487ce67677c08db299Kenny Guy 546c13053bf1c05b980421611487ce67677c08db299Kenny Guy boolean setBlockUninstallForUser(String packageName, boolean blockUninstall, int userId); 547c13053bf1c05b980421611487ce67677c08db299Kenny Guy boolean getBlockUninstallForUser(String packageName, int userId); 5489d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman 549c6f22499f3046684d7175e10ca42cce1492cd36fdcashman KeySet getKeySetByAlias(String packageName, String alias); 550c6f22499f3046684d7175e10ca42cce1492cd36fdcashman KeySet getSigningKeySet(String packageName); 551c6f22499f3046684d7175e10ca42cce1492cd36fdcashman boolean isPackageSignedByKeySet(String packageName, in KeySet ks); 552c6f22499f3046684d7175e10ca42cce1492cd36fdcashman boolean isPackageSignedByKeySetExactly(String packageName, in KeySet ks); 553f7c06eb03ab4479b9d0656a23a4733d17e995183Svetoslav 554f7c06eb03ab4479b9d0656a23a4733d17e995183Svetoslav void addOnPermissionsChangeListener(in IOnPermissionsChangeListener listener); 555f7c06eb03ab4479b9d0656a23a4733d17e995183Svetoslav void removeOnPermissionsChangeListener(in IOnPermissionsChangeListener listener); 556cdfd230a392d0f0557a3a5bada221b7a05113392Svetoslav void grantDefaultPermissionsToEnabledCarrierApps(in String[] packageNames, int userId); 557ad3b2975574f916c14382628d50c710a78064746Svet Ganov 558ad3b2975574f916c14382628d50c710a78064746Svet Ganov boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId); 559f1b7f20bb839c96e8254ccb65398135f10fd45d9Svet Ganov 560f1b7f20bb839c96e8254ccb65398135f10fd45d9Svet Ganov String getPermissionControllerPackageName(); 5612acf063da08dfff69f184c9a6a90a7a5fe60d818Svet Ganov 5622acf063da08dfff69f184c9a6a90a7a5fe60d818Svet Ganov ParceledListSlice getEphemeralApplications(int userId); 5632acf063da08dfff69f184c9a6a90a7a5fe60d818Svet Ganov byte[] getEphemeralApplicationCookie(String packageName, int userId); 5642acf063da08dfff69f184c9a6a90a7a5fe60d818Svet Ganov boolean setEphemeralApplicationCookie(String packageName, in byte[] cookie, int userId); 5652acf063da08dfff69f184c9a6a90a7a5fe60d818Svet Ganov Bitmap getEphemeralApplicationIcon(String packageName, int userId); 5662acf063da08dfff69f184c9a6a90a7a5fe60d818Svet Ganov boolean isEphemeralApplication(String packageName, int userId); 567bdbc9692c7cb365d9d3f239baa2377724a6f7bc8Fyodor Kupolov 568bdbc9692c7cb365d9d3f239baa2377724a6f7bc8Fyodor Kupolov boolean setRequiredForSystemUser(String packageName, boolean systemUserApp); 569d7b1f41109abee60ec8529369a85d84300b1d678Svet Ganov 570d7b1f41109abee60ec8529369a85d84300b1d678Svet Ganov String getServicesSystemSharedLibraryPackageName(); 571a9c2500a6863dabdd786f17a25ce0bf3683109a2Svetoslav Ganov String getSharedSystemSharedLibraryPackageName(); 572f34db0a17ee035c165a4e81e9192f73d2455bd1cMakoto Onuki 573f34db0a17ee035c165a4e81e9192f73d2455bd1cMakoto Onuki boolean isPackageDeviceAdminOnAnyUser(String packageName); 57439bfee5e3674faea992c32204abc1c03429b8cdaTodd Kennedy 57539bfee5e3674faea992c32204abc1c03429b8cdaTodd Kennedy List<String> getPreviousCodePaths(in String packageName); 5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 577