1 /* 2 * Copyright (C) 2018 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.apex; 18 19 parcelable ApexInfo { 20 @utf8InCpp String moduleName; 21 @utf8InCpp String modulePath; 22 @utf8InCpp String preinstalledModulePath; 23 long versionCode; 24 @utf8InCpp String versionName; 25 boolean isFactory; 26 boolean isActive; 27 28 // Populated only for getStagedApex() API 29 boolean hasClassPathJars; 30 31 // Will be set to true if during this boot a different APEX package of the APEX was 32 // activated, than in the previous boot. 33 // This can happen in the following situations: 34 // 1. It was part of the staged session that was applied during this boot. 35 // 2. A compressed system APEX was decompressed during this boot. 36 // 3. apexd failed to activate an APEX on /data/apex/active (that was successfully 37 // activated during last boot) and needed to fallback to pre-installed counterpart. 38 // Note: this field can only be set to true during boot, after boot is completed 39 // (sys.boot_completed = 1) value of this field will always be false. 40 boolean activeApexChanged; 41 42 /** 43 * The partition that an APEX is pre-installed in or maps to. 44 */ 45 enum Partition { 46 SYSTEM, 47 SYSTEM_EXT, 48 PRODUCT, 49 VENDOR, 50 ODM 51 } 52 53 // For pre-installed APEX, this is the partition where it is pre-installed. For brand-new APEX, this is the partition where its credential is pre-installed. 54 Partition partition; 55 } 56