IPackageManager.aidl revision 2fd43ba63ef336f9e0edc9c742b85507c46b3bc9
1/* 2** 3** Copyright 2007, The Android Open Source Project 4** 5** Licensed under the Apache License, Version 2.0 (the "License"); 6** you may not use this file except in compliance with the License. 7** You may obtain a copy of the License at 8** 9** http://www.apache.org/licenses/LICENSE-2.0 10** 11** Unless required by applicable law or agreed to in writing, software 12** distributed under the License is distributed on an "AS IS" BASIS, 13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14** See the License for the specific language governing permissions and 15** limitations under the License. 16*/ 17 18package android.content.pm; 19 20import android.content.ComponentName; 21import android.content.Intent; 22import android.content.IntentFilter; 23import android.content.pm.ActivityInfo; 24import android.content.pm.ApplicationInfo; 25import android.content.pm.ChangedPackages; 26import android.content.pm.InstantAppInfo; 27import android.content.pm.FeatureInfo; 28import android.content.pm.IDexModuleRegisterCallback; 29import android.content.pm.IPackageInstaller; 30import android.content.pm.IPackageDeleteObserver; 31import android.content.pm.IPackageDeleteObserver2; 32import android.content.pm.IPackageDataObserver; 33import android.content.pm.IPackageMoveObserver; 34import android.content.pm.IPackageStatsObserver; 35import android.content.pm.IOnPermissionsChangeListener; 36import android.content.pm.IntentFilterVerificationInfo; 37import android.content.pm.InstrumentationInfo; 38import android.content.pm.KeySet; 39import android.content.pm.PackageInfo; 40import android.content.pm.PackageCleanItem; 41import android.content.pm.ParceledListSlice; 42import android.content.pm.ProviderInfo; 43import android.content.pm.PermissionGroupInfo; 44import android.content.pm.PermissionInfo; 45import android.content.pm.ResolveInfo; 46import android.content.pm.ServiceInfo; 47import android.content.pm.UserInfo; 48import android.content.pm.VerifierDeviceIdentity; 49import android.content.pm.VersionedPackage; 50import android.content.pm.dex.IArtManager; 51import android.graphics.Bitmap; 52import android.net.Uri; 53import android.os.ParcelFileDescriptor; 54import android.os.PersistableBundle; 55import android.content.IntentSender; 56 57/** 58 * See {@link PackageManager} for documentation on most of the APIs 59 * here. 60 * 61 * {@hide} 62 */ 63interface IPackageManager { 64 void checkPackageStartable(String packageName, int userId); 65 boolean isPackageAvailable(String packageName, int userId); 66 PackageInfo getPackageInfo(String packageName, int flags, int userId); 67 PackageInfo getPackageInfoVersioned(in VersionedPackage versionedPackage, 68 int flags, int userId); 69 int getPackageUid(String packageName, int flags, int userId); 70 int[] getPackageGids(String packageName, int flags, int userId); 71 72 String[] currentToCanonicalPackageNames(in String[] names); 73 String[] canonicalToCurrentPackageNames(in String[] names); 74 75 PermissionInfo getPermissionInfo(String name, String packageName, int flags); 76 77 ParceledListSlice queryPermissionsByGroup(String group, int flags); 78 79 PermissionGroupInfo getPermissionGroupInfo(String name, int flags); 80 81 ParceledListSlice getAllPermissionGroups(int flags); 82 83 ApplicationInfo getApplicationInfo(String packageName, int flags ,int userId); 84 85 ActivityInfo getActivityInfo(in ComponentName className, int flags, int userId); 86 87 boolean activitySupportsIntent(in ComponentName className, in Intent intent, 88 String resolvedType); 89 90 ActivityInfo getReceiverInfo(in ComponentName className, int flags, int userId); 91 92 ServiceInfo getServiceInfo(in ComponentName className, int flags, int userId); 93 94 ProviderInfo getProviderInfo(in ComponentName className, int flags, int userId); 95 96 int checkPermission(String permName, String pkgName, int userId); 97 98 int checkUidPermission(String permName, int uid); 99 100 boolean addPermission(in PermissionInfo info); 101 102 void removePermission(String name); 103 104 void grantRuntimePermission(String packageName, String permissionName, int userId); 105 106 void revokeRuntimePermission(String packageName, String permissionName, int userId); 107 108 void resetRuntimePermissions(); 109 110 int getPermissionFlags(String permissionName, String packageName, int userId); 111 112 void updatePermissionFlags(String permissionName, String packageName, int flagMask, 113 int flagValues, int userId); 114 115 void updatePermissionFlagsForAllApps(int flagMask, int flagValues, int userId); 116 117 boolean shouldShowRequestPermissionRationale(String permissionName, 118 String packageName, int userId); 119 120 boolean isProtectedBroadcast(String actionName); 121 122 int checkSignatures(String pkg1, String pkg2); 123 124 int checkUidSignatures(int uid1, int uid2); 125 126 List<String> getAllPackages(); 127 128 String[] getPackagesForUid(int uid); 129 130 String getNameForUid(int uid); 131 String[] getNamesForUids(in int[] uids); 132 133 int getUidForSharedUser(String sharedUserName); 134 135 int getFlagsForUid(int uid); 136 137 int getPrivateFlagsForUid(int uid); 138 139 boolean isUidPrivileged(int uid); 140 141 String[] getAppOpPermissionPackages(String permissionName); 142 143 ResolveInfo resolveIntent(in Intent intent, String resolvedType, int flags, int userId); 144 145 ResolveInfo findPersistentPreferredActivity(in Intent intent, int userId); 146 147 boolean canForwardTo(in Intent intent, String resolvedType, int sourceUserId, int targetUserId); 148 149 ParceledListSlice queryIntentActivities(in Intent intent, 150 String resolvedType, int flags, int userId); 151 152 ParceledListSlice queryIntentActivityOptions( 153 in ComponentName caller, in Intent[] specifics, 154 in String[] specificTypes, in Intent intent, 155 String resolvedType, int flags, int userId); 156 157 ParceledListSlice queryIntentReceivers(in Intent intent, 158 String resolvedType, int flags, int userId); 159 160 ResolveInfo resolveService(in Intent intent, 161 String resolvedType, int flags, int userId); 162 163 ParceledListSlice queryIntentServices(in Intent intent, 164 String resolvedType, int flags, int userId); 165 166 ParceledListSlice queryIntentContentProviders(in Intent intent, 167 String resolvedType, int flags, int userId); 168 169 /** 170 * This implements getInstalledPackages via a "last returned row" 171 * mechanism that is not exposed in the API. This is to get around the IPC 172 * limit that kicks in when flags are included that bloat up the data 173 * returned. 174 */ 175 ParceledListSlice getInstalledPackages(int flags, in int userId); 176 177 /** 178 * This implements getPackagesHoldingPermissions via a "last returned row" 179 * mechanism that is not exposed in the API. This is to get around the IPC 180 * limit that kicks in when flags are included that bloat up the data 181 * returned. 182 */ 183 ParceledListSlice getPackagesHoldingPermissions(in String[] permissions, 184 int flags, int userId); 185 186 /** 187 * This implements getInstalledApplications via a "last returned row" 188 * mechanism that is not exposed in the API. This is to get around the IPC 189 * limit that kicks in when flags are included that bloat up the data 190 * returned. 191 */ 192 ParceledListSlice getInstalledApplications(int flags, int userId); 193 194 /** 195 * Retrieve all applications that are marked as persistent. 196 * 197 * @return A List<applicationInfo> containing one entry for each persistent 198 * application. 199 */ 200 ParceledListSlice getPersistentApplications(int flags); 201 202 ProviderInfo resolveContentProvider(String name, int flags, int userId); 203 204 /** 205 * Retrieve sync information for all content providers. 206 * 207 * @param outNames Filled in with a list of the root names of the content 208 * providers that can sync. 209 * @param outInfo Filled in with a list of the ProviderInfo for each 210 * name in 'outNames'. 211 */ 212 void querySyncProviders(inout List<String> outNames, 213 inout List<ProviderInfo> outInfo); 214 215 ParceledListSlice queryContentProviders( 216 String processName, int uid, int flags, String metaDataKey); 217 218 InstrumentationInfo getInstrumentationInfo( 219 in ComponentName className, int flags); 220 221 ParceledListSlice queryInstrumentation( 222 String targetPackage, int flags); 223 224 void finishPackageInstall(int token, boolean didLaunch); 225 226 void setInstallerPackageName(in String targetPackage, in String installerPackageName); 227 228 void setApplicationCategoryHint(String packageName, int categoryHint, String callerPackageName); 229 230 /** @deprecated rawr, don't call AIDL methods directly! */ 231 void deletePackageAsUser(in String packageName, int versionCode, 232 IPackageDeleteObserver observer, int userId, int flags); 233 234 /** 235 * Delete a package for a specific user. 236 * 237 * @param versionedPackage The package to delete. 238 * @param observer a callback to use to notify when the package deletion in finished. 239 * @param userId the id of the user for whom to delete the package 240 * @param flags - possible values: {@link #DONT_DELETE_DATA} 241 */ 242 void deletePackageVersioned(in VersionedPackage versionedPackage, 243 IPackageDeleteObserver2 observer, int userId, int flags); 244 245 String getInstallerPackageName(in String packageName); 246 247 void resetApplicationPreferences(int userId); 248 249 ResolveInfo getLastChosenActivity(in Intent intent, 250 String resolvedType, int flags); 251 252 void setLastChosenActivity(in Intent intent, String resolvedType, int flags, 253 in IntentFilter filter, int match, in ComponentName activity); 254 255 void addPreferredActivity(in IntentFilter filter, int match, 256 in ComponentName[] set, in ComponentName activity, int userId); 257 258 void replacePreferredActivity(in IntentFilter filter, int match, 259 in ComponentName[] set, in ComponentName activity, int userId); 260 261 void clearPackagePreferredActivities(String packageName); 262 263 int getPreferredActivities(out List<IntentFilter> outFilters, 264 out List<ComponentName> outActivities, String packageName); 265 266 void addPersistentPreferredActivity(in IntentFilter filter, in ComponentName activity, int userId); 267 268 void clearPackagePersistentPreferredActivities(String packageName, int userId); 269 270 void addCrossProfileIntentFilter(in IntentFilter intentFilter, String ownerPackage, 271 int sourceUserId, int targetUserId, int flags); 272 273 void clearCrossProfileIntentFilters(int sourceUserId, String ownerPackage); 274 275 String[] setPackagesSuspendedAsUser(in String[] packageNames, boolean suspended, 276 in PersistableBundle launcherExtras, in PersistableBundle appExtras, 277 String callingPackage, int userId); 278 279 boolean isPackageSuspendedForUser(String packageName, int userId); 280 281 PersistableBundle getSuspendedPackageAppExtras(String packageName, int userId); 282 283 void setSuspendedPackageAppExtras(String packageName, in PersistableBundle appExtras, 284 int userId); 285 286 /** 287 * Backup/restore support - only the system uid may use these. 288 */ 289 byte[] getPreferredActivityBackup(int userId); 290 void restorePreferredActivities(in byte[] backup, int userId); 291 byte[] getDefaultAppsBackup(int userId); 292 void restoreDefaultApps(in byte[] backup, int userId); 293 byte[] getIntentFilterVerificationBackup(int userId); 294 void restoreIntentFilterVerification(in byte[] backup, int userId); 295 byte[] getPermissionGrantBackup(int userId); 296 void restorePermissionGrants(in byte[] backup, int userId); 297 298 /** 299 * Report the set of 'Home' activity candidates, plus (if any) which of them 300 * is the current "always use this one" setting. 301 */ 302 ComponentName getHomeActivities(out List<ResolveInfo> outHomeCandidates); 303 304 void setHomeActivity(in ComponentName className, int userId); 305 306 /** 307 * As per {@link android.content.pm.PackageManager#setComponentEnabledSetting}. 308 */ 309 void setComponentEnabledSetting(in ComponentName componentName, 310 in int newState, in int flags, int userId); 311 312 /** 313 * As per {@link android.content.pm.PackageManager#getComponentEnabledSetting}. 314 */ 315 int getComponentEnabledSetting(in ComponentName componentName, int userId); 316 317 /** 318 * As per {@link android.content.pm.PackageManager#setApplicationEnabledSetting}. 319 */ 320 void setApplicationEnabledSetting(in String packageName, in int newState, int flags, 321 int userId, String callingPackage); 322 323 /** 324 * As per {@link android.content.pm.PackageManager#getApplicationEnabledSetting}. 325 */ 326 int getApplicationEnabledSetting(in String packageName, int userId); 327 328 /** 329 * Logs process start information (including APK hash) to the security log. 330 */ 331 void logAppProcessStartIfNeeded(String processName, int uid, String seinfo, String apkFile, 332 int pid); 333 334 /** 335 * As per {@link android.content.pm.PackageManager#flushPackageRestrictionsAsUser}. 336 */ 337 void flushPackageRestrictionsAsUser(in int userId); 338 339 /** 340 * Set whether the given package should be considered stopped, making 341 * it not visible to implicit intents that filter out stopped packages. 342 */ 343 void setPackageStoppedState(String packageName, boolean stopped, int userId); 344 345 /** 346 * Free storage by deleting LRU sorted list of cache files across 347 * all applications. If the currently available free storage 348 * on the device is greater than or equal to the requested 349 * free storage, no cache files are cleared. If the currently 350 * available storage on the device is less than the requested 351 * free storage, some or all of the cache files across 352 * all applications are deleted (based on last accessed time) 353 * to increase the free storage space on the device to 354 * the requested value. There is no guarantee that clearing all 355 * the cache files from all applications will clear up 356 * enough storage to achieve the desired value. 357 * @param freeStorageSize The number of bytes of storage to be 358 * freed by the system. Say if freeStorageSize is XX, 359 * and the current free storage is YY, 360 * if XX is less than YY, just return. if not free XX-YY number 361 * of bytes if possible. 362 * @param observer call back used to notify when 363 * the operation is completed 364 */ 365 void freeStorageAndNotify(in String volumeUuid, in long freeStorageSize, 366 int storageFlags, IPackageDataObserver observer); 367 368 /** 369 * Free storage by deleting LRU sorted list of cache files across 370 * all applications. If the currently available free storage 371 * on the device is greater than or equal to the requested 372 * free storage, no cache files are cleared. If the currently 373 * available storage on the device is less than the requested 374 * free storage, some or all of the cache files across 375 * all applications are deleted (based on last accessed time) 376 * to increase the free storage space on the device to 377 * the requested value. There is no guarantee that clearing all 378 * the cache files from all applications will clear up 379 * enough storage to achieve the desired value. 380 * @param freeStorageSize The number of bytes of storage to be 381 * freed by the system. Say if freeStorageSize is XX, 382 * and the current free storage is YY, 383 * if XX is less than YY, just return. if not free XX-YY number 384 * of bytes if possible. 385 * @param pi IntentSender call back used to 386 * notify when the operation is completed.May be null 387 * to indicate that no call back is desired. 388 */ 389 void freeStorage(in String volumeUuid, in long freeStorageSize, 390 int storageFlags, in IntentSender pi); 391 392 /** 393 * Delete all the cache files in an applications cache directory 394 * @param packageName The package name of the application whose cache 395 * files need to be deleted 396 * @param observer a callback used to notify when the deletion is finished. 397 */ 398 void deleteApplicationCacheFiles(in String packageName, IPackageDataObserver observer); 399 400 /** 401 * Delete all the cache files in an applications cache directory 402 * @param packageName The package name of the application whose cache 403 * files need to be deleted 404 * @param userId the user to delete application cache for 405 * @param observer a callback used to notify when the deletion is finished. 406 */ 407 void deleteApplicationCacheFilesAsUser(in String packageName, int userId, IPackageDataObserver observer); 408 409 /** 410 * Clear the user data directory of an application. 411 * @param packageName The package name of the application whose cache 412 * files need to be deleted 413 * @param observer a callback used to notify when the operation is completed. 414 */ 415 void clearApplicationUserData(in String packageName, IPackageDataObserver observer, int userId); 416 417 /** 418 * Clear the profile data of an application. 419 * @param packageName The package name of the application whose profile data 420 * need to be deleted 421 */ 422 void clearApplicationProfileData(in String packageName); 423 424 /** 425 * Get package statistics including the code, data and cache size for 426 * an already installed package 427 * @param packageName The package name of the application 428 * @param userHandle Which user the size should be retrieved for 429 * @param observer a callback to use to notify when the asynchronous 430 * retrieval of information is complete. 431 */ 432 void getPackageSizeInfo(in String packageName, int userHandle, IPackageStatsObserver observer); 433 434 /** 435 * Get a list of shared libraries that are available on the 436 * system. 437 */ 438 String[] getSystemSharedLibraryNames(); 439 440 /** 441 * Get a list of features that are available on the 442 * system. 443 */ 444 ParceledListSlice getSystemAvailableFeatures(); 445 446 boolean hasSystemFeature(String name, int version); 447 448 void enterSafeMode(); 449 boolean isSafeMode(); 450 void systemReady(); 451 boolean hasSystemUidErrors(); 452 453 /** 454 * Ask the package manager to fstrim the disk if needed. 455 */ 456 void performFstrimIfNeeded(); 457 458 /** 459 * Ask the package manager to update packages if needed. 460 */ 461 void updatePackagesIfNeeded(); 462 463 /** 464 * Notify the package manager that a package is going to be used and why. 465 * 466 * See PackageManager.NOTIFY_PACKAGE_USE_* for reasons. 467 */ 468 oneway void notifyPackageUse(String packageName, int reason); 469 470 /** 471 * Notify the package manager that a list of dex files have been loaded. 472 * 473 * @param loadingPackageName the name of the package who performs the load 474 * @param classLoadersNames the names of the class loaders present in the loading chain. The 475 * list encodes the class loader chain in the natural order. The first class loader has 476 * the second one as its parent and so on. The dex files present in the class path of the 477 * first class loader will be recorded in the usage file. 478 * @param classPaths the class paths corresponding to the class loaders names from 479 * {@param classLoadersNames}. The the first element corresponds to the first class loader 480 * and so on. A classpath is represented as a list of dex files separated by 481 * {@code File.pathSeparator}. 482 * The dex files found in the first class path will be recorded in the usage file. 483 * @param loaderIsa the ISA of the loader process 484 */ 485 oneway void notifyDexLoad(String loadingPackageName, in List<String> classLoadersNames, 486 in List<String> classPaths, String loaderIsa); 487 488 /** 489 * Register an application dex module with the package manager. 490 * The package manager will keep track of the given module for future optimizations. 491 * 492 * Dex module optimizations will disable the classpath checking at runtime. The client bares 493 * the responsibility to ensure that the static assumptions on classes in the optimized code 494 * hold at runtime (e.g. there's no duplicate classes in the classpath). 495 * 496 * Note that the package manager already keeps track of dex modules loaded with 497 * {@link dalvik.system.DexClassLoader} and {@link dalvik.system.PathClassLoader}. 498 * This can be called for an eager registration. 499 * 500 * The call might take a while and the results will be posted on the main thread, using 501 * the given callback. 502 * 503 * If the module is intended to be shared with other apps, make sure that the file 504 * permissions allow for it. 505 * If at registration time the permissions allow for others to read it, the module would 506 * be marked as a shared module which might undergo a different optimization strategy. 507 * (usually shared modules will generated larger optimizations artifacts, 508 * taking more disk space). 509 * 510 * @param packageName the package name to which the dex module belongs 511 * @param dexModulePath the absolute path of the dex module. 512 * @param isSharedModule whether or not the module is intended to be used by other apps. 513 * @param callback if not null, 514 * {@link android.content.pm.IDexModuleRegisterCallback.IDexModuleRegisterCallback#onDexModuleRegistered} 515 * will be called once the registration finishes. 516 */ 517 oneway void registerDexModule(in String packageName, in String dexModulePath, 518 in boolean isSharedModule, IDexModuleRegisterCallback callback); 519 520 /** 521 * Ask the package manager to perform a dex-opt with the given compiler filter. 522 * 523 * Note: exposed only for the shell command to allow moving packages explicitly to a 524 * definite state. 525 */ 526 boolean performDexOptMode(String packageName, boolean checkProfiles, 527 String targetCompilerFilter, boolean force, boolean bootComplete, String splitName); 528 529 /** 530 * Ask the package manager to perform a dex-opt with the given compiler filter on the 531 * secondary dex files belonging to the given package. 532 * 533 * Note: exposed only for the shell command to allow moving packages explicitly to a 534 * definite state. 535 */ 536 boolean performDexOptSecondary(String packageName, 537 String targetCompilerFilter, boolean force); 538 539 /** 540 * Ask the package manager to dump profiles associated with a package. 541 */ 542 void dumpProfiles(String packageName); 543 544 void forceDexOpt(String packageName); 545 546 /** 547 * Execute the background dexopt job immediately on packages in packageNames. 548 * If null, then execute on all packages. 549 */ 550 boolean runBackgroundDexoptJob(in List<String> packageNames); 551 552 /** 553 * Reconcile the information we have about the secondary dex files belonging to 554 * {@code packagName} and the actual dex files. For all dex files that were 555 * deleted, update the internal records and delete the generated oat files. 556 */ 557 void reconcileSecondaryDexFiles(String packageName); 558 559 PackageCleanItem nextPackageToClean(in PackageCleanItem lastPackage); 560 561 int getMoveStatus(int moveId); 562 563 void registerMoveCallback(in IPackageMoveObserver callback); 564 void unregisterMoveCallback(in IPackageMoveObserver callback); 565 566 int movePackage(in String packageName, in String volumeUuid); 567 int movePrimaryStorage(in String volumeUuid); 568 569 boolean addPermissionAsync(in PermissionInfo info); 570 571 boolean setInstallLocation(int loc); 572 int getInstallLocation(); 573 574 int installExistingPackageAsUser(String packageName, int userId, int installFlags, 575 int installReason); 576 577 void verifyPendingInstall(int id, int verificationCode); 578 void extendVerificationTimeout(int id, int verificationCodeAtTimeout, long millisecondsToDelay); 579 580 void verifyIntentFilter(int id, int verificationCode, in List<String> failedDomains); 581 int getIntentVerificationStatus(String packageName, int userId); 582 boolean updateIntentVerificationStatus(String packageName, int status, int userId); 583 ParceledListSlice getIntentFilterVerifications(String packageName); 584 ParceledListSlice getAllIntentFilters(String packageName); 585 586 boolean setDefaultBrowserPackageName(String packageName, int userId); 587 String getDefaultBrowserPackageName(int userId); 588 589 VerifierDeviceIdentity getVerifierDeviceIdentity(); 590 591 boolean isFirstBoot(); 592 boolean isOnlyCoreApps(); 593 boolean isUpgrade(); 594 595 void setPermissionEnforced(String permission, boolean enforced); 596 boolean isPermissionEnforced(String permission); 597 598 /** Reflects current DeviceStorageMonitorService state */ 599 boolean isStorageLow(); 600 601 boolean setApplicationHiddenSettingAsUser(String packageName, boolean hidden, int userId); 602 boolean getApplicationHiddenSettingAsUser(String packageName, int userId); 603 604 IPackageInstaller getPackageInstaller(); 605 606 boolean setBlockUninstallForUser(String packageName, boolean blockUninstall, int userId); 607 boolean getBlockUninstallForUser(String packageName, int userId); 608 609 KeySet getKeySetByAlias(String packageName, String alias); 610 KeySet getSigningKeySet(String packageName); 611 boolean isPackageSignedByKeySet(String packageName, in KeySet ks); 612 boolean isPackageSignedByKeySetExactly(String packageName, in KeySet ks); 613 614 void addOnPermissionsChangeListener(in IOnPermissionsChangeListener listener); 615 void removeOnPermissionsChangeListener(in IOnPermissionsChangeListener listener); 616 void grantDefaultPermissionsToEnabledCarrierApps(in String[] packageNames, int userId); 617 void grantDefaultPermissionsToEnabledImsServices(in String[] packageNames, int userId); 618 619 boolean isPermissionRevokedByPolicy(String permission, String packageName, int userId); 620 621 String getPermissionControllerPackageName(); 622 623 ParceledListSlice getInstantApps(int userId); 624 byte[] getInstantAppCookie(String packageName, int userId); 625 boolean setInstantAppCookie(String packageName, in byte[] cookie, int userId); 626 Bitmap getInstantAppIcon(String packageName, int userId); 627 boolean isInstantApp(String packageName, int userId); 628 629 boolean setRequiredForSystemUser(String packageName, boolean systemUserApp); 630 631 /** 632 * Sets whether or not an update is available. Ostensibly for instant apps 633 * to force exteranl resolution. 634 */ 635 void setUpdateAvailable(String packageName, boolean updateAvaialble); 636 637 String getServicesSystemSharedLibraryPackageName(); 638 String getSharedSystemSharedLibraryPackageName(); 639 640 ChangedPackages getChangedPackages(int sequenceNumber, int userId); 641 642 boolean isPackageDeviceAdminOnAnyUser(String packageName); 643 644 List<String> getPreviousCodePaths(in String packageName); 645 646 int getInstallReason(String packageName, int userId); 647 648 ParceledListSlice getSharedLibraries(in String packageName, int flags, int userId); 649 650 boolean canRequestPackageInstalls(String packageName, int userId); 651 652 void deletePreloadsFileCache(); 653 654 ComponentName getInstantAppResolverComponent(); 655 656 ComponentName getInstantAppResolverSettingsComponent(); 657 658 ComponentName getInstantAppInstallerComponent(); 659 660 String getInstantAppAndroidId(String packageName, int userId); 661 662 IArtManager getArtManager(); 663 664 void setHarmfulAppWarning(String packageName, CharSequence warning, int userId); 665 666 CharSequence getHarmfulAppWarning(String packageName, int userId); 667 668 boolean hasSigningCertificate(String packageName, in byte[] signingCertificate, int flags); 669 670 boolean hasUidSigningCertificate(int uid, in byte[] signingCertificate, int flags); 671 672 String getSystemTextClassifierPackageName(); 673} 674