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 com.android.server.pm.parsing.pkg; 18 19 import android.content.pm.SigningDetails; 20 21 /** 22 * Methods used for mutation after direct package parsing, mostly done inside 23 * {@link com.android.server.pm.PackageManagerService}. 24 * 25 * Java disallows defining this as an inner interface, so this must be a separate file. 26 * 27 * @hide 28 */ 29 public interface ParsedPackage extends AndroidPackage { 30 hideAsFinal()31 AndroidPackage hideAsFinal(); 32 addUsesLibrary(int index, String libraryName)33 ParsedPackage addUsesLibrary(int index, String libraryName); 34 addUsesOptionalLibrary(int index, String libraryName)35 ParsedPackage addUsesOptionalLibrary(int index, String libraryName); 36 capPermissionPriorities()37 ParsedPackage capPermissionPriorities(); 38 clearAdoptPermissions()39 ParsedPackage clearAdoptPermissions(); 40 clearOriginalPackages()41 ParsedPackage clearOriginalPackages(); 42 clearProtectedBroadcasts()43 ParsedPackage clearProtectedBroadcasts(); 44 setBaseApkPath(String baseApkPath)45 ParsedPackage setBaseApkPath(String baseApkPath); 46 setPath(String path)47 ParsedPackage setPath(String path); 48 setNativeLibraryDir(String nativeLibraryDir)49 ParsedPackage setNativeLibraryDir(String nativeLibraryDir); 50 setNativeLibraryRootDir(String nativeLibraryRootDir)51 ParsedPackage setNativeLibraryRootDir(String nativeLibraryRootDir); 52 setPackageName(String packageName)53 ParsedPackage setPackageName(String packageName); 54 setPrimaryCpuAbi(String primaryCpuAbi)55 ParsedPackage setPrimaryCpuAbi(String primaryCpuAbi); 56 setSecondaryCpuAbi(String secondaryCpuAbi)57 ParsedPackage setSecondaryCpuAbi(String secondaryCpuAbi); 58 setSigningDetails(SigningDetails signingDetails)59 ParsedPackage setSigningDetails(SigningDetails signingDetails); 60 setSplitCodePaths(String[] splitCodePaths)61 ParsedPackage setSplitCodePaths(String[] splitCodePaths); 62 setNativeLibraryRootRequiresIsa(boolean nativeLibraryRootRequiresIsa)63 ParsedPackage setNativeLibraryRootRequiresIsa(boolean nativeLibraryRootRequiresIsa); 64 setAllComponentsDirectBootAware(boolean allComponentsDirectBootAware)65 ParsedPackage setAllComponentsDirectBootAware(boolean allComponentsDirectBootAware); 66 setFactoryTest(boolean factoryTest)67 ParsedPackage setFactoryTest(boolean factoryTest); 68 markNotActivitiesAsNotExportedIfSingleUser()69 ParsedPackage markNotActivitiesAsNotExportedIfSingleUser(); 70 setOdm(boolean odm)71 ParsedPackage setOdm(boolean odm); 72 setOem(boolean oem)73 ParsedPackage setOem(boolean oem); 74 setPrivileged(boolean privileged)75 ParsedPackage setPrivileged(boolean privileged); 76 setProduct(boolean product)77 ParsedPackage setProduct(boolean product); 78 setSignedWithPlatformKey(boolean signedWithPlatformKey)79 ParsedPackage setSignedWithPlatformKey(boolean signedWithPlatformKey); 80 setSystem(boolean system)81 ParsedPackage setSystem(boolean system); 82 setSystemExt(boolean systemExt)83 ParsedPackage setSystemExt(boolean systemExt); 84 setVendor(boolean vendor)85 ParsedPackage setVendor(boolean vendor); 86 removePermission(int index)87 ParsedPackage removePermission(int index); 88 removeUsesLibrary(String libraryName)89 ParsedPackage removeUsesLibrary(String libraryName); 90 removeUsesOptionalLibrary(String libraryName)91 ParsedPackage removeUsesOptionalLibrary(String libraryName); 92 setCoreApp(boolean coreApp)93 ParsedPackage setCoreApp(boolean coreApp); 94 setStub(boolean isStub)95 ParsedPackage setStub(boolean isStub); 96 setRestrictUpdateHash(byte[] restrictUpdateHash)97 ParsedPackage setRestrictUpdateHash(byte[] restrictUpdateHash); 98 setSeInfo(String seInfo)99 ParsedPackage setSeInfo(String seInfo); 100 setSecondaryNativeLibraryDir(String secondaryNativeLibraryDir)101 ParsedPackage setSecondaryNativeLibraryDir(String secondaryNativeLibraryDir); 102 103 /** 104 * This is an appId, the uid if the userId is == USER_SYSTEM 105 */ setUid(int uid)106 ParsedPackage setUid(int uid); 107 setVersionCode(int versionCode)108 ParsedPackage setVersionCode(int versionCode); 109 setVersionCodeMajor(int versionCodeMajor)110 ParsedPackage setVersionCodeMajor(int versionCodeMajor); 111 112 // TODO(b/135203078): Move logic earlier in parse chain so nothing needs to be reverted setDefaultToDeviceProtectedStorage(boolean defaultToDeviceProtectedStorage)113 ParsedPackage setDefaultToDeviceProtectedStorage(boolean defaultToDeviceProtectedStorage); 114 setDirectBootAware(boolean directBootAware)115 ParsedPackage setDirectBootAware(boolean directBootAware); 116 setPersistent(boolean persistent)117 ParsedPackage setPersistent(boolean persistent); 118 } 119