• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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