blob: 0c874db2f8b4dcff5b25328ccb41f4463b81715e [file] [log] [blame]
Winson14ff7172019-10-23 10:42:27 -07001/*
Winson01e38f42020-01-24 11:50:11 -08002 * Copyright (C) 2020 The Android Open Source Project
Winson14ff7172019-10-23 10:42:27 -07003 *
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
17package android.content.pm.parsing;
18
Winson01e38f42020-01-24 11:50:11 -080019import android.annotation.NonNull;
Winson14ff7172019-10-23 10:42:27 -070020import android.annotation.Nullable;
21import android.content.Intent;
22import android.content.pm.ConfigurationInfo;
23import android.content.pm.FeatureGroupInfo;
24import android.content.pm.FeatureInfo;
25import android.content.pm.PackageParser;
Winsonf00c7552020-01-28 12:52:01 -080026import android.content.pm.parsing.component.ParsedActivity;
Philip P. Moltmann12ac3f42020-03-05 15:01:29 -080027import android.content.pm.parsing.component.ParsedAttribution;
Winsonf00c7552020-01-28 12:52:01 -080028import android.content.pm.parsing.component.ParsedInstrumentation;
29import android.content.pm.parsing.component.ParsedIntentInfo;
30import android.content.pm.parsing.component.ParsedPermission;
31import android.content.pm.parsing.component.ParsedPermissionGroup;
32import android.content.pm.parsing.component.ParsedProcess;
33import android.content.pm.parsing.component.ParsedProvider;
34import android.content.pm.parsing.component.ParsedService;
Winson14ff7172019-10-23 10:42:27 -070035import android.os.Bundle;
Winson14ff7172019-10-23 10:42:27 -070036import android.util.SparseArray;
37
38import java.security.PublicKey;
Winson01e38f42020-01-24 11:50:11 -080039import java.util.Map;
40import java.util.Set;
Winson14ff7172019-10-23 10:42:27 -070041
42/**
43 * Methods used for mutation during direct package parsing.
44 *
Winson14ff7172019-10-23 10:42:27 -070045 * @hide
46 */
Winson01e38f42020-01-24 11:50:11 -080047@SuppressWarnings("UnusedReturnValue")
48public interface ParsingPackage extends ParsingPackageRead {
Winson14ff7172019-10-23 10:42:27 -070049
50 ParsingPackage addActivity(ParsedActivity parsedActivity);
51
52 ParsingPackage addAdoptPermission(String adoptPermission);
53
54 ParsingPackage addConfigPreference(ConfigurationInfo configPreference);
55
56 ParsingPackage addFeatureGroup(FeatureGroupInfo featureGroup);
57
58 ParsingPackage addImplicitPermission(String permission);
59
60 ParsingPackage addInstrumentation(ParsedInstrumentation instrumentation);
61
62 ParsingPackage addKeySet(String keySetName, PublicKey publicKey);
63
64 ParsingPackage addLibraryName(String libraryName);
65
66 ParsingPackage addOriginalPackage(String originalPackage);
67
Winson Chiu2fdaf812019-12-13 20:01:15 +000068 ParsingPackage addOverlayable(String overlayableName, String actorName);
69
Winson14ff7172019-10-23 10:42:27 -070070 ParsingPackage addPermission(ParsedPermission permission);
71
72 ParsingPackage addPermissionGroup(ParsedPermissionGroup permissionGroup);
73
Winsonf00c7552020-01-28 12:52:01 -080074 ParsingPackage addPreferredActivityFilter(String className, ParsedIntentInfo intentInfo);
Winson14ff7172019-10-23 10:42:27 -070075
76 ParsingPackage addProtectedBroadcast(String protectedBroadcast);
77
78 ParsingPackage addProvider(ParsedProvider parsedProvider);
79
Philip P. Moltmann12ac3f42020-03-05 15:01:29 -080080 ParsingPackage addAttribution(ParsedAttribution attribution);
Winson01e38f42020-01-24 11:50:11 -080081
Winson14ff7172019-10-23 10:42:27 -070082 ParsingPackage addReceiver(ParsedActivity parsedReceiver);
83
84 ParsingPackage addReqFeature(FeatureInfo reqFeature);
85
86 ParsingPackage addRequestedPermission(String permission);
87
88 ParsingPackage addService(ParsedService parsedService);
89
90 ParsingPackage addUsesLibrary(String libraryName);
91
92 ParsingPackage addUsesOptionalLibrary(String libraryName);
93
94 ParsingPackage addUsesStaticLibrary(String libraryName);
95
96 ParsingPackage addUsesStaticLibraryCertDigests(String[] certSha256Digests);
97
98 ParsingPackage addUsesStaticLibraryVersion(long version);
99
100 ParsingPackage addQueriesIntent(Intent intent);
101
102 ParsingPackage addQueriesPackage(String packageName);
103
Patrick Baumann99181232020-01-28 10:55:25 -0800104 ParsingPackage addQueriesProvider(String authority);
105
Winson01e38f42020-01-24 11:50:11 -0800106 ParsingPackage setProcesses(@NonNull Map<String, ParsedProcess> processes);
Dianne Hackbornf6729fa2020-01-06 13:12:36 -0800107
Winson14ff7172019-10-23 10:42:27 -0700108 ParsingPackage asSplit(
109 String[] splitNames,
110 String[] splitCodePaths,
111 int[] splitRevisionCodes,
112 @Nullable SparseArray<int[]> splitDependencies
113 );
114
Winson01e38f42020-01-24 11:50:11 -0800115 ParsingPackage setMetaData(Bundle metaData);
Winson14ff7172019-10-23 10:42:27 -0700116
117 ParsingPackage setForceQueryable(boolean forceQueryable);
118
119 ParsingPackage setMaxAspectRatio(float maxAspectRatio);
120
121 ParsingPackage setMinAspectRatio(float minAspectRatio);
122
Winson14ff7172019-10-23 10:42:27 -0700123 ParsingPackage setPermission(String permission);
124
125 ParsingPackage setProcessName(String processName);
126
127 ParsingPackage setSharedUserId(String sharedUserId);
128
129 ParsingPackage setStaticSharedLibName(String staticSharedLibName);
130
131 ParsingPackage setTaskAffinity(String taskAffinity);
132
133 ParsingPackage setTargetSdkVersion(int targetSdkVersion);
134
135 ParsingPackage setUiOptions(int uiOptions);
136
137 ParsingPackage setBaseHardwareAccelerated(boolean baseHardwareAccelerated);
138
Winson01e38f42020-01-24 11:50:11 -0800139 ParsingPackage setResizeableActivity(Boolean resizeable);
Winson14ff7172019-10-23 10:42:27 -0700140
Winson01e38f42020-01-24 11:50:11 -0800141 ParsingPackage setResizeableActivityViaSdkVersion(boolean resizeableViaSdkVersion);
Winson14ff7172019-10-23 10:42:27 -0700142
143 ParsingPackage setAllowAudioPlaybackCapture(boolean allowAudioPlaybackCapture);
144
145 ParsingPackage setAllowBackup(boolean allowBackup);
146
147 ParsingPackage setAllowClearUserData(boolean allowClearUserData);
148
149 ParsingPackage setAllowClearUserDataOnFailedRestore(boolean allowClearUserDataOnFailedRestore);
150
151 ParsingPackage setAllowTaskReparenting(boolean allowTaskReparenting);
152
Winson01e38f42020-01-24 11:50:11 -0800153 ParsingPackage setOverlay(boolean isOverlay);
Winson14ff7172019-10-23 10:42:27 -0700154
155 ParsingPackage setBackupInForeground(boolean backupInForeground);
156
157 ParsingPackage setCantSaveState(boolean cantSaveState);
158
159 ParsingPackage setDebuggable(boolean debuggable);
160
161 ParsingPackage setDefaultToDeviceProtectedStorage(boolean defaultToDeviceProtectedStorage);
162
163 ParsingPackage setDirectBootAware(boolean directBootAware);
164
165 ParsingPackage setExternalStorage(boolean externalStorage);
166
167 ParsingPackage setExtractNativeLibs(boolean extractNativeLibs);
168
169 ParsingPackage setFullBackupOnly(boolean fullBackupOnly);
170
171 ParsingPackage setHasCode(boolean hasCode);
172
173 ParsingPackage setHasFragileUserData(boolean hasFragileUserData);
174
Winson01e38f42020-01-24 11:50:11 -0800175 ParsingPackage setGame(boolean isGame);
Winson14ff7172019-10-23 10:42:27 -0700176
177 ParsingPackage setIsolatedSplitLoading(boolean isolatedSplitLoading);
178
179 ParsingPackage setKillAfterRestore(boolean killAfterRestore);
180
181 ParsingPackage setLargeHeap(boolean largeHeap);
182
183 ParsingPackage setMultiArch(boolean multiArch);
184
185 ParsingPackage setPartiallyDirectBootAware(boolean partiallyDirectBootAware);
186
187 ParsingPackage setPersistent(boolean persistent);
188
189 ParsingPackage setProfileableByShell(boolean profileableByShell);
190
191 ParsingPackage setRequestLegacyExternalStorage(boolean requestLegacyExternalStorage);
192
Evgenii Stepanov751fa182020-02-07 12:17:43 -0800193 ParsingPackage setAllowNativeHeapPointerTagging(boolean allowNativeHeapPointerTagging);
Zimb14fba22020-02-07 15:11:40 +0000194
195 ParsingPackage setPreserveLegacyExternalStorage(boolean preserveLegacyExternalStorage);
Evgenii Stepanov751fa182020-02-07 12:17:43 -0800196
Winson14ff7172019-10-23 10:42:27 -0700197 ParsingPackage setRestoreAnyVersion(boolean restoreAnyVersion);
198
199 ParsingPackage setSplitHasCode(int splitIndex, boolean splitHasCode);
200
201 ParsingPackage setStaticSharedLibrary(boolean staticSharedLibrary);
202
203 ParsingPackage setSupportsRtl(boolean supportsRtl);
204
205 ParsingPackage setTestOnly(boolean testOnly);
206
207 ParsingPackage setUseEmbeddedDex(boolean useEmbeddedDex);
208
209 ParsingPackage setUsesCleartextTraffic(boolean usesCleartextTraffic);
210
211 ParsingPackage setUsesNonSdkApi(boolean usesNonSdkApi);
212
213 ParsingPackage setVisibleToInstantApps(boolean visibleToInstantApps);
214
215 ParsingPackage setVmSafeMode(boolean vmSafeMode);
216
217 ParsingPackage removeUsesOptionalLibrary(String libraryName);
218
219 ParsingPackage setAnyDensity(int anyDensity);
220
221 ParsingPackage setAppComponentFactory(String appComponentFactory);
222
Winson14ff7172019-10-23 10:42:27 -0700223 ParsingPackage setBackupAgentName(String backupAgentName);
224
225 ParsingPackage setBanner(int banner);
226
227 ParsingPackage setCategory(int category);
228
229 ParsingPackage setClassLoaderName(String classLoaderName);
230
231 ParsingPackage setClassName(String className);
232
Winson14ff7172019-10-23 10:42:27 -0700233 ParsingPackage setCompatibleWidthLimitDp(int compatibleWidthLimitDp);
234
235 ParsingPackage setDescriptionRes(int descriptionRes);
236
237 ParsingPackage setEnabled(boolean enabled);
238
Jonathan Scottec60b262019-12-17 15:22:51 +0000239 ParsingPackage setCrossProfile(boolean crossProfile);
240
Winson14ff7172019-10-23 10:42:27 -0700241 ParsingPackage setFullBackupContent(int fullBackupContent);
242
243 ParsingPackage setHasDomainUrls(boolean hasDomainUrls);
244
Winson14ff7172019-10-23 10:42:27 -0700245 ParsingPackage setIconRes(int iconRes);
246
247 ParsingPackage setInstallLocation(int installLocation);
248
249 ParsingPackage setLabelRes(int labelRes);
250
251 ParsingPackage setLargestWidthLimitDp(int largestWidthLimitDp);
252
253 ParsingPackage setLogo(int logo);
254
255 ParsingPackage setManageSpaceActivityName(String manageSpaceActivityName);
256
257 ParsingPackage setMinSdkVersion(int minSdkVersion);
258
259 ParsingPackage setNetworkSecurityConfigRes(int networkSecurityConfigRes);
260
261 ParsingPackage setNonLocalizedLabel(CharSequence nonLocalizedLabel);
262
263 ParsingPackage setOverlayCategory(String overlayCategory);
264
265 ParsingPackage setOverlayIsStatic(boolean overlayIsStatic);
266
267 ParsingPackage setOverlayPriority(int overlayPriority);
268
269 ParsingPackage setOverlayTarget(String overlayTarget);
270
271 ParsingPackage setOverlayTargetName(String overlayTargetName);
272
273 ParsingPackage setRealPackage(String realPackage);
274
275 ParsingPackage setRequiredAccountType(String requiredAccountType);
276
277 ParsingPackage setRequiredForAllUsers(boolean requiredForAllUsers);
278
279 ParsingPackage setRequiresSmallestWidthDp(int requiresSmallestWidthDp);
280
281 ParsingPackage setResizeable(int resizeable);
282
283 ParsingPackage setRestrictUpdateHash(byte[] restrictUpdateHash);
284
285 ParsingPackage setRestrictedAccountType(String restrictedAccountType);
286
287 ParsingPackage setRoundIconRes(int roundIconRes);
288
289 ParsingPackage setSharedUserLabel(int sharedUserLabel);
290
291 ParsingPackage setSigningDetails(PackageParser.SigningDetails signingDetails);
292
293 ParsingPackage setSplitClassLoaderName(int splitIndex, String classLoaderName);
294
295 ParsingPackage setStaticSharedLibVersion(long staticSharedLibVersion);
296
297 ParsingPackage setSupportsLargeScreens(int supportsLargeScreens);
298
299 ParsingPackage setSupportsNormalScreens(int supportsNormalScreens);
300
301 ParsingPackage setSupportsSmallScreens(int supportsSmallScreens);
302
Winson01e38f42020-01-24 11:50:11 -0800303 ParsingPackage setSupportsExtraLargeScreens(int supportsExtraLargeScreens);
Winson14ff7172019-10-23 10:42:27 -0700304
305 ParsingPackage setTargetSandboxVersion(int targetSandboxVersion);
306
307 ParsingPackage setTheme(int theme);
308
Winson01e38f42020-01-24 11:50:11 -0800309 ParsingPackage setUpgradeKeySets(@NonNull Set<String> upgradeKeySets);
Winson14ff7172019-10-23 10:42:27 -0700310
311 ParsingPackage setUse32BitAbi(boolean use32BitAbi);
312
Winson01e38f42020-01-24 11:50:11 -0800313 ParsingPackage setVolumeUuid(@Nullable String volumeUuid);
Winson14ff7172019-10-23 10:42:27 -0700314
315 ParsingPackage setZygotePreloadName(String zygotePreloadName);
316
317 ParsingPackage sortActivities();
318
319 ParsingPackage sortReceivers();
320
321 ParsingPackage sortServices();
322
Winson14ff7172019-10-23 10:42:27 -0700323 ParsingPackage setBaseRevisionCode(int baseRevisionCode);
324
Winson14ff7172019-10-23 10:42:27 -0700325 ParsingPackage setVersionName(String versionName);
326
327 ParsingPackage setCompileSdkVersion(int compileSdkVersion);
328
329 ParsingPackage setCompileSdkVersionCodename(String compileSdkVersionCodename);
330
Winson01e38f42020-01-24 11:50:11 -0800331 // TODO(b/135203078): This class no longer has access to ParsedPackage, find a replacement
332 // for moving to the next step
333 @Deprecated
334 Object hideAsParsed();
Winson14ff7172019-10-23 10:42:27 -0700335}