blob: 2ee0ad67b108fa336a03d35074db88ebe6376ddc [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;
Oli Lan72ae4472020-04-14 16:50:41 +010037import android.util.SparseIntArray;
Winson14ff7172019-10-23 10:42:27 -070038
39import java.security.PublicKey;
Winson01e38f42020-01-24 11:50:11 -080040import java.util.Map;
41import java.util.Set;
Winson14ff7172019-10-23 10:42:27 -070042
43/**
44 * Methods used for mutation during direct package parsing.
45 *
Winson14ff7172019-10-23 10:42:27 -070046 * @hide
47 */
Winson01e38f42020-01-24 11:50:11 -080048@SuppressWarnings("UnusedReturnValue")
49public interface ParsingPackage extends ParsingPackageRead {
Winson14ff7172019-10-23 10:42:27 -070050
51 ParsingPackage addActivity(ParsedActivity parsedActivity);
52
53 ParsingPackage addAdoptPermission(String adoptPermission);
54
55 ParsingPackage addConfigPreference(ConfigurationInfo configPreference);
56
57 ParsingPackage addFeatureGroup(FeatureGroupInfo featureGroup);
58
59 ParsingPackage addImplicitPermission(String permission);
60
61 ParsingPackage addInstrumentation(ParsedInstrumentation instrumentation);
62
63 ParsingPackage addKeySet(String keySetName, PublicKey publicKey);
64
65 ParsingPackage addLibraryName(String libraryName);
66
67 ParsingPackage addOriginalPackage(String originalPackage);
68
Winson Chiu2fdaf812019-12-13 20:01:15 +000069 ParsingPackage addOverlayable(String overlayableName, String actorName);
70
Winson14ff7172019-10-23 10:42:27 -070071 ParsingPackage addPermission(ParsedPermission permission);
72
73 ParsingPackage addPermissionGroup(ParsedPermissionGroup permissionGroup);
74
Winsonf00c7552020-01-28 12:52:01 -080075 ParsingPackage addPreferredActivityFilter(String className, ParsedIntentInfo intentInfo);
Winson14ff7172019-10-23 10:42:27 -070076
77 ParsingPackage addProtectedBroadcast(String protectedBroadcast);
78
79 ParsingPackage addProvider(ParsedProvider parsedProvider);
80
Philip P. Moltmann12ac3f42020-03-05 15:01:29 -080081 ParsingPackage addAttribution(ParsedAttribution attribution);
Winson01e38f42020-01-24 11:50:11 -080082
Winson14ff7172019-10-23 10:42:27 -070083 ParsingPackage addReceiver(ParsedActivity parsedReceiver);
84
85 ParsingPackage addReqFeature(FeatureInfo reqFeature);
86
87 ParsingPackage addRequestedPermission(String permission);
88
89 ParsingPackage addService(ParsedService parsedService);
90
91 ParsingPackage addUsesLibrary(String libraryName);
92
93 ParsingPackage addUsesOptionalLibrary(String libraryName);
94
95 ParsingPackage addUsesStaticLibrary(String libraryName);
96
97 ParsingPackage addUsesStaticLibraryCertDigests(String[] certSha256Digests);
98
99 ParsingPackage addUsesStaticLibraryVersion(long version);
100
101 ParsingPackage addQueriesIntent(Intent intent);
102
103 ParsingPackage addQueriesPackage(String packageName);
104
Patrick Baumann99181232020-01-28 10:55:25 -0800105 ParsingPackage addQueriesProvider(String authority);
106
Winson01e38f42020-01-24 11:50:11 -0800107 ParsingPackage setProcesses(@NonNull Map<String, ParsedProcess> processes);
Dianne Hackbornf6729fa2020-01-06 13:12:36 -0800108
Winson14ff7172019-10-23 10:42:27 -0700109 ParsingPackage asSplit(
110 String[] splitNames,
111 String[] splitCodePaths,
112 int[] splitRevisionCodes,
113 @Nullable SparseArray<int[]> splitDependencies
114 );
115
Winson01e38f42020-01-24 11:50:11 -0800116 ParsingPackage setMetaData(Bundle metaData);
Winson14ff7172019-10-23 10:42:27 -0700117
118 ParsingPackage setForceQueryable(boolean forceQueryable);
119
120 ParsingPackage setMaxAspectRatio(float maxAspectRatio);
121
122 ParsingPackage setMinAspectRatio(float minAspectRatio);
123
Winson14ff7172019-10-23 10:42:27 -0700124 ParsingPackage setPermission(String permission);
125
126 ParsingPackage setProcessName(String processName);
127
128 ParsingPackage setSharedUserId(String sharedUserId);
129
130 ParsingPackage setStaticSharedLibName(String staticSharedLibName);
131
132 ParsingPackage setTaskAffinity(String taskAffinity);
133
134 ParsingPackage setTargetSdkVersion(int targetSdkVersion);
135
136 ParsingPackage setUiOptions(int uiOptions);
137
138 ParsingPackage setBaseHardwareAccelerated(boolean baseHardwareAccelerated);
139
Winson01e38f42020-01-24 11:50:11 -0800140 ParsingPackage setResizeableActivity(Boolean resizeable);
Winson14ff7172019-10-23 10:42:27 -0700141
Winson01e38f42020-01-24 11:50:11 -0800142 ParsingPackage setResizeableActivityViaSdkVersion(boolean resizeableViaSdkVersion);
Winson14ff7172019-10-23 10:42:27 -0700143
144 ParsingPackage setAllowAudioPlaybackCapture(boolean allowAudioPlaybackCapture);
145
146 ParsingPackage setAllowBackup(boolean allowBackup);
147
148 ParsingPackage setAllowClearUserData(boolean allowClearUserData);
149
150 ParsingPackage setAllowClearUserDataOnFailedRestore(boolean allowClearUserDataOnFailedRestore);
151
152 ParsingPackage setAllowTaskReparenting(boolean allowTaskReparenting);
153
Winson01e38f42020-01-24 11:50:11 -0800154 ParsingPackage setOverlay(boolean isOverlay);
Winson14ff7172019-10-23 10:42:27 -0700155
156 ParsingPackage setBackupInForeground(boolean backupInForeground);
157
158 ParsingPackage setCantSaveState(boolean cantSaveState);
159
160 ParsingPackage setDebuggable(boolean debuggable);
161
162 ParsingPackage setDefaultToDeviceProtectedStorage(boolean defaultToDeviceProtectedStorage);
163
164 ParsingPackage setDirectBootAware(boolean directBootAware);
165
166 ParsingPackage setExternalStorage(boolean externalStorage);
167
168 ParsingPackage setExtractNativeLibs(boolean extractNativeLibs);
169
170 ParsingPackage setFullBackupOnly(boolean fullBackupOnly);
171
172 ParsingPackage setHasCode(boolean hasCode);
173
174 ParsingPackage setHasFragileUserData(boolean hasFragileUserData);
175
Winson01e38f42020-01-24 11:50:11 -0800176 ParsingPackage setGame(boolean isGame);
Winson14ff7172019-10-23 10:42:27 -0700177
178 ParsingPackage setIsolatedSplitLoading(boolean isolatedSplitLoading);
179
180 ParsingPackage setKillAfterRestore(boolean killAfterRestore);
181
182 ParsingPackage setLargeHeap(boolean largeHeap);
183
184 ParsingPackage setMultiArch(boolean multiArch);
185
186 ParsingPackage setPartiallyDirectBootAware(boolean partiallyDirectBootAware);
187
188 ParsingPackage setPersistent(boolean persistent);
189
190 ParsingPackage setProfileableByShell(boolean profileableByShell);
191
192 ParsingPackage setRequestLegacyExternalStorage(boolean requestLegacyExternalStorage);
193
Evgenii Stepanov751fa182020-02-07 12:17:43 -0800194 ParsingPackage setAllowNativeHeapPointerTagging(boolean allowNativeHeapPointerTagging);
Eugene Susladb77bc12020-03-03 12:09:00 -0800195
Eugene Susla49b84c32020-03-23 15:19:29 -0700196 ParsingPackage setAutoRevokePermissions(int autoRevokePermissions);
Eugene Susladb77bc12020-03-03 12:09:00 -0800197
Zimb14fba22020-02-07 15:11:40 +0000198 ParsingPackage setPreserveLegacyExternalStorage(boolean preserveLegacyExternalStorage);
Evgenii Stepanov751fa182020-02-07 12:17:43 -0800199
Winson14ff7172019-10-23 10:42:27 -0700200 ParsingPackage setRestoreAnyVersion(boolean restoreAnyVersion);
201
202 ParsingPackage setSplitHasCode(int splitIndex, boolean splitHasCode);
203
204 ParsingPackage setStaticSharedLibrary(boolean staticSharedLibrary);
205
206 ParsingPackage setSupportsRtl(boolean supportsRtl);
207
208 ParsingPackage setTestOnly(boolean testOnly);
209
210 ParsingPackage setUseEmbeddedDex(boolean useEmbeddedDex);
211
212 ParsingPackage setUsesCleartextTraffic(boolean usesCleartextTraffic);
213
214 ParsingPackage setUsesNonSdkApi(boolean usesNonSdkApi);
215
216 ParsingPackage setVisibleToInstantApps(boolean visibleToInstantApps);
217
218 ParsingPackage setVmSafeMode(boolean vmSafeMode);
219
220 ParsingPackage removeUsesOptionalLibrary(String libraryName);
221
222 ParsingPackage setAnyDensity(int anyDensity);
223
224 ParsingPackage setAppComponentFactory(String appComponentFactory);
225
Winson14ff7172019-10-23 10:42:27 -0700226 ParsingPackage setBackupAgentName(String backupAgentName);
227
228 ParsingPackage setBanner(int banner);
229
230 ParsingPackage setCategory(int category);
231
232 ParsingPackage setClassLoaderName(String classLoaderName);
233
234 ParsingPackage setClassName(String className);
235
Winson14ff7172019-10-23 10:42:27 -0700236 ParsingPackage setCompatibleWidthLimitDp(int compatibleWidthLimitDp);
237
238 ParsingPackage setDescriptionRes(int descriptionRes);
239
240 ParsingPackage setEnabled(boolean enabled);
241
Evgenii Stepanovd43d1092020-03-16 13:55:42 -0700242 ParsingPackage setGwpAsanMode(int gwpAsanMode);
Evgenii Stepanov102d3d82020-02-12 16:48:14 -0800243
Jonathan Scottec60b262019-12-17 15:22:51 +0000244 ParsingPackage setCrossProfile(boolean crossProfile);
245
Winson14ff7172019-10-23 10:42:27 -0700246 ParsingPackage setFullBackupContent(int fullBackupContent);
247
248 ParsingPackage setHasDomainUrls(boolean hasDomainUrls);
249
Winson14ff7172019-10-23 10:42:27 -0700250 ParsingPackage setIconRes(int iconRes);
251
252 ParsingPackage setInstallLocation(int installLocation);
253
254 ParsingPackage setLabelRes(int labelRes);
255
256 ParsingPackage setLargestWidthLimitDp(int largestWidthLimitDp);
257
258 ParsingPackage setLogo(int logo);
259
260 ParsingPackage setManageSpaceActivityName(String manageSpaceActivityName);
261
Oli Lan72ae4472020-04-14 16:50:41 +0100262 ParsingPackage setMinExtensionVersions(@Nullable SparseIntArray minExtensionVersions);
263
Winson14ff7172019-10-23 10:42:27 -0700264 ParsingPackage setMinSdkVersion(int minSdkVersion);
265
266 ParsingPackage setNetworkSecurityConfigRes(int networkSecurityConfigRes);
267
268 ParsingPackage setNonLocalizedLabel(CharSequence nonLocalizedLabel);
269
270 ParsingPackage setOverlayCategory(String overlayCategory);
271
272 ParsingPackage setOverlayIsStatic(boolean overlayIsStatic);
273
274 ParsingPackage setOverlayPriority(int overlayPriority);
275
276 ParsingPackage setOverlayTarget(String overlayTarget);
277
278 ParsingPackage setOverlayTargetName(String overlayTargetName);
279
280 ParsingPackage setRealPackage(String realPackage);
281
282 ParsingPackage setRequiredAccountType(String requiredAccountType);
283
284 ParsingPackage setRequiredForAllUsers(boolean requiredForAllUsers);
285
286 ParsingPackage setRequiresSmallestWidthDp(int requiresSmallestWidthDp);
287
288 ParsingPackage setResizeable(int resizeable);
289
290 ParsingPackage setRestrictUpdateHash(byte[] restrictUpdateHash);
291
292 ParsingPackage setRestrictedAccountType(String restrictedAccountType);
293
294 ParsingPackage setRoundIconRes(int roundIconRes);
295
296 ParsingPackage setSharedUserLabel(int sharedUserLabel);
297
298 ParsingPackage setSigningDetails(PackageParser.SigningDetails signingDetails);
299
300 ParsingPackage setSplitClassLoaderName(int splitIndex, String classLoaderName);
301
302 ParsingPackage setStaticSharedLibVersion(long staticSharedLibVersion);
303
304 ParsingPackage setSupportsLargeScreens(int supportsLargeScreens);
305
306 ParsingPackage setSupportsNormalScreens(int supportsNormalScreens);
307
308 ParsingPackage setSupportsSmallScreens(int supportsSmallScreens);
309
Winson01e38f42020-01-24 11:50:11 -0800310 ParsingPackage setSupportsExtraLargeScreens(int supportsExtraLargeScreens);
Winson14ff7172019-10-23 10:42:27 -0700311
312 ParsingPackage setTargetSandboxVersion(int targetSandboxVersion);
313
314 ParsingPackage setTheme(int theme);
315
Winson01e38f42020-01-24 11:50:11 -0800316 ParsingPackage setUpgradeKeySets(@NonNull Set<String> upgradeKeySets);
Winson14ff7172019-10-23 10:42:27 -0700317
318 ParsingPackage setUse32BitAbi(boolean use32BitAbi);
319
Winson01e38f42020-01-24 11:50:11 -0800320 ParsingPackage setVolumeUuid(@Nullable String volumeUuid);
Winson14ff7172019-10-23 10:42:27 -0700321
322 ParsingPackage setZygotePreloadName(String zygotePreloadName);
323
324 ParsingPackage sortActivities();
325
326 ParsingPackage sortReceivers();
327
328 ParsingPackage sortServices();
329
Winson14ff7172019-10-23 10:42:27 -0700330 ParsingPackage setBaseRevisionCode(int baseRevisionCode);
331
Winson14ff7172019-10-23 10:42:27 -0700332 ParsingPackage setVersionName(String versionName);
333
334 ParsingPackage setCompileSdkVersion(int compileSdkVersion);
335
336 ParsingPackage setCompileSdkVersionCodename(String compileSdkVersionCodename);
337
Winson01e38f42020-01-24 11:50:11 -0800338 // TODO(b/135203078): This class no longer has access to ParsedPackage, find a replacement
339 // for moving to the next step
340 @Deprecated
341 Object hideAsParsed();
Winson14ff7172019-10-23 10:42:27 -0700342}