1 /* 2 * Copyright (C) 2020 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.server.pm.pkg; 18 19 import android.annotation.IntDef; 20 import android.annotation.NonNull; 21 import android.annotation.Nullable; 22 import android.content.pm.ApplicationInfo; 23 import android.content.pm.PackageManager; 24 import android.content.pm.PackageManagerInternal; 25 import android.content.pm.SigningInfo; 26 import android.content.pm.overlay.OverlayPaths; 27 import android.os.UserHandle; 28 import android.util.ArraySet; 29 import android.util.SparseArray; 30 31 import com.android.internal.util.DataClass; 32 import com.android.server.pm.PackageManagerService; 33 import com.android.server.pm.PackageSetting; 34 import com.android.server.pm.Settings; 35 36 import java.io.File; 37 import java.util.Collections; 38 import java.util.List; 39 import java.util.Map; 40 import java.util.Set; 41 import java.util.function.Consumer; 42 43 /** 44 * Because a {@link PackageSetting} cannot be returned from {@link Settings} without holding the 45 * {@link PackageManagerService#mLock}, this class serves as a memory snapshot of the state of a 46 * single package, for use with {@link PackageManagerInternal#getPackageState(String)} and {@link 47 * PackageManagerInternal#forEachPackageState(boolean, Consumer)}. 48 * 49 * @hide 50 */ 51 @DataClass(genConstructor = false) 52 @DataClass.Suppress({"mUserStates"}) 53 public class PackageStateImpl implements PackageState { 54 copy(@onNull PackageStateInternal pkgSetting)55 public static PackageState copy(@NonNull PackageStateInternal pkgSetting) { 56 return new PackageStateImpl(pkgSetting, pkgSetting.getPkg()); 57 } 58 59 private static class Booleans { 60 @IntDef({ 61 SYSTEM, 62 EXTERNAL_STORAGE, 63 PRIVILEGED, 64 OEM, 65 VENDOR, 66 PRODUCT, 67 SYSTEM_EXT, 68 REQUIRED_FOR_SYSTEM_USER, 69 ODM, 70 FORCE_QUERYABLE_OVERRIDE, 71 HIDDEN_UNTIL_INSTALLED, 72 INSTALL_PERMISSIONS_FIXED, 73 UPDATE_AVAILABLE, 74 UPDATED_SYSTEM_APP, 75 APK_IN_UPDATED_APEX, 76 }) 77 public @interface Flags { 78 } 79 80 private static final int SYSTEM = 1; 81 private static final int EXTERNAL_STORAGE = 1 << 1; 82 private static final int PRIVILEGED = 1 << 2; 83 private static final int OEM = 1 << 3; 84 private static final int VENDOR = 1 << 4; 85 private static final int PRODUCT = 1 << 5; 86 private static final int SYSTEM_EXT = 1 << 6; 87 private static final int REQUIRED_FOR_SYSTEM_USER = 1 << 7; 88 private static final int ODM = 1 << 8; 89 private static final int FORCE_QUERYABLE_OVERRIDE = 1 << 9; 90 private static final int HIDDEN_UNTIL_INSTALLED = 1 << 10; 91 private static final int INSTALL_PERMISSIONS_FIXED = 1 << 11; 92 private static final int UPDATE_AVAILABLE = 1 << 12; 93 private static final int UPDATED_SYSTEM_APP = 1 << 13; 94 private static final int APK_IN_UPDATED_APEX = 1 << 14; 95 } 96 97 private int mBooleans; 98 setBoolean(@ooleans.Flags int flag, boolean value)99 private void setBoolean(@Booleans.Flags int flag, boolean value) { 100 if (value) { 101 mBooleans |= flag; 102 } else { 103 mBooleans &= ~flag; 104 } 105 } 106 getBoolean(@ooleans.Flags int flag)107 private boolean getBoolean(@Booleans.Flags int flag) { 108 return (mBooleans & flag) != 0; 109 } 110 111 @Nullable 112 private final AndroidPackage mAndroidPackage; 113 114 @NonNull 115 private final String mPackageName; 116 @Nullable 117 private final String mVolumeUuid; 118 private final int mAppId; 119 private final int mCategoryOverride; 120 @Nullable 121 private final String mCpuAbiOverride; 122 @ApplicationInfo.HiddenApiEnforcementPolicy 123 private final int mHiddenApiEnforcementPolicy; 124 private final long mLastModifiedTime; 125 private final long mLastUpdateTime; 126 private final long mLongVersionCode; 127 @NonNull 128 private final Map<String, Set<String>> mMimeGroups; 129 @NonNull 130 private final File mPath; 131 @Nullable 132 private final String mPrimaryCpuAbi; 133 @Nullable 134 private final String mSecondaryCpuAbi; 135 @Nullable 136 private final String mSeInfo; 137 private final boolean mHasSharedUser; 138 private final int mSharedUserAppId; 139 @NonNull 140 private final String[] mUsesSdkLibraries; 141 @NonNull 142 private final long[] mUsesSdkLibrariesVersionsMajor; 143 @NonNull 144 private final String[] mUsesStaticLibraries; 145 @NonNull 146 private final long[] mUsesStaticLibrariesVersions; 147 @NonNull 148 private final List<SharedLibrary> mUsesLibraries; 149 @NonNull 150 private final List<String> mUsesLibraryFiles; 151 @NonNull 152 private final long[] mLastPackageUsageTime; 153 @NonNull 154 private final SigningInfo mSigningInfo; 155 @NonNull 156 private final SparseArray<PackageUserState> mUserStates; 157 @Nullable 158 private final String mApexModuleName; 159 PackageStateImpl(@onNull PackageState pkgState, @Nullable AndroidPackage pkg)160 private PackageStateImpl(@NonNull PackageState pkgState, @Nullable AndroidPackage pkg) { 161 mAndroidPackage = pkg; 162 163 setBoolean(Booleans.SYSTEM, pkgState.isSystem()); 164 setBoolean(Booleans.EXTERNAL_STORAGE, pkgState.isExternalStorage()); 165 setBoolean(Booleans.PRIVILEGED, pkgState.isPrivileged()); 166 setBoolean(Booleans.OEM, pkgState.isOem()); 167 setBoolean(Booleans.VENDOR, pkgState.isVendor()); 168 setBoolean(Booleans.PRODUCT, pkgState.isProduct()); 169 setBoolean(Booleans.SYSTEM_EXT, pkgState.isSystemExt()); 170 setBoolean(Booleans.REQUIRED_FOR_SYSTEM_USER, pkgState.isRequiredForSystemUser()); 171 setBoolean(Booleans.ODM, pkgState.isOdm()); 172 173 mPackageName = pkgState.getPackageName(); 174 mVolumeUuid = pkgState.getVolumeUuid(); 175 mAppId = pkgState.getAppId(); 176 mCategoryOverride = pkgState.getCategoryOverride(); 177 mCpuAbiOverride = pkgState.getCpuAbiOverride(); 178 mHiddenApiEnforcementPolicy = pkgState.getHiddenApiEnforcementPolicy(); 179 mLastModifiedTime = pkgState.getLastModifiedTime(); 180 mLastUpdateTime = pkgState.getLastUpdateTime(); 181 mLongVersionCode = pkgState.getVersionCode(); 182 mMimeGroups = Collections.unmodifiableMap(pkgState.getMimeGroups()); 183 mPath = pkgState.getPath(); 184 mPrimaryCpuAbi = pkgState.getPrimaryCpuAbi(); 185 mSecondaryCpuAbi = pkgState.getSecondaryCpuAbi(); 186 mSeInfo = pkgState.getSeInfo(); 187 mHasSharedUser = pkgState.hasSharedUser(); 188 mSharedUserAppId = pkgState.getSharedUserAppId(); 189 mUsesSdkLibraries = pkgState.getUsesSdkLibraries(); 190 mUsesSdkLibrariesVersionsMajor = pkgState.getUsesSdkLibrariesVersionsMajor(); 191 mUsesStaticLibraries = pkgState.getUsesStaticLibraries(); 192 mUsesStaticLibrariesVersions = pkgState.getUsesStaticLibrariesVersions(); 193 mUsesLibraries = Collections.unmodifiableList(pkgState.getSharedLibraryDependencies()); 194 mUsesLibraryFiles = Collections.unmodifiableList(pkgState.getUsesLibraryFiles()); 195 setBoolean(Booleans.FORCE_QUERYABLE_OVERRIDE, pkgState.isForceQueryableOverride()); 196 setBoolean(Booleans.HIDDEN_UNTIL_INSTALLED, pkgState.isHiddenUntilInstalled()); 197 setBoolean(Booleans.INSTALL_PERMISSIONS_FIXED, pkgState.isInstallPermissionsFixed()); 198 setBoolean(Booleans.UPDATE_AVAILABLE, pkgState.isUpdateAvailable()); 199 mLastPackageUsageTime = pkgState.getLastPackageUsageTime(); 200 setBoolean(Booleans.UPDATED_SYSTEM_APP, pkgState.isUpdatedSystemApp()); 201 setBoolean(Booleans.APK_IN_UPDATED_APEX, pkgState.isApkInUpdatedApex()); 202 mSigningInfo = pkgState.getSigningInfo(); 203 204 SparseArray<? extends PackageUserState> userStates = pkgState.getUserStates(); 205 int userStatesSize = userStates.size(); 206 mUserStates = new SparseArray<>(userStatesSize); 207 for (int index = 0; index < userStatesSize; index++) { 208 mUserStates.put(userStates.keyAt(index), 209 UserStateImpl.copy(userStates.valueAt(index))); 210 } 211 212 mApexModuleName = pkgState.getApexModuleName(); 213 } 214 215 @NonNull 216 @Override getStateForUser(@onNull UserHandle user)217 public PackageUserState getStateForUser(@NonNull UserHandle user) { 218 PackageUserState userState = getUserStates().get(user.getIdentifier()); 219 return userState == null ? PackageUserState.DEFAULT : userState; 220 } 221 222 @Override isExternalStorage()223 public boolean isExternalStorage() { 224 return getBoolean(Booleans.EXTERNAL_STORAGE); 225 } 226 227 @Override isForceQueryableOverride()228 public boolean isForceQueryableOverride() { 229 return getBoolean(Booleans.FORCE_QUERYABLE_OVERRIDE); 230 } 231 232 @Override isHiddenUntilInstalled()233 public boolean isHiddenUntilInstalled() { 234 return getBoolean(Booleans.HIDDEN_UNTIL_INSTALLED); 235 } 236 237 @Override isInstallPermissionsFixed()238 public boolean isInstallPermissionsFixed() { 239 return getBoolean(Booleans.INSTALL_PERMISSIONS_FIXED); 240 } 241 242 @Override isOdm()243 public boolean isOdm() { 244 return getBoolean(Booleans.ODM); 245 } 246 247 @Override isOem()248 public boolean isOem() { 249 return getBoolean(Booleans.OEM); 250 } 251 252 @Override isPrivileged()253 public boolean isPrivileged() { 254 return getBoolean(Booleans.PRIVILEGED); 255 } 256 257 @Override isProduct()258 public boolean isProduct() { 259 return getBoolean(Booleans.PRODUCT); 260 } 261 262 @Override isRequiredForSystemUser()263 public boolean isRequiredForSystemUser() { 264 return getBoolean(Booleans.REQUIRED_FOR_SYSTEM_USER); 265 } 266 267 @Override isSystem()268 public boolean isSystem() { 269 return getBoolean(Booleans.SYSTEM); 270 } 271 272 @Override isSystemExt()273 public boolean isSystemExt() { 274 return getBoolean(Booleans.SYSTEM_EXT); 275 } 276 277 @Override isUpdateAvailable()278 public boolean isUpdateAvailable() { 279 return getBoolean(Booleans.UPDATE_AVAILABLE); 280 } 281 282 @Override isUpdatedSystemApp()283 public boolean isUpdatedSystemApp() { 284 return getBoolean(Booleans.UPDATED_SYSTEM_APP); 285 } 286 287 @Override isApkInUpdatedApex()288 public boolean isApkInUpdatedApex() { 289 return getBoolean(Booleans.APK_IN_UPDATED_APEX); 290 } 291 292 @Override isVendor()293 public boolean isVendor() { 294 return getBoolean(Booleans.VENDOR); 295 } 296 297 @Override getVersionCode()298 public long getVersionCode() { 299 return mLongVersionCode; 300 } 301 302 @Override hasSharedUser()303 public boolean hasSharedUser() { 304 return mHasSharedUser; 305 } 306 307 @Override isApex()308 public boolean isApex() { 309 return getAndroidPackage() != null && getAndroidPackage().isApex(); 310 } 311 312 /** 313 * @hide 314 */ 315 @DataClass(genConstructor = false) 316 public static class UserStateImpl implements PackageUserState { 317 copy(@onNull PackageUserState state)318 public static PackageUserState copy(@NonNull PackageUserState state) { 319 return new UserStateImpl(state); 320 } 321 322 private static class Booleans { 323 @IntDef({ 324 HIDDEN, 325 INSTALLED, 326 INSTANT_APP, 327 NOT_LAUNCHED, 328 STOPPED, 329 SUSPENDED, 330 VIRTUAL_PRELOAD, 331 }) 332 public @interface Flags { 333 } 334 335 private static final int HIDDEN = 1; 336 private static final int INSTALLED = 1 << 1; 337 private static final int INSTANT_APP = 1 << 2; 338 private static final int NOT_LAUNCHED = 1 << 3; 339 private static final int STOPPED = 1 << 4; 340 private static final int SUSPENDED = 1 << 5; 341 private static final int VIRTUAL_PRELOAD = 1 << 6; 342 } 343 344 private int mBooleans; 345 setBoolean(@ooleans.Flags int flag, boolean value)346 private void setBoolean(@Booleans.Flags int flag, boolean value) { 347 if (value) { 348 mBooleans |= flag; 349 } else { 350 mBooleans &= ~flag; 351 } 352 } 353 getBoolean(@ooleans.Flags int flag)354 private boolean getBoolean(@Booleans.Flags int flag) { 355 return (mBooleans & flag) != 0; 356 } 357 358 private final long mCeDataInode; 359 @NonNull 360 private final ArraySet<String> mDisabledComponents; 361 @PackageManager.DistractionRestriction 362 private final int mDistractionFlags; 363 @NonNull 364 private final ArraySet<String> mEnabledComponents; 365 private final int mEnabledState; 366 @Nullable 367 private final String mHarmfulAppWarning; 368 @PackageManager.InstallReason 369 private final int mInstallReason; 370 @Nullable 371 private final String mLastDisableAppCaller; 372 @NonNull 373 private final OverlayPaths mOverlayPaths; 374 @NonNull 375 private final Map<String, OverlayPaths> mSharedLibraryOverlayPaths; 376 @PackageManager.UninstallReason 377 private final int mUninstallReason; 378 @Nullable 379 private final String mSplashScreenTheme; 380 @PackageManager.UserMinAspectRatio 381 private final int mMinAspectRatio; 382 private final long mFirstInstallTimeMillis; 383 UserStateImpl(@onNull PackageUserState userState)384 private UserStateImpl(@NonNull PackageUserState userState) { 385 mCeDataInode = userState.getCeDataInode(); 386 mDisabledComponents = userState.getDisabledComponents(); 387 mDistractionFlags = userState.getDistractionFlags(); 388 mEnabledComponents = userState.getEnabledComponents(); 389 mEnabledState = userState.getEnabledState(); 390 mHarmfulAppWarning = userState.getHarmfulAppWarning(); 391 mInstallReason = userState.getInstallReason(); 392 mLastDisableAppCaller = userState.getLastDisableAppCaller(); 393 mOverlayPaths = userState.getOverlayPaths(); 394 mSharedLibraryOverlayPaths = userState.getSharedLibraryOverlayPaths(); 395 mUninstallReason = userState.getUninstallReason(); 396 mSplashScreenTheme = userState.getSplashScreenTheme(); 397 mMinAspectRatio = userState.getMinAspectRatio(); 398 setBoolean(Booleans.HIDDEN, userState.isHidden()); 399 setBoolean(Booleans.INSTALLED, userState.isInstalled()); 400 setBoolean(Booleans.INSTANT_APP, userState.isInstantApp()); 401 setBoolean(Booleans.NOT_LAUNCHED, userState.isNotLaunched()); 402 setBoolean(Booleans.STOPPED, userState.isStopped()); 403 setBoolean(Booleans.SUSPENDED, userState.isSuspended()); 404 setBoolean(Booleans.VIRTUAL_PRELOAD, userState.isVirtualPreload()); 405 mFirstInstallTimeMillis = userState.getFirstInstallTimeMillis(); 406 } 407 408 @Override isHidden()409 public boolean isHidden() { 410 return getBoolean(Booleans.HIDDEN); 411 } 412 413 @Override isInstalled()414 public boolean isInstalled() { 415 return getBoolean(Booleans.INSTALLED); 416 } 417 418 @Override isInstantApp()419 public boolean isInstantApp() { 420 return getBoolean(Booleans.INSTANT_APP); 421 } 422 423 @Override isNotLaunched()424 public boolean isNotLaunched() { 425 return getBoolean(Booleans.NOT_LAUNCHED); 426 } 427 428 @Override isStopped()429 public boolean isStopped() { 430 return getBoolean(Booleans.STOPPED); 431 } 432 433 @Override isSuspended()434 public boolean isSuspended() { 435 return getBoolean(Booleans.SUSPENDED); 436 } 437 438 @Override isVirtualPreload()439 public boolean isVirtualPreload() { 440 return getBoolean(Booleans.VIRTUAL_PRELOAD); 441 } 442 443 @Override isComponentEnabled(String componentName)444 public boolean isComponentEnabled(String componentName) { 445 return mEnabledComponents.contains(componentName); 446 } 447 448 @Override isComponentDisabled(String componentName)449 public boolean isComponentDisabled(String componentName) { 450 return mDisabledComponents.contains(componentName); 451 } 452 453 @Override getAllOverlayPaths()454 public OverlayPaths getAllOverlayPaths() { 455 if (mOverlayPaths == null && mSharedLibraryOverlayPaths == null) { 456 return null; 457 } 458 final OverlayPaths.Builder newPaths = new OverlayPaths.Builder(); 459 newPaths.addAll(mOverlayPaths); 460 if (mSharedLibraryOverlayPaths != null) { 461 for (final OverlayPaths libOverlayPaths : mSharedLibraryOverlayPaths.values()) { 462 newPaths.addAll(libOverlayPaths); 463 } 464 } 465 return newPaths.build(); 466 } 467 468 469 470 // Code below generated by codegen v1.0.23. 471 // 472 // DO NOT MODIFY! 473 // CHECKSTYLE:OFF Generated code 474 // 475 // To regenerate run: 476 // $ codegen $ANDROID_BUILD_TOP/frameworks/base/services/core/java/com/android/server/pm/pkg/PackageStateImpl.java 477 // 478 // To exclude the generated code from IntelliJ auto-formatting enable (one-time): 479 // Settings > Editor > Code Style > Formatter Control 480 //@formatter:off 481 482 483 @DataClass.Generated.Member getBooleans()484 public int getBooleans() { 485 return mBooleans; 486 } 487 488 @DataClass.Generated.Member getCeDataInode()489 public long getCeDataInode() { 490 return mCeDataInode; 491 } 492 493 @DataClass.Generated.Member getDisabledComponents()494 public @NonNull ArraySet<String> getDisabledComponents() { 495 return mDisabledComponents; 496 } 497 498 @DataClass.Generated.Member getDistractionFlags()499 public @PackageManager.DistractionRestriction int getDistractionFlags() { 500 return mDistractionFlags; 501 } 502 503 @DataClass.Generated.Member getEnabledComponents()504 public @NonNull ArraySet<String> getEnabledComponents() { 505 return mEnabledComponents; 506 } 507 508 @DataClass.Generated.Member getEnabledState()509 public int getEnabledState() { 510 return mEnabledState; 511 } 512 513 @DataClass.Generated.Member getHarmfulAppWarning()514 public @Nullable String getHarmfulAppWarning() { 515 return mHarmfulAppWarning; 516 } 517 518 @DataClass.Generated.Member getInstallReason()519 public @PackageManager.InstallReason int getInstallReason() { 520 return mInstallReason; 521 } 522 523 @DataClass.Generated.Member getLastDisableAppCaller()524 public @Nullable String getLastDisableAppCaller() { 525 return mLastDisableAppCaller; 526 } 527 528 @DataClass.Generated.Member getOverlayPaths()529 public @NonNull OverlayPaths getOverlayPaths() { 530 return mOverlayPaths; 531 } 532 533 @DataClass.Generated.Member getSharedLibraryOverlayPaths()534 public @NonNull Map<String,OverlayPaths> getSharedLibraryOverlayPaths() { 535 return mSharedLibraryOverlayPaths; 536 } 537 538 @DataClass.Generated.Member getUninstallReason()539 public @PackageManager.UninstallReason int getUninstallReason() { 540 return mUninstallReason; 541 } 542 543 @DataClass.Generated.Member getSplashScreenTheme()544 public @Nullable String getSplashScreenTheme() { 545 return mSplashScreenTheme; 546 } 547 548 @DataClass.Generated.Member getMinAspectRatio()549 public @PackageManager.UserMinAspectRatio int getMinAspectRatio() { 550 return mMinAspectRatio; 551 } 552 553 @DataClass.Generated.Member getFirstInstallTimeMillis()554 public long getFirstInstallTimeMillis() { 555 return mFirstInstallTimeMillis; 556 } 557 558 @DataClass.Generated.Member setBooleans( int value)559 public @NonNull UserStateImpl setBooleans( int value) { 560 mBooleans = value; 561 return this; 562 } 563 564 @DataClass.Generated( 565 time = 1687938966108L, 566 codegenVersion = "1.0.23", 567 sourceFile = "frameworks/base/services/core/java/com/android/server/pm/pkg/PackageStateImpl.java", 568 inputSignatures = "private int mBooleans\nprivate final long mCeDataInode\nprivate final @android.annotation.NonNull android.util.ArraySet<java.lang.String> mDisabledComponents\nprivate final @android.content.pm.PackageManager.DistractionRestriction int mDistractionFlags\nprivate final @android.annotation.NonNull android.util.ArraySet<java.lang.String> mEnabledComponents\nprivate final int mEnabledState\nprivate final @android.annotation.Nullable java.lang.String mHarmfulAppWarning\nprivate final @android.content.pm.PackageManager.InstallReason int mInstallReason\nprivate final @android.annotation.Nullable java.lang.String mLastDisableAppCaller\nprivate final @android.annotation.NonNull android.content.pm.overlay.OverlayPaths mOverlayPaths\nprivate final @android.annotation.NonNull java.util.Map<java.lang.String,android.content.pm.overlay.OverlayPaths> mSharedLibraryOverlayPaths\nprivate final @android.content.pm.PackageManager.UninstallReason int mUninstallReason\nprivate final @android.annotation.Nullable java.lang.String mSplashScreenTheme\nprivate final @android.content.pm.PackageManager.UserMinAspectRatio int mMinAspectRatio\nprivate final long mFirstInstallTimeMillis\npublic static com.android.server.pm.pkg.PackageUserState copy(com.android.server.pm.pkg.PackageUserState)\nprivate void setBoolean(int,boolean)\nprivate boolean getBoolean(int)\npublic @java.lang.Override boolean isHidden()\npublic @java.lang.Override boolean isInstalled()\npublic @java.lang.Override boolean isInstantApp()\npublic @java.lang.Override boolean isNotLaunched()\npublic @java.lang.Override boolean isStopped()\npublic @java.lang.Override boolean isSuspended()\npublic @java.lang.Override boolean isVirtualPreload()\npublic @java.lang.Override boolean isComponentEnabled(java.lang.String)\npublic @java.lang.Override boolean isComponentDisabled(java.lang.String)\npublic @java.lang.Override android.content.pm.overlay.OverlayPaths getAllOverlayPaths()\nclass UserStateImpl extends java.lang.Object implements [com.android.server.pm.pkg.PackageUserState]\nprivate static final int HIDDEN\nprivate static final int INSTALLED\nprivate static final int INSTANT_APP\nprivate static final int NOT_LAUNCHED\nprivate static final int STOPPED\nprivate static final int SUSPENDED\nprivate static final int VIRTUAL_PRELOAD\nclass Booleans extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false)") 569 @Deprecated __metadata()570 private void __metadata() {} 571 572 573 //@formatter:on 574 // End of generated code 575 576 } 577 578 579 580 // Code below generated by codegen v1.0.23. 581 // 582 // DO NOT MODIFY! 583 // CHECKSTYLE:OFF Generated code 584 // 585 // To regenerate run: 586 // $ codegen $ANDROID_BUILD_TOP/frameworks/base/services/core/java/com/android/server/pm/pkg/PackageStateImpl.java 587 // 588 // To exclude the generated code from IntelliJ auto-formatting enable (one-time): 589 // Settings > Editor > Code Style > Formatter Control 590 //@formatter:off 591 592 593 @DataClass.Generated.Member getBooleans()594 public int getBooleans() { 595 return mBooleans; 596 } 597 598 @DataClass.Generated.Member getAndroidPackage()599 public @Nullable AndroidPackage getAndroidPackage() { 600 return mAndroidPackage; 601 } 602 603 @DataClass.Generated.Member getPackageName()604 public @NonNull String getPackageName() { 605 return mPackageName; 606 } 607 608 @DataClass.Generated.Member getVolumeUuid()609 public @Nullable String getVolumeUuid() { 610 return mVolumeUuid; 611 } 612 613 @DataClass.Generated.Member getAppId()614 public int getAppId() { 615 return mAppId; 616 } 617 618 @DataClass.Generated.Member getCategoryOverride()619 public int getCategoryOverride() { 620 return mCategoryOverride; 621 } 622 623 @DataClass.Generated.Member getCpuAbiOverride()624 public @Nullable String getCpuAbiOverride() { 625 return mCpuAbiOverride; 626 } 627 628 @DataClass.Generated.Member getHiddenApiEnforcementPolicy()629 public @ApplicationInfo.HiddenApiEnforcementPolicy int getHiddenApiEnforcementPolicy() { 630 return mHiddenApiEnforcementPolicy; 631 } 632 633 @DataClass.Generated.Member getLastModifiedTime()634 public long getLastModifiedTime() { 635 return mLastModifiedTime; 636 } 637 638 @DataClass.Generated.Member getLastUpdateTime()639 public long getLastUpdateTime() { 640 return mLastUpdateTime; 641 } 642 643 @DataClass.Generated.Member getLongVersionCode()644 public long getLongVersionCode() { 645 return mLongVersionCode; 646 } 647 648 @DataClass.Generated.Member getMimeGroups()649 public @NonNull Map<String,Set<String>> getMimeGroups() { 650 return mMimeGroups; 651 } 652 653 @DataClass.Generated.Member getPath()654 public @NonNull File getPath() { 655 return mPath; 656 } 657 658 @DataClass.Generated.Member getPrimaryCpuAbi()659 public @Nullable String getPrimaryCpuAbi() { 660 return mPrimaryCpuAbi; 661 } 662 663 @DataClass.Generated.Member getSecondaryCpuAbi()664 public @Nullable String getSecondaryCpuAbi() { 665 return mSecondaryCpuAbi; 666 } 667 668 @DataClass.Generated.Member getSeInfo()669 public @Nullable String getSeInfo() { 670 return mSeInfo; 671 } 672 673 @DataClass.Generated.Member isHasSharedUser()674 public boolean isHasSharedUser() { 675 return mHasSharedUser; 676 } 677 678 @DataClass.Generated.Member getSharedUserAppId()679 public int getSharedUserAppId() { 680 return mSharedUserAppId; 681 } 682 683 @DataClass.Generated.Member getUsesSdkLibraries()684 public @NonNull String[] getUsesSdkLibraries() { 685 return mUsesSdkLibraries; 686 } 687 688 @DataClass.Generated.Member getUsesSdkLibrariesVersionsMajor()689 public @NonNull long[] getUsesSdkLibrariesVersionsMajor() { 690 return mUsesSdkLibrariesVersionsMajor; 691 } 692 693 @DataClass.Generated.Member getUsesStaticLibraries()694 public @NonNull String[] getUsesStaticLibraries() { 695 return mUsesStaticLibraries; 696 } 697 698 @DataClass.Generated.Member getUsesStaticLibrariesVersions()699 public @NonNull long[] getUsesStaticLibrariesVersions() { 700 return mUsesStaticLibrariesVersions; 701 } 702 703 @DataClass.Generated.Member getSharedLibraryDependencies()704 public @NonNull List<SharedLibrary> getSharedLibraryDependencies() { 705 return mUsesLibraries; 706 } 707 708 @DataClass.Generated.Member getUsesLibraryFiles()709 public @NonNull List<String> getUsesLibraryFiles() { 710 return mUsesLibraryFiles; 711 } 712 713 @DataClass.Generated.Member getLastPackageUsageTime()714 public @NonNull long[] getLastPackageUsageTime() { 715 return mLastPackageUsageTime; 716 } 717 718 @DataClass.Generated.Member getSigningInfo()719 public @NonNull SigningInfo getSigningInfo() { 720 return mSigningInfo; 721 } 722 723 @DataClass.Generated.Member getUserStates()724 public @NonNull SparseArray<PackageUserState> getUserStates() { 725 return mUserStates; 726 } 727 728 @DataClass.Generated.Member getApexModuleName()729 public @Nullable String getApexModuleName() { 730 return mApexModuleName; 731 } 732 733 @DataClass.Generated.Member setBooleans( int value)734 public @NonNull PackageStateImpl setBooleans( int value) { 735 mBooleans = value; 736 return this; 737 } 738 739 @DataClass.Generated( 740 time = 1671671043929L, 741 codegenVersion = "1.0.23", 742 sourceFile = "frameworks/base/services/core/java/com/android/server/pm/pkg/PackageStateImpl.java", 743 inputSignatures = "private int mBooleans\nprivate final @android.annotation.Nullable com.android.server.pm.pkg.AndroidPackage mAndroidPackage\nprivate final @android.annotation.NonNull java.lang.String mPackageName\nprivate final @android.annotation.Nullable java.lang.String mVolumeUuid\nprivate final int mAppId\nprivate final int mCategoryOverride\nprivate final @android.annotation.Nullable java.lang.String mCpuAbiOverride\nprivate final @android.content.pm.ApplicationInfo.HiddenApiEnforcementPolicy int mHiddenApiEnforcementPolicy\nprivate final long mLastModifiedTime\nprivate final long mLastUpdateTime\nprivate final long mLongVersionCode\nprivate final @android.annotation.NonNull java.util.Map<java.lang.String,java.util.Set<java.lang.String>> mMimeGroups\nprivate final @android.annotation.NonNull java.io.File mPath\nprivate final @android.annotation.Nullable java.lang.String mPrimaryCpuAbi\nprivate final @android.annotation.Nullable java.lang.String mSecondaryCpuAbi\nprivate final @android.annotation.Nullable java.lang.String mSeInfo\nprivate final boolean mHasSharedUser\nprivate final int mSharedUserAppId\nprivate final @android.annotation.NonNull java.lang.String[] mUsesSdkLibraries\nprivate final @android.annotation.NonNull long[] mUsesSdkLibrariesVersionsMajor\nprivate final @android.annotation.NonNull java.lang.String[] mUsesStaticLibraries\nprivate final @android.annotation.NonNull long[] mUsesStaticLibrariesVersions\nprivate final @android.annotation.NonNull java.util.List<com.android.server.pm.pkg.SharedLibrary> mUsesLibraries\nprivate final @android.annotation.NonNull java.util.List<java.lang.String> mUsesLibraryFiles\nprivate final @android.annotation.NonNull long[] mLastPackageUsageTime\nprivate final @android.annotation.NonNull android.content.pm.SigningInfo mSigningInfo\nprivate final @android.annotation.NonNull android.util.SparseArray<com.android.server.pm.pkg.PackageUserState> mUserStates\nprivate final @android.annotation.Nullable java.lang.String mApexModuleName\npublic static com.android.server.pm.pkg.PackageState copy(com.android.server.pm.pkg.PackageStateInternal)\nprivate void setBoolean(int,boolean)\nprivate boolean getBoolean(int)\npublic @android.annotation.NonNull @java.lang.Override com.android.server.pm.pkg.PackageUserState getStateForUser(android.os.UserHandle)\npublic @java.lang.Override boolean isExternalStorage()\npublic @java.lang.Override boolean isForceQueryableOverride()\npublic @java.lang.Override boolean isHiddenUntilInstalled()\npublic @java.lang.Override boolean isInstallPermissionsFixed()\npublic @java.lang.Override boolean isOdm()\npublic @java.lang.Override boolean isOem()\npublic @java.lang.Override boolean isPrivileged()\npublic @java.lang.Override boolean isProduct()\npublic @java.lang.Override boolean isRequiredForSystemUser()\npublic @java.lang.Override boolean isSystem()\npublic @java.lang.Override boolean isSystemExt()\npublic @java.lang.Override boolean isUpdateAvailable()\npublic @java.lang.Override boolean isUpdatedSystemApp()\npublic @java.lang.Override boolean isApkInUpdatedApex()\npublic @java.lang.Override boolean isVendor()\npublic @java.lang.Override long getVersionCode()\npublic @java.lang.Override boolean hasSharedUser()\npublic @java.lang.Override boolean isApex()\nclass PackageStateImpl extends java.lang.Object implements [com.android.server.pm.pkg.PackageState]\nprivate static final int SYSTEM\nprivate static final int EXTERNAL_STORAGE\nprivate static final int PRIVILEGED\nprivate static final int OEM\nprivate static final int VENDOR\nprivate static final int PRODUCT\nprivate static final int SYSTEM_EXT\nprivate static final int REQUIRED_FOR_SYSTEM_USER\nprivate static final int ODM\nprivate static final int FORCE_QUERYABLE_OVERRIDE\nprivate static final int HIDDEN_UNTIL_INSTALLED\nprivate static final int INSTALL_PERMISSIONS_FIXED\nprivate static final int UPDATE_AVAILABLE\nprivate static final int UPDATED_SYSTEM_APP\nprivate static final int APK_IN_UPDATED_APEX\nclass Booleans extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genConstructor=false)") 744 @Deprecated __metadata()745 private void __metadata() {} 746 747 748 //@formatter:on 749 // End of generated code 750 751 } 752