• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 android.content.pm.parsing;
18 
19 import android.annotation.NonNull;
20 import android.annotation.Nullable;
21 import android.content.Intent;
22 import android.content.pm.ConfigurationInfo;
23 import android.content.pm.FeatureGroupInfo;
24 import android.content.pm.FeatureInfo;
25 import android.content.pm.PackageParser;
26 import android.content.pm.parsing.component.ParsedActivity;
27 import android.content.pm.parsing.component.ParsedAttribution;
28 import android.content.pm.parsing.component.ParsedInstrumentation;
29 import android.content.pm.parsing.component.ParsedIntentInfo;
30 import android.content.pm.parsing.component.ParsedPermission;
31 import android.content.pm.parsing.component.ParsedPermissionGroup;
32 import android.content.pm.parsing.component.ParsedProcess;
33 import android.content.pm.parsing.component.ParsedProvider;
34 import android.content.pm.parsing.component.ParsedService;
35 import android.os.Bundle;
36 import android.util.SparseArray;
37 import android.util.SparseIntArray;
38 
39 import java.security.PublicKey;
40 import java.util.Map;
41 import java.util.Set;
42 
43 /**
44  * Methods used for mutation during direct package parsing.
45  *
46  * @hide
47  */
48 @SuppressWarnings("UnusedReturnValue")
49 public interface ParsingPackage extends ParsingPackageRead {
50 
addActivity(ParsedActivity parsedActivity)51     ParsingPackage addActivity(ParsedActivity parsedActivity);
52 
addAdoptPermission(String adoptPermission)53     ParsingPackage addAdoptPermission(String adoptPermission);
54 
addConfigPreference(ConfigurationInfo configPreference)55     ParsingPackage addConfigPreference(ConfigurationInfo configPreference);
56 
addFeatureGroup(FeatureGroupInfo featureGroup)57     ParsingPackage addFeatureGroup(FeatureGroupInfo featureGroup);
58 
addImplicitPermission(String permission)59     ParsingPackage addImplicitPermission(String permission);
60 
addInstrumentation(ParsedInstrumentation instrumentation)61     ParsingPackage addInstrumentation(ParsedInstrumentation instrumentation);
62 
addKeySet(String keySetName, PublicKey publicKey)63     ParsingPackage addKeySet(String keySetName, PublicKey publicKey);
64 
addLibraryName(String libraryName)65     ParsingPackage addLibraryName(String libraryName);
66 
addOriginalPackage(String originalPackage)67     ParsingPackage addOriginalPackage(String originalPackage);
68 
addOverlayable(String overlayableName, String actorName)69     ParsingPackage addOverlayable(String overlayableName, String actorName);
70 
addPermission(ParsedPermission permission)71     ParsingPackage addPermission(ParsedPermission permission);
72 
addPermissionGroup(ParsedPermissionGroup permissionGroup)73     ParsingPackage addPermissionGroup(ParsedPermissionGroup permissionGroup);
74 
addPreferredActivityFilter(String className, ParsedIntentInfo intentInfo)75     ParsingPackage addPreferredActivityFilter(String className, ParsedIntentInfo intentInfo);
76 
addProtectedBroadcast(String protectedBroadcast)77     ParsingPackage addProtectedBroadcast(String protectedBroadcast);
78 
addProvider(ParsedProvider parsedProvider)79     ParsingPackage addProvider(ParsedProvider parsedProvider);
80 
addAttribution(ParsedAttribution attribution)81     ParsingPackage addAttribution(ParsedAttribution attribution);
82 
addReceiver(ParsedActivity parsedReceiver)83     ParsingPackage addReceiver(ParsedActivity parsedReceiver);
84 
addReqFeature(FeatureInfo reqFeature)85     ParsingPackage addReqFeature(FeatureInfo reqFeature);
86 
addRequestedPermission(String permission)87     ParsingPackage addRequestedPermission(String permission);
88 
addService(ParsedService parsedService)89     ParsingPackage addService(ParsedService parsedService);
90 
addUsesLibrary(String libraryName)91     ParsingPackage addUsesLibrary(String libraryName);
92 
addUsesOptionalLibrary(String libraryName)93     ParsingPackage addUsesOptionalLibrary(String libraryName);
94 
addUsesStaticLibrary(String libraryName)95     ParsingPackage addUsesStaticLibrary(String libraryName);
96 
addUsesStaticLibraryCertDigests(String[] certSha256Digests)97     ParsingPackage addUsesStaticLibraryCertDigests(String[] certSha256Digests);
98 
addUsesStaticLibraryVersion(long version)99     ParsingPackage addUsesStaticLibraryVersion(long version);
100 
addQueriesIntent(Intent intent)101     ParsingPackage addQueriesIntent(Intent intent);
102 
addQueriesPackage(String packageName)103     ParsingPackage addQueriesPackage(String packageName);
104 
addQueriesProvider(String authority)105     ParsingPackage addQueriesProvider(String authority);
106 
setProcesses(@onNull Map<String, ParsedProcess> processes)107     ParsingPackage setProcesses(@NonNull Map<String, ParsedProcess> processes);
108 
asSplit( String[] splitNames, String[] splitCodePaths, int[] splitRevisionCodes, @Nullable SparseArray<int[]> splitDependencies )109     ParsingPackage asSplit(
110             String[] splitNames,
111             String[] splitCodePaths,
112             int[] splitRevisionCodes,
113             @Nullable SparseArray<int[]> splitDependencies
114     );
115 
setMetaData(Bundle metaData)116     ParsingPackage setMetaData(Bundle metaData);
117 
setForceQueryable(boolean forceQueryable)118     ParsingPackage setForceQueryable(boolean forceQueryable);
119 
setMaxAspectRatio(float maxAspectRatio)120     ParsingPackage setMaxAspectRatio(float maxAspectRatio);
121 
setMinAspectRatio(float minAspectRatio)122     ParsingPackage setMinAspectRatio(float minAspectRatio);
123 
setPermission(String permission)124     ParsingPackage setPermission(String permission);
125 
setProcessName(String processName)126     ParsingPackage setProcessName(String processName);
127 
setSharedUserId(String sharedUserId)128     ParsingPackage setSharedUserId(String sharedUserId);
129 
setStaticSharedLibName(String staticSharedLibName)130     ParsingPackage setStaticSharedLibName(String staticSharedLibName);
131 
setTaskAffinity(String taskAffinity)132     ParsingPackage setTaskAffinity(String taskAffinity);
133 
setTargetSdkVersion(int targetSdkVersion)134     ParsingPackage setTargetSdkVersion(int targetSdkVersion);
135 
setUiOptions(int uiOptions)136     ParsingPackage setUiOptions(int uiOptions);
137 
setBaseHardwareAccelerated(boolean baseHardwareAccelerated)138     ParsingPackage setBaseHardwareAccelerated(boolean baseHardwareAccelerated);
139 
setResizeableActivity(Boolean resizeable)140     ParsingPackage setResizeableActivity(Boolean resizeable);
141 
setResizeableActivityViaSdkVersion(boolean resizeableViaSdkVersion)142     ParsingPackage setResizeableActivityViaSdkVersion(boolean resizeableViaSdkVersion);
143 
setAllowAudioPlaybackCapture(boolean allowAudioPlaybackCapture)144     ParsingPackage setAllowAudioPlaybackCapture(boolean allowAudioPlaybackCapture);
145 
setAllowBackup(boolean allowBackup)146     ParsingPackage setAllowBackup(boolean allowBackup);
147 
setAllowClearUserData(boolean allowClearUserData)148     ParsingPackage setAllowClearUserData(boolean allowClearUserData);
149 
setAllowClearUserDataOnFailedRestore(boolean allowClearUserDataOnFailedRestore)150     ParsingPackage setAllowClearUserDataOnFailedRestore(boolean allowClearUserDataOnFailedRestore);
151 
setAllowTaskReparenting(boolean allowTaskReparenting)152     ParsingPackage setAllowTaskReparenting(boolean allowTaskReparenting);
153 
setOverlay(boolean isOverlay)154     ParsingPackage setOverlay(boolean isOverlay);
155 
setBackupInForeground(boolean backupInForeground)156     ParsingPackage setBackupInForeground(boolean backupInForeground);
157 
setCantSaveState(boolean cantSaveState)158     ParsingPackage setCantSaveState(boolean cantSaveState);
159 
setDebuggable(boolean debuggable)160     ParsingPackage setDebuggable(boolean debuggable);
161 
setDefaultToDeviceProtectedStorage(boolean defaultToDeviceProtectedStorage)162     ParsingPackage setDefaultToDeviceProtectedStorage(boolean defaultToDeviceProtectedStorage);
163 
setDirectBootAware(boolean directBootAware)164     ParsingPackage setDirectBootAware(boolean directBootAware);
165 
setExternalStorage(boolean externalStorage)166     ParsingPackage setExternalStorage(boolean externalStorage);
167 
setExtractNativeLibs(boolean extractNativeLibs)168     ParsingPackage setExtractNativeLibs(boolean extractNativeLibs);
169 
setFullBackupOnly(boolean fullBackupOnly)170     ParsingPackage setFullBackupOnly(boolean fullBackupOnly);
171 
setHasCode(boolean hasCode)172     ParsingPackage setHasCode(boolean hasCode);
173 
setHasFragileUserData(boolean hasFragileUserData)174     ParsingPackage setHasFragileUserData(boolean hasFragileUserData);
175 
setGame(boolean isGame)176     ParsingPackage setGame(boolean isGame);
177 
setIsolatedSplitLoading(boolean isolatedSplitLoading)178     ParsingPackage setIsolatedSplitLoading(boolean isolatedSplitLoading);
179 
setKillAfterRestore(boolean killAfterRestore)180     ParsingPackage setKillAfterRestore(boolean killAfterRestore);
181 
setLargeHeap(boolean largeHeap)182     ParsingPackage setLargeHeap(boolean largeHeap);
183 
setMultiArch(boolean multiArch)184     ParsingPackage setMultiArch(boolean multiArch);
185 
setPartiallyDirectBootAware(boolean partiallyDirectBootAware)186     ParsingPackage setPartiallyDirectBootAware(boolean partiallyDirectBootAware);
187 
setPersistent(boolean persistent)188     ParsingPackage setPersistent(boolean persistent);
189 
setProfileableByShell(boolean profileableByShell)190     ParsingPackage setProfileableByShell(boolean profileableByShell);
191 
setRequestLegacyExternalStorage(boolean requestLegacyExternalStorage)192     ParsingPackage setRequestLegacyExternalStorage(boolean requestLegacyExternalStorage);
193 
setAllowNativeHeapPointerTagging(boolean allowNativeHeapPointerTagging)194     ParsingPackage setAllowNativeHeapPointerTagging(boolean allowNativeHeapPointerTagging);
195 
setAutoRevokePermissions(int autoRevokePermissions)196     ParsingPackage setAutoRevokePermissions(int autoRevokePermissions);
197 
setPreserveLegacyExternalStorage(boolean preserveLegacyExternalStorage)198     ParsingPackage setPreserveLegacyExternalStorage(boolean preserveLegacyExternalStorage);
199 
setRestoreAnyVersion(boolean restoreAnyVersion)200     ParsingPackage setRestoreAnyVersion(boolean restoreAnyVersion);
201 
setSplitHasCode(int splitIndex, boolean splitHasCode)202     ParsingPackage setSplitHasCode(int splitIndex, boolean splitHasCode);
203 
setStaticSharedLibrary(boolean staticSharedLibrary)204     ParsingPackage setStaticSharedLibrary(boolean staticSharedLibrary);
205 
setSupportsRtl(boolean supportsRtl)206     ParsingPackage setSupportsRtl(boolean supportsRtl);
207 
setTestOnly(boolean testOnly)208     ParsingPackage setTestOnly(boolean testOnly);
209 
setUseEmbeddedDex(boolean useEmbeddedDex)210     ParsingPackage setUseEmbeddedDex(boolean useEmbeddedDex);
211 
setUsesCleartextTraffic(boolean usesCleartextTraffic)212     ParsingPackage setUsesCleartextTraffic(boolean usesCleartextTraffic);
213 
setUsesNonSdkApi(boolean usesNonSdkApi)214     ParsingPackage setUsesNonSdkApi(boolean usesNonSdkApi);
215 
setVisibleToInstantApps(boolean visibleToInstantApps)216     ParsingPackage setVisibleToInstantApps(boolean visibleToInstantApps);
217 
setVmSafeMode(boolean vmSafeMode)218     ParsingPackage setVmSafeMode(boolean vmSafeMode);
219 
removeUsesOptionalLibrary(String libraryName)220     ParsingPackage removeUsesOptionalLibrary(String libraryName);
221 
setAnyDensity(int anyDensity)222     ParsingPackage setAnyDensity(int anyDensity);
223 
setAppComponentFactory(String appComponentFactory)224     ParsingPackage setAppComponentFactory(String appComponentFactory);
225 
setBackupAgentName(String backupAgentName)226     ParsingPackage setBackupAgentName(String backupAgentName);
227 
setBanner(int banner)228     ParsingPackage setBanner(int banner);
229 
setCategory(int category)230     ParsingPackage setCategory(int category);
231 
setClassLoaderName(String classLoaderName)232     ParsingPackage setClassLoaderName(String classLoaderName);
233 
setClassName(String className)234     ParsingPackage setClassName(String className);
235 
setCompatibleWidthLimitDp(int compatibleWidthLimitDp)236     ParsingPackage setCompatibleWidthLimitDp(int compatibleWidthLimitDp);
237 
setDescriptionRes(int descriptionRes)238     ParsingPackage setDescriptionRes(int descriptionRes);
239 
setEnabled(boolean enabled)240     ParsingPackage setEnabled(boolean enabled);
241 
setGwpAsanMode(int gwpAsanMode)242     ParsingPackage setGwpAsanMode(int gwpAsanMode);
243 
setCrossProfile(boolean crossProfile)244     ParsingPackage setCrossProfile(boolean crossProfile);
245 
setFullBackupContent(int fullBackupContent)246     ParsingPackage setFullBackupContent(int fullBackupContent);
247 
setHasDomainUrls(boolean hasDomainUrls)248     ParsingPackage setHasDomainUrls(boolean hasDomainUrls);
249 
setIconRes(int iconRes)250     ParsingPackage setIconRes(int iconRes);
251 
setInstallLocation(int installLocation)252     ParsingPackage setInstallLocation(int installLocation);
253 
setLabelRes(int labelRes)254     ParsingPackage setLabelRes(int labelRes);
255 
setLargestWidthLimitDp(int largestWidthLimitDp)256     ParsingPackage setLargestWidthLimitDp(int largestWidthLimitDp);
257 
setLogo(int logo)258     ParsingPackage setLogo(int logo);
259 
setManageSpaceActivityName(String manageSpaceActivityName)260     ParsingPackage setManageSpaceActivityName(String manageSpaceActivityName);
261 
setMinExtensionVersions(@ullable SparseIntArray minExtensionVersions)262     ParsingPackage setMinExtensionVersions(@Nullable SparseIntArray minExtensionVersions);
263 
setMinSdkVersion(int minSdkVersion)264     ParsingPackage setMinSdkVersion(int minSdkVersion);
265 
setNetworkSecurityConfigRes(int networkSecurityConfigRes)266     ParsingPackage setNetworkSecurityConfigRes(int networkSecurityConfigRes);
267 
setNonLocalizedLabel(CharSequence nonLocalizedLabel)268     ParsingPackage setNonLocalizedLabel(CharSequence nonLocalizedLabel);
269 
setOverlayCategory(String overlayCategory)270     ParsingPackage setOverlayCategory(String overlayCategory);
271 
setOverlayIsStatic(boolean overlayIsStatic)272     ParsingPackage setOverlayIsStatic(boolean overlayIsStatic);
273 
setOverlayPriority(int overlayPriority)274     ParsingPackage setOverlayPriority(int overlayPriority);
275 
setOverlayTarget(String overlayTarget)276     ParsingPackage setOverlayTarget(String overlayTarget);
277 
setOverlayTargetName(String overlayTargetName)278     ParsingPackage setOverlayTargetName(String overlayTargetName);
279 
setRealPackage(String realPackage)280     ParsingPackage setRealPackage(String realPackage);
281 
setRequiredAccountType(String requiredAccountType)282     ParsingPackage setRequiredAccountType(String requiredAccountType);
283 
setRequiredForAllUsers(boolean requiredForAllUsers)284     ParsingPackage setRequiredForAllUsers(boolean requiredForAllUsers);
285 
setRequiresSmallestWidthDp(int requiresSmallestWidthDp)286     ParsingPackage setRequiresSmallestWidthDp(int requiresSmallestWidthDp);
287 
setResizeable(int resizeable)288     ParsingPackage setResizeable(int resizeable);
289 
setRestrictUpdateHash(byte[] restrictUpdateHash)290     ParsingPackage setRestrictUpdateHash(byte[] restrictUpdateHash);
291 
setRestrictedAccountType(String restrictedAccountType)292     ParsingPackage setRestrictedAccountType(String restrictedAccountType);
293 
setRoundIconRes(int roundIconRes)294     ParsingPackage setRoundIconRes(int roundIconRes);
295 
setSharedUserLabel(int sharedUserLabel)296     ParsingPackage setSharedUserLabel(int sharedUserLabel);
297 
setSigningDetails(PackageParser.SigningDetails signingDetails)298     ParsingPackage setSigningDetails(PackageParser.SigningDetails signingDetails);
299 
setSplitClassLoaderName(int splitIndex, String classLoaderName)300     ParsingPackage setSplitClassLoaderName(int splitIndex, String classLoaderName);
301 
setStaticSharedLibVersion(long staticSharedLibVersion)302     ParsingPackage setStaticSharedLibVersion(long staticSharedLibVersion);
303 
setSupportsLargeScreens(int supportsLargeScreens)304     ParsingPackage setSupportsLargeScreens(int supportsLargeScreens);
305 
setSupportsNormalScreens(int supportsNormalScreens)306     ParsingPackage setSupportsNormalScreens(int supportsNormalScreens);
307 
setSupportsSmallScreens(int supportsSmallScreens)308     ParsingPackage setSupportsSmallScreens(int supportsSmallScreens);
309 
setSupportsExtraLargeScreens(int supportsExtraLargeScreens)310     ParsingPackage setSupportsExtraLargeScreens(int supportsExtraLargeScreens);
311 
setTargetSandboxVersion(int targetSandboxVersion)312     ParsingPackage setTargetSandboxVersion(int targetSandboxVersion);
313 
setTheme(int theme)314     ParsingPackage setTheme(int theme);
315 
setUpgradeKeySets(@onNull Set<String> upgradeKeySets)316     ParsingPackage setUpgradeKeySets(@NonNull Set<String> upgradeKeySets);
317 
setUse32BitAbi(boolean use32BitAbi)318     ParsingPackage setUse32BitAbi(boolean use32BitAbi);
319 
setVolumeUuid(@ullable String volumeUuid)320     ParsingPackage setVolumeUuid(@Nullable String volumeUuid);
321 
setZygotePreloadName(String zygotePreloadName)322     ParsingPackage setZygotePreloadName(String zygotePreloadName);
323 
sortActivities()324     ParsingPackage sortActivities();
325 
sortReceivers()326     ParsingPackage sortReceivers();
327 
sortServices()328     ParsingPackage sortServices();
329 
setBaseRevisionCode(int baseRevisionCode)330     ParsingPackage setBaseRevisionCode(int baseRevisionCode);
331 
setVersionName(String versionName)332     ParsingPackage setVersionName(String versionName);
333 
setCompileSdkVersion(int compileSdkVersion)334     ParsingPackage setCompileSdkVersion(int compileSdkVersion);
335 
setCompileSdkVersionCodename(String compileSdkVersionCodename)336     ParsingPackage setCompileSdkVersionCodename(String compileSdkVersionCodename);
337 
338     // TODO(b/135203078): This class no longer has access to ParsedPackage, find a replacement
339     //  for moving to the next step
340     @Deprecated
hideAsParsed()341     Object hideAsParsed();
342 }
343