The decision to support updatable APEX or not used to be SoC-specific
because updatable APEX (aka non-flattened APEX) requires some kernel
feature support like loopback device. Kernel was considered as part of
BSP then. Therefore, ro.apex.updatable property was in the vendor
partition.
However, with GKI, kernel is no longer SoC-specific. And most APEXes are
installed to the system partition, which means that the decision affects
how the system partition is built. Thus, this CL moves the property to
the system partition. This enables some partners who have been using
flattened APEX to be able to upgrade to non-flattened APEX without
having to upgrade the vendor partition.
Bug: 281007951
Test: check system/build.prop
Change-Id: I81874076862f6047b9daa14518b95adcb5275064
This reverts commit b695e761f1.
Reason for revert: b/185708645 has been fixed
Bug: 169780183
Bug: 185708645
Change-Id: If0ea1168c710eeb4c90d7a9768a278a07adc48fa
Test: Manually updated APEX with same version via OTA/adb-remount and observed it was decompressed.
This reverts commit f8283a8bf6.
Test: device boots
Test: OTA from uncompressed apexes to compressed apexes works
Bug: 169780183
Bug: 184746992
Bug: 185082717
Change-Id: I62e379f44a1dcf8ebd2b3448dc1381cd99427b45
Properties for <partition>/build.prop are now added via
PRODUCT_<PARTITION>_PROPERTIES.
PRODUCT_SYSTEM_PROPERTIES is added. PRODUCT_SYSTEM_DEFAULT_PROPERTIES
will be deprecated.
PRODUCT_VENDOR_PROPERTIES is added. PRODUCT_PROPERTY_OVERRIDES and
PRODUCT_DEFAULT_PROPERTY_OVERRIDES will be deprecated in favor of the new
variable.
For other partitions (odm, system_ext, product), there is no change.
Exempt-From-Owner-Approval: cherry-pick from master
Bug: 117892318
Test: m
Merged-In: I98f3b5d0da661b3ad75260a23754e655103b7a44
(cherry picked from commit ad810b6dae)
Change-Id: I98f3b5d0da661b3ad75260a23754e655103b7a44
Fix: 158036322
Test: built flame-userdebug with m OVERRIDE_TARGET_FLATTEN_APEX=true, ran
atest CtsAppSecurityHostTestCases:android.appsecurity.cts.PrivilegedUpdateTests#testDisableUpdatedSystemApp
and verified that the cts shim apex is not installed
Change-Id: Icc52500cfc0a555e11d1a467b2da0649c7f5d31f
Merged-In: Icc52500cfc0a555e11d1a467b2da0649c7f5d31f
(cherry picked from commit c9a786e5f77a5c06da6c07f718e4a7619a75d9e6)
These packages are now available in the shim apex package, which is made
available in both flattened and unflattened apex configurations.
Bug: 138429615
Test: atest CtsPrivilegedUpdateTests CtsPermissionTestCases
CtsStagedInstallHostTestCases; (on both flattened and unflattened
configurations)
Exempt-From-Owner-Approval: approved in
https://android-review.googlesource.com/c/platform/build/+/1180943
Change-Id: I03939f6c3e711d5887da201e32173f86a6b0289e
When `OVERRIDE_TARGET_FLATTEN_APEX` is defined (e.g. set in the
environment), `TARGET_FLATTEN_APEX` is forcibly assigned its value.
This is useful to enable/disable APEX flattening from the command
line (thus ignoring the product's default configuration), for testing
purposes.
Note: Previously it was possible to set `TARGET_FLATTEN_APEX` directly
and have the same effect, but recent changes in the build
configuration now prevent that option.
Test: Check that:
export OVERRIDE_TARGET_FLATTEN_APEX=true \
&& . ./build/envsetup.sh \
&& lunch aosp_walleye-userdebug \
&& export OVERRIDE_TARGET_FLATTEN_APEX=true \
&& build/soong/soong_ui.bash --dumpvar-mode TARGET_FLATTEN_APEX
returns:
true
Bug: 121117762
Change-Id: Ib9ccae38430340de38e4758b4f55df2c65ea60d5
mainline_system.mk is inherited by not only Pixels but also products
like GSI and sdk_gphone where kernel isn't capable of supporting
updatable APEX.
Stop inheriting updatable_apex.mk from mainline_system.mk and let each
product to decide whether or not to inherit updatable_apex.mk.
Also, TARGET_FLATTEN_APEX is not set to true for GSI as it is the
default setting.
Bug: 132664085
Test: choosecombo 1 aosp_arm64 userdebug; get_build_var
TARGET_FLATTEN_APEX shows true
choosecombo 1 sdk_gphone userdebug; get_build_var TARGET_FLATTEN_APEX
shows true
Change-Id: I3c4e1e4b2bbebd675904d148dd18acb57ecbdfe9
Merged-In: I3c4e1e4b2bbebd675904d148dd18acb57ecbdfe9
(cherry picked from commit 5fd45bbeb0)
TARGET_FLATTEN_APEX and ro.apex.updatable cannot be independently set.
For a device where updating APEXes is not supported, ro.apex.updatable
should not be set (or set to false) and TARGET_FLATTEN_APEX should be
set to true. For APEX-supporting devices, it is the opposite;
ro.apex.updatable == true and TARGET_FLATTEN_APEX is false (or not set).
To ensure this relationship, TARGET_FLATTEN_APEX is by default set to
true, and overridden to false when updatable_apex.mk is inherited.
Bug: 130623080
Test: choosecombo to Pixels 2 and later; get_build_var
TARGET_FLATTEN_APEX returns false.
choosecombo to the original Pixel and other non-Pixel targets;
get_build_var TARGET_FLATTEN_APEX returns true.
choosecombo to the cuttlefish; get_build_var TARGET_FLATTEN_APEX
returns false
Merged-In: Id73a594dd9838457e68e2793122592c11a84fc83
Change-Id: Id73a594dd9838457e68e2793122592c11a84fc83
(cherry picked from commit 18411a42f0)
The product abstracts configs that need to be set to support updating of
APEXes.
Bug: 130418467
Test: m
Test: adb shell getprop ro.apex.updatable in Pixel 2 and 3
Test: adb shell /system/apex/com.android.apex.cts.shim.apex exists.
Merged-In: Idb44388a0cf6338f8b4500a1d0d2762ed59476bf
Change-Id: Idb44388a0cf6338f8b4500a1d0d2762ed59476bf
(cherry picked from commit fa51bedf8b)