1 /* 2 * Copyright (C) 2022 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.internal.pm.pkg.parsing; 18 19 import android.annotation.CallSuper; 20 import android.annotation.NonNull; 21 import android.annotation.Nullable; 22 import android.content.Intent; 23 import android.content.pm.ApplicationInfo; 24 import android.content.pm.ConfigurationInfo; 25 import android.content.pm.FeatureGroupInfo; 26 import android.content.pm.FeatureInfo; 27 import android.content.pm.PackageManager; 28 import android.content.pm.SigningDetails; 29 import android.os.Bundle; 30 import android.util.ArraySet; 31 import android.util.SparseArray; 32 import android.util.SparseIntArray; 33 34 import com.android.internal.pm.parsing.pkg.ParsedPackage; 35 import com.android.internal.pm.pkg.component.ParsedActivity; 36 import com.android.internal.pm.pkg.component.ParsedApexSystemService; 37 import com.android.internal.pm.pkg.component.ParsedAttribution; 38 import com.android.internal.pm.pkg.component.ParsedInstrumentation; 39 import com.android.internal.pm.pkg.component.ParsedIntentInfo; 40 import com.android.internal.pm.pkg.component.ParsedPermission; 41 import com.android.internal.pm.pkg.component.ParsedPermissionGroup; 42 import com.android.internal.pm.pkg.component.ParsedProcess; 43 import com.android.internal.pm.pkg.component.ParsedProvider; 44 import com.android.internal.pm.pkg.component.ParsedService; 45 import com.android.internal.pm.pkg.component.ParsedUsesPermission; 46 47 import java.security.PublicKey; 48 import java.util.List; 49 import java.util.Map; 50 import java.util.Set; 51 52 /** 53 * Methods used for mutation during direct package parsing. 54 * 55 * @hide 56 */ 57 @SuppressWarnings("UnusedReturnValue") 58 public interface ParsingPackage { 59 addActivity(ParsedActivity parsedActivity)60 ParsingPackage addActivity(ParsedActivity parsedActivity); 61 addAdoptPermission(String adoptPermission)62 ParsingPackage addAdoptPermission(String adoptPermission); 63 addApexSystemService(ParsedApexSystemService parsedApexSystemService)64 ParsingPackage addApexSystemService(ParsedApexSystemService parsedApexSystemService); 65 addConfigPreference(ConfigurationInfo configPreference)66 ParsingPackage addConfigPreference(ConfigurationInfo configPreference); 67 addFeatureGroup(FeatureGroupInfo featureGroup)68 ParsingPackage addFeatureGroup(FeatureGroupInfo featureGroup); 69 addImplicitPermission(String permission)70 ParsingPackage addImplicitPermission(String permission); 71 addInstrumentation(ParsedInstrumentation instrumentation)72 ParsingPackage addInstrumentation(ParsedInstrumentation instrumentation); 73 addKeySet(String keySetName, PublicKey publicKey)74 ParsingPackage addKeySet(String keySetName, PublicKey publicKey); 75 addLibraryName(String libraryName)76 ParsingPackage addLibraryName(String libraryName); 77 addOriginalPackage(String originalPackage)78 ParsingPackage addOriginalPackage(String originalPackage); 79 addOverlayable(String overlayableName, String actorName)80 ParsingPackage addOverlayable(String overlayableName, String actorName); 81 addPermission(ParsedPermission permission)82 ParsingPackage addPermission(ParsedPermission permission); 83 addPermissionGroup(ParsedPermissionGroup permissionGroup)84 ParsingPackage addPermissionGroup(ParsedPermissionGroup permissionGroup); 85 addPreferredActivityFilter(String className, ParsedIntentInfo intentInfo)86 ParsingPackage addPreferredActivityFilter(String className, ParsedIntentInfo intentInfo); 87 88 /** Add a property to the application scope */ addProperty(PackageManager.Property property)89 ParsingPackage addProperty(PackageManager.Property property); 90 addProtectedBroadcast(String protectedBroadcast)91 ParsingPackage addProtectedBroadcast(String protectedBroadcast); 92 addProvider(ParsedProvider parsedProvider)93 ParsingPackage addProvider(ParsedProvider parsedProvider); 94 addAttribution(ParsedAttribution attribution)95 ParsingPackage addAttribution(ParsedAttribution attribution); 96 addReceiver(ParsedActivity parsedReceiver)97 ParsingPackage addReceiver(ParsedActivity parsedReceiver); 98 addReqFeature(FeatureInfo reqFeature)99 ParsingPackage addReqFeature(FeatureInfo reqFeature); 100 addUsesPermission(ParsedUsesPermission parsedUsesPermission)101 ParsingPackage addUsesPermission(ParsedUsesPermission parsedUsesPermission); 102 addService(ParsedService parsedService)103 ParsingPackage addService(ParsedService parsedService); 104 addUsesLibrary(String libraryName)105 ParsingPackage addUsesLibrary(String libraryName); 106 addUsesOptionalLibrary(String libraryName)107 ParsingPackage addUsesOptionalLibrary(String libraryName); 108 addUsesNativeLibrary(String libraryName)109 ParsingPackage addUsesNativeLibrary(String libraryName); 110 addUsesOptionalNativeLibrary(String libraryName)111 ParsingPackage addUsesOptionalNativeLibrary(String libraryName); 112 addUsesSdkLibrary(String libraryName, long versionMajor, String[] certSha256Digests, boolean usesSdkLibrariesOptional)113 ParsingPackage addUsesSdkLibrary(String libraryName, long versionMajor, 114 String[] certSha256Digests, boolean usesSdkLibrariesOptional); 115 addUsesStaticLibrary(String libraryName, long version, String[] certSha256Digests)116 ParsingPackage addUsesStaticLibrary(String libraryName, long version, 117 String[] certSha256Digests); 118 addQueriesIntent(Intent intent)119 ParsingPackage addQueriesIntent(Intent intent); 120 addQueriesPackage(String packageName)121 ParsingPackage addQueriesPackage(String packageName); 122 addQueriesProvider(String authority)123 ParsingPackage addQueriesProvider(String authority); 124 125 /** Adds a feature flag (`android:featureFlag` attribute) encountered in the manifest. */ addFeatureFlag(@onNull String flagPackageAndName, @Nullable Boolean flagValue)126 ParsingPackage addFeatureFlag(@NonNull String flagPackageAndName, @Nullable Boolean flagValue); 127 128 /** Sets a process name -> {@link ParsedProcess} map coming from the <processes> tag. */ setProcesses(@onNull Map<String, ParsedProcess> processes)129 ParsingPackage setProcesses(@NonNull Map<String, ParsedProcess> processes); 130 asSplit( String[] splitNames, String[] splitCodePaths, int[] splitRevisionCodes, @Nullable SparseArray<int[]> splitDependencies )131 ParsingPackage asSplit( 132 String[] splitNames, 133 String[] splitCodePaths, 134 int[] splitRevisionCodes, 135 @Nullable SparseArray<int[]> splitDependencies 136 ); 137 setMetaData(Bundle metaData)138 ParsingPackage setMetaData(Bundle metaData); 139 setForceQueryable(boolean forceQueryable)140 ParsingPackage setForceQueryable(boolean forceQueryable); 141 setMaxAspectRatio(float maxAspectRatio)142 ParsingPackage setMaxAspectRatio(float maxAspectRatio); 143 setMinAspectRatio(float minAspectRatio)144 ParsingPackage setMinAspectRatio(float minAspectRatio); 145 setPermission(String permission)146 ParsingPackage setPermission(String permission); 147 setProcessName(String processName)148 ParsingPackage setProcessName(String processName); 149 setSharedUserId(String sharedUserId)150 ParsingPackage setSharedUserId(String sharedUserId); 151 setStaticSharedLibraryName(String staticSharedLibName)152 ParsingPackage setStaticSharedLibraryName(String staticSharedLibName); 153 setTaskAffinity(String taskAffinity)154 ParsingPackage setTaskAffinity(String taskAffinity); 155 setTargetSdkVersion(int targetSdkVersion)156 ParsingPackage setTargetSdkVersion(int targetSdkVersion); 157 setUiOptions(int uiOptions)158 ParsingPackage setUiOptions(int uiOptions); 159 setHardwareAccelerated(boolean hardwareAccelerated)160 ParsingPackage setHardwareAccelerated(boolean hardwareAccelerated); 161 setResizeableActivity(Boolean resizeable)162 ParsingPackage setResizeableActivity(Boolean resizeable); 163 setResizeableActivityViaSdkVersion(boolean resizeableViaSdkVersion)164 ParsingPackage setResizeableActivityViaSdkVersion(boolean resizeableViaSdkVersion); 165 setAllowAudioPlaybackCapture(boolean allowAudioPlaybackCapture)166 ParsingPackage setAllowAudioPlaybackCapture(boolean allowAudioPlaybackCapture); 167 setBackupAllowed(boolean allowBackup)168 ParsingPackage setBackupAllowed(boolean allowBackup); 169 setClearUserDataAllowed(boolean allowClearUserData)170 ParsingPackage setClearUserDataAllowed(boolean allowClearUserData); 171 setClearUserDataOnFailedRestoreAllowed( boolean allowClearUserDataOnFailedRestore)172 ParsingPackage setClearUserDataOnFailedRestoreAllowed( 173 boolean allowClearUserDataOnFailedRestore); 174 setTaskReparentingAllowed(boolean allowTaskReparenting)175 ParsingPackage setTaskReparentingAllowed(boolean allowTaskReparenting); 176 setResourceOverlay(boolean isResourceOverlay)177 ParsingPackage setResourceOverlay(boolean isResourceOverlay); 178 setBackupInForeground(boolean backupInForeground)179 ParsingPackage setBackupInForeground(boolean backupInForeground); 180 setSaveStateDisallowed(boolean cantSaveState)181 ParsingPackage setSaveStateDisallowed(boolean cantSaveState); 182 setDebuggable(boolean debuggable)183 ParsingPackage setDebuggable(boolean debuggable); 184 setDefaultToDeviceProtectedStorage(boolean defaultToDeviceProtectedStorage)185 ParsingPackage setDefaultToDeviceProtectedStorage(boolean defaultToDeviceProtectedStorage); 186 setDirectBootAware(boolean directBootAware)187 ParsingPackage setDirectBootAware(boolean directBootAware); 188 setExternalStorage(boolean externalStorage)189 ParsingPackage setExternalStorage(boolean externalStorage); 190 setExtractNativeLibrariesRequested(boolean extractNativeLibs)191 ParsingPackage setExtractNativeLibrariesRequested(boolean extractNativeLibs); 192 setFullBackupOnly(boolean fullBackupOnly)193 ParsingPackage setFullBackupOnly(boolean fullBackupOnly); 194 setDeclaredHavingCode(boolean hasCode)195 ParsingPackage setDeclaredHavingCode(boolean hasCode); 196 setUserDataFragile(boolean hasFragileUserData)197 ParsingPackage setUserDataFragile(boolean hasFragileUserData); 198 setGame(boolean isGame)199 ParsingPackage setGame(boolean isGame); 200 setIsolatedSplitLoading(boolean isolatedSplitLoading)201 ParsingPackage setIsolatedSplitLoading(boolean isolatedSplitLoading); 202 setKillAfterRestoreAllowed(boolean killAfterRestore)203 ParsingPackage setKillAfterRestoreAllowed(boolean killAfterRestore); 204 setLargeHeap(boolean largeHeap)205 ParsingPackage setLargeHeap(boolean largeHeap); 206 setMultiArch(boolean multiArch)207 ParsingPackage setMultiArch(boolean multiArch); 208 setPartiallyDirectBootAware(boolean partiallyDirectBootAware)209 ParsingPackage setPartiallyDirectBootAware(boolean partiallyDirectBootAware); 210 setPersistent(boolean persistent)211 ParsingPackage setPersistent(boolean persistent); 212 setProfileableByShell(boolean profileableByShell)213 ParsingPackage setProfileableByShell(boolean profileableByShell); 214 setProfileable(boolean profileable)215 ParsingPackage setProfileable(boolean profileable); 216 setRequestLegacyExternalStorage(boolean requestLegacyExternalStorage)217 ParsingPackage setRequestLegacyExternalStorage(boolean requestLegacyExternalStorage); 218 setAllowNativeHeapPointerTagging(boolean allowNativeHeapPointerTagging)219 ParsingPackage setAllowNativeHeapPointerTagging(boolean allowNativeHeapPointerTagging); 220 setAutoRevokePermissions(int autoRevokePermissions)221 ParsingPackage setAutoRevokePermissions(int autoRevokePermissions); 222 setPreserveLegacyExternalStorage(boolean preserveLegacyExternalStorage)223 ParsingPackage setPreserveLegacyExternalStorage(boolean preserveLegacyExternalStorage); 224 setRestoreAnyVersion(boolean restoreAnyVersion)225 ParsingPackage setRestoreAnyVersion(boolean restoreAnyVersion); 226 setSdkLibraryName(String sdkLibName)227 ParsingPackage setSdkLibraryName(String sdkLibName); 228 setSdkLibVersionMajor(int sdkLibVersionMajor)229 ParsingPackage setSdkLibVersionMajor(int sdkLibVersionMajor); 230 setSdkLibrary(boolean sdkLibrary)231 ParsingPackage setSdkLibrary(boolean sdkLibrary); 232 setSplitHasCode(int splitIndex, boolean splitHasCode)233 ParsingPackage setSplitHasCode(int splitIndex, boolean splitHasCode); 234 setStaticSharedLibrary(boolean staticSharedLibrary)235 ParsingPackage setStaticSharedLibrary(boolean staticSharedLibrary); 236 setRtlSupported(boolean supportsRtl)237 ParsingPackage setRtlSupported(boolean supportsRtl); 238 setTestOnly(boolean testOnly)239 ParsingPackage setTestOnly(boolean testOnly); 240 setUseEmbeddedDex(boolean useEmbeddedDex)241 ParsingPackage setUseEmbeddedDex(boolean useEmbeddedDex); 242 setCleartextTrafficAllowed(boolean usesCleartextTraffic)243 ParsingPackage setCleartextTrafficAllowed(boolean usesCleartextTraffic); 244 setNonSdkApiRequested(boolean usesNonSdkApi)245 ParsingPackage setNonSdkApiRequested(boolean usesNonSdkApi); 246 setVisibleToInstantApps(boolean visibleToInstantApps)247 ParsingPackage setVisibleToInstantApps(boolean visibleToInstantApps); 248 setVmSafeMode(boolean vmSafeMode)249 ParsingPackage setVmSafeMode(boolean vmSafeMode); 250 removeUsesOptionalLibrary(String libraryName)251 ParsingPackage removeUsesOptionalLibrary(String libraryName); 252 removeUsesOptionalNativeLibrary(String libraryName)253 ParsingPackage removeUsesOptionalNativeLibrary(String libraryName); 254 setAnyDensity(int anyDensity)255 ParsingPackage setAnyDensity(int anyDensity); 256 setAppComponentFactory(String appComponentFactory)257 ParsingPackage setAppComponentFactory(String appComponentFactory); 258 setBackupAgentName(String backupAgentName)259 ParsingPackage setBackupAgentName(String backupAgentName); 260 setBannerResourceId(int banner)261 ParsingPackage setBannerResourceId(int banner); 262 setCategory(int category)263 ParsingPackage setCategory(int category); 264 setClassLoaderName(String classLoaderName)265 ParsingPackage setClassLoaderName(String classLoaderName); 266 setApplicationClassName(String className)267 ParsingPackage setApplicationClassName(String className); 268 setCompatibleWidthLimitDp(int compatibleWidthLimitDp)269 ParsingPackage setCompatibleWidthLimitDp(int compatibleWidthLimitDp); 270 setDescriptionResourceId(int descriptionRes)271 ParsingPackage setDescriptionResourceId(int descriptionRes); 272 setEnabled(boolean enabled)273 ParsingPackage setEnabled(boolean enabled); 274 setGwpAsanMode(@pplicationInfo.GwpAsanMode int gwpAsanMode)275 ParsingPackage setGwpAsanMode(@ApplicationInfo.GwpAsanMode int gwpAsanMode); 276 setMemtagMode(@pplicationInfo.MemtagMode int memtagMode)277 ParsingPackage setMemtagMode(@ApplicationInfo.MemtagMode int memtagMode); 278 setNativeHeapZeroInitialized( @pplicationInfo.NativeHeapZeroInitialized int nativeHeapZeroInitialized)279 ParsingPackage setNativeHeapZeroInitialized( 280 @ApplicationInfo.NativeHeapZeroInitialized int nativeHeapZeroInitialized); 281 282 /** Manifest option pageSizeCompat will populate this field */ setPageSizeAppCompatFlags(@pplicationInfo.PageSizeAppCompatFlags int value)283 ParsingPackage setPageSizeAppCompatFlags(@ApplicationInfo.PageSizeAppCompatFlags int value); 284 setRequestRawExternalStorageAccess( @ullable Boolean requestRawExternalStorageAccess)285 ParsingPackage setRequestRawExternalStorageAccess( 286 @Nullable Boolean requestRawExternalStorageAccess); 287 setCrossProfile(boolean crossProfile)288 ParsingPackage setCrossProfile(boolean crossProfile); 289 setFullBackupContentResourceId(int fullBackupContentRes)290 ParsingPackage setFullBackupContentResourceId(int fullBackupContentRes); 291 setDataExtractionRulesResourceId(int dataExtractionRulesRes)292 ParsingPackage setDataExtractionRulesResourceId(int dataExtractionRulesRes); 293 setHasDomainUrls(boolean hasDomainUrls)294 ParsingPackage setHasDomainUrls(boolean hasDomainUrls); 295 setIconResourceId(int iconRes)296 ParsingPackage setIconResourceId(int iconRes); 297 setInstallLocation(int installLocation)298 ParsingPackage setInstallLocation(int installLocation); 299 300 /** @see R#styleable.AndroidManifest_sharedUserMaxSdkVersion */ setLeavingSharedUser(boolean leavingSharedUser)301 ParsingPackage setLeavingSharedUser(boolean leavingSharedUser); 302 setLabelResourceId(int labelRes)303 ParsingPackage setLabelResourceId(int labelRes); 304 setLargestWidthLimitDp(int largestWidthLimitDp)305 ParsingPackage setLargestWidthLimitDp(int largestWidthLimitDp); 306 setLogoResourceId(int logo)307 ParsingPackage setLogoResourceId(int logo); 308 setManageSpaceActivityName(String manageSpaceActivityName)309 ParsingPackage setManageSpaceActivityName(String manageSpaceActivityName); 310 setMinExtensionVersions(@ullable SparseIntArray minExtensionVersions)311 ParsingPackage setMinExtensionVersions(@Nullable SparseIntArray minExtensionVersions); 312 setMinSdkVersion(int minSdkVersion)313 ParsingPackage setMinSdkVersion(int minSdkVersion); 314 setMaxSdkVersion(int maxSdkVersion)315 ParsingPackage setMaxSdkVersion(int maxSdkVersion); 316 setNetworkSecurityConfigResourceId(int networkSecurityConfigRes)317 ParsingPackage setNetworkSecurityConfigResourceId(int networkSecurityConfigRes); 318 setNonLocalizedLabel(CharSequence nonLocalizedLabel)319 ParsingPackage setNonLocalizedLabel(CharSequence nonLocalizedLabel); 320 setOverlayCategory(String overlayCategory)321 ParsingPackage setOverlayCategory(String overlayCategory); 322 setOverlayIsStatic(boolean overlayIsStatic)323 ParsingPackage setOverlayIsStatic(boolean overlayIsStatic); 324 setOverlayPriority(int overlayPriority)325 ParsingPackage setOverlayPriority(int overlayPriority); 326 setOverlayTarget(String overlayTarget)327 ParsingPackage setOverlayTarget(String overlayTarget); 328 setOverlayTargetOverlayableName(String overlayTargetOverlayableName)329 ParsingPackage setOverlayTargetOverlayableName(String overlayTargetOverlayableName); 330 setRequiredAccountType(String requiredAccountType)331 ParsingPackage setRequiredAccountType(String requiredAccountType); 332 setRequiredForAllUsers(boolean requiredForAllUsers)333 ParsingPackage setRequiredForAllUsers(boolean requiredForAllUsers); 334 setRequiresSmallestWidthDp(int requiresSmallestWidthDp)335 ParsingPackage setRequiresSmallestWidthDp(int requiresSmallestWidthDp); 336 setResizeable(int resizeable)337 ParsingPackage setResizeable(int resizeable); 338 setRestrictUpdateHash(byte[] restrictUpdateHash)339 ParsingPackage setRestrictUpdateHash(byte[] restrictUpdateHash); 340 setRestrictedAccountType(String restrictedAccountType)341 ParsingPackage setRestrictedAccountType(String restrictedAccountType); 342 setRoundIconResourceId(int roundIconRes)343 ParsingPackage setRoundIconResourceId(int roundIconRes); 344 setSharedUserLabelResourceId(int sharedUserLabelRes)345 ParsingPackage setSharedUserLabelResourceId(int sharedUserLabelRes); 346 setSigningDetails(@onNull SigningDetails signingDetails)347 ParsingPackage setSigningDetails(@NonNull SigningDetails signingDetails); 348 setSplitClassLoaderName(int splitIndex, String classLoaderName)349 ParsingPackage setSplitClassLoaderName(int splitIndex, String classLoaderName); 350 setStaticSharedLibraryVersion(long staticSharedLibraryVersion)351 ParsingPackage setStaticSharedLibraryVersion(long staticSharedLibraryVersion); 352 setUpdatableSystem(boolean value)353 ParsingPackage setUpdatableSystem(boolean value); 354 355 /** 356 * Sets a system app that is allowed to update another system app 357 */ setEmergencyInstaller(String emergencyInstaller)358 ParsingPackage setEmergencyInstaller(String emergencyInstaller); 359 setLargeScreensSupported(int supportsLargeScreens)360 ParsingPackage setLargeScreensSupported(int supportsLargeScreens); 361 setNormalScreensSupported(int supportsNormalScreens)362 ParsingPackage setNormalScreensSupported(int supportsNormalScreens); 363 setSmallScreensSupported(int supportsSmallScreens)364 ParsingPackage setSmallScreensSupported(int supportsSmallScreens); 365 setExtraLargeScreensSupported(int supportsExtraLargeScreens)366 ParsingPackage setExtraLargeScreensSupported(int supportsExtraLargeScreens); 367 setTargetSandboxVersion(int targetSandboxVersion)368 ParsingPackage setTargetSandboxVersion(int targetSandboxVersion); 369 setThemeResourceId(int theme)370 ParsingPackage setThemeResourceId(int theme); 371 setRequestForegroundServiceExemption(boolean requestForegroundServiceExemption)372 ParsingPackage setRequestForegroundServiceExemption(boolean requestForegroundServiceExemption); 373 setUpgradeKeySets(@onNull Set<String> upgradeKeySets)374 ParsingPackage setUpgradeKeySets(@NonNull Set<String> upgradeKeySets); 375 set32BitAbiPreferred(boolean use32BitAbi)376 ParsingPackage set32BitAbiPreferred(boolean use32BitAbi); 377 setVolumeUuid(@ullable String volumeUuid)378 ParsingPackage setVolumeUuid(@Nullable String volumeUuid); 379 setZygotePreloadName(String zygotePreloadName)380 ParsingPackage setZygotePreloadName(String zygotePreloadName); 381 setAllowCrossUidActivitySwitchFromBelow( boolean allowCrossUidActivitySwitchFromBelow)382 ParsingPackage setAllowCrossUidActivitySwitchFromBelow( 383 boolean allowCrossUidActivitySwitchFromBelow); 384 sortActivities()385 ParsingPackage sortActivities(); 386 sortReceivers()387 ParsingPackage sortReceivers(); 388 sortServices()389 ParsingPackage sortServices(); 390 setBaseRevisionCode(int baseRevisionCode)391 ParsingPackage setBaseRevisionCode(int baseRevisionCode); 392 setVersionCode(int vesionCode)393 ParsingPackage setVersionCode(int vesionCode); 394 setVersionCodeMajor(int vesionCodeMajor)395 ParsingPackage setVersionCodeMajor(int vesionCodeMajor); 396 setVersionName(String versionName)397 ParsingPackage setVersionName(String versionName); 398 setCompileSdkVersion(int compileSdkVersion)399 ParsingPackage setCompileSdkVersion(int compileSdkVersion); 400 setCompileSdkVersionCodeName(String compileSdkVersionCodeName)401 ParsingPackage setCompileSdkVersionCodeName(String compileSdkVersionCodeName); 402 setAttributionsAreUserVisible(boolean attributionsAreUserVisible)403 ParsingPackage setAttributionsAreUserVisible(boolean attributionsAreUserVisible); 404 setResetEnabledSettingsOnAppDataCleared( boolean resetEnabledSettingsOnAppDataCleared)405 ParsingPackage setResetEnabledSettingsOnAppDataCleared( 406 boolean resetEnabledSettingsOnAppDataCleared); 407 setLocaleConfigResourceId(int localeConfigRes)408 ParsingPackage setLocaleConfigResourceId(int localeConfigRes); 409 410 /** 411 * Sets the trusted host certificates of apps that are allowed to embed activities of this 412 * application. 413 */ setKnownActivityEmbeddingCerts(Set<String> knownActivityEmbeddingCerts)414 ParsingPackage setKnownActivityEmbeddingCerts(Set<String> knownActivityEmbeddingCerts); 415 setOnBackInvokedCallbackEnabled(boolean enableOnBackInvokedCallback)416 ParsingPackage setOnBackInvokedCallbackEnabled(boolean enableOnBackInvokedCallback); 417 418 /** 419 * Set the drawable resources id array of the alternate icons that are parsing from the 420 * AndroidManifest file 421 */ setAlternateLauncherIconResIds(int[] alternateLauncherIconResIds)422 ParsingPackage setAlternateLauncherIconResIds(int[] alternateLauncherIconResIds); 423 424 /** 425 * Set the string resources id array of the alternate labels that are parsing from the 426 * AndroidManifest file 427 */ setAlternateLauncherLabelResIds(int[] alternateLauncherLabelResIds)428 ParsingPackage setAlternateLauncherLabelResIds(int[] alternateLauncherLabelResIds); 429 430 @CallSuper hideAsParsed()431 ParsedPackage hideAsParsed(); 432 433 // The remaining methods are copied out of [AndroidPackage] so that the parsing variant does 434 // not implement the final API interface and can't accidentally be used without finalizing 435 // the parsing process. 436 437 @NonNull getActivities()438 List<ParsedActivity> getActivities(); 439 440 @NonNull getAttributions()441 List<ParsedAttribution> getAttributions(); 442 443 @NonNull getBaseApkPath()444 String getBaseApkPath(); 445 446 @Nullable getClassLoaderName()447 String getClassLoaderName(); 448 449 @NonNull getConfigPreferences()450 List<ConfigurationInfo> getConfigPreferences(); 451 452 @NonNull getInstrumentations()453 List<ParsedInstrumentation> getInstrumentations(); 454 455 @NonNull getKeySetMapping()456 Map<String, ArraySet<PublicKey>> getKeySetMapping(); 457 458 @NonNull getLibraryNames()459 List<String> getLibraryNames(); 460 getMaxAspectRatio()461 float getMaxAspectRatio(); 462 getMaxSdkVersion()463 int getMaxSdkVersion(); 464 465 @Nullable getMetaData()466 Bundle getMetaData(); 467 getMinAspectRatio()468 float getMinAspectRatio(); 469 getMinSdkVersion()470 int getMinSdkVersion(); 471 getPackageName()472 String getPackageName(); 473 474 @Nullable getPermission()475 String getPermission(); 476 477 @NonNull getPermissions()478 List<ParsedPermission> getPermissions(); 479 480 @NonNull getProcessName()481 String getProcessName(); 482 483 @NonNull getProviders()484 List<ParsedProvider> getProviders(); 485 486 @NonNull getReceivers()487 List<ParsedActivity> getReceivers(); 488 489 @NonNull getRequestedPermissions()490 Set<String> getRequestedPermissions(); 491 492 @Nullable getResizeableActivity()493 Boolean getResizeableActivity(); 494 495 @Nullable getSdkLibraryName()496 String getSdkLibraryName(); 497 498 @NonNull getServices()499 List<ParsedService> getServices(); 500 501 @Nullable getSharedUserId()502 String getSharedUserId(); 503 504 @NonNull getSplitCodePaths()505 String[] getSplitCodePaths(); 506 507 @NonNull getSplitNames()508 String[] getSplitNames(); 509 510 @Nullable getStaticSharedLibraryName()511 String getStaticSharedLibraryName(); 512 getTargetSdkVersion()513 int getTargetSdkVersion(); 514 515 @Nullable getTaskAffinity()516 String getTaskAffinity(); 517 getUiOptions()518 int getUiOptions(); 519 520 @NonNull getUsesLibraries()521 List<String> getUsesLibraries(); 522 523 @NonNull getUsesNativeLibraries()524 List<String> getUsesNativeLibraries(); 525 526 @NonNull getUsesPermissions()527 List<ParsedUsesPermission> getUsesPermissions(); 528 529 @NonNull getUsesSdkLibraries()530 List<String> getUsesSdkLibraries(); 531 532 @Nullable getUsesSdkLibrariesVersionsMajor()533 long[] getUsesSdkLibrariesVersionsMajor(); 534 535 @NonNull getUsesStaticLibraries()536 List<String> getUsesStaticLibraries(); 537 538 @Nullable getZygotePreloadName()539 String getZygotePreloadName(); 540 isAllowCrossUidActivitySwitchFromBelow()541 boolean isAllowCrossUidActivitySwitchFromBelow(); 542 isBackupAllowed()543 boolean isBackupAllowed(); 544 isTaskReparentingAllowed()545 boolean isTaskReparentingAllowed(); 546 isAnyDensity()547 boolean isAnyDensity(); 548 isHardwareAccelerated()549 boolean isHardwareAccelerated(); 550 isSaveStateDisallowed()551 boolean isSaveStateDisallowed(); 552 isProfileable()553 boolean isProfileable(); 554 isProfileableByShell()555 boolean isProfileableByShell(); 556 isResizeable()557 boolean isResizeable(); 558 isResizeableActivityViaSdkVersion()559 boolean isResizeableActivityViaSdkVersion(); 560 isStaticSharedLibrary()561 boolean isStaticSharedLibrary(); 562 isExtraLargeScreensSupported()563 boolean isExtraLargeScreensSupported(); 564 isLargeScreensSupported()565 boolean isLargeScreensSupported(); 566 isNormalScreensSupported()567 boolean isNormalScreensSupported(); 568 isSmallScreensSupported()569 boolean isSmallScreensSupported(); 570 571 /** 572 * Sets the intent matching flags. This value is intended to be set from the "application" tag. 573 * @see android.R.styleable#AndroidManifestApplication_intentMatchingFlags 574 */ setIntentMatchingFlags(int intentMatchingFlags)575 ParsingPackage setIntentMatchingFlags(int intentMatchingFlags); 576 577 /** 578 * Returns the intent matching flags. 579 */ getIntentMatchingFlags()580 int getIntentMatchingFlags(); 581 } 582