The previous need to build mainline devices as A/B no longer applies
[1], as we have unbundled the install of update-payload-key.pub.pem from
AB_OTA_UPDATER. Unsetting AB_OTA_UPDATER from BoardConfigMainlineCommon
defers the decision of using A/B OTA to be board-specific.
mainline_arm64 is considered as a specific board to build generic
system-only OTAs in A/B format. So it defines the two variables there.
[1] commit 571fab0610
Bug: 130516531
Test: TreeHugger
Test: Compare the built images for GSI and mainline targets. They don't
have different artifacts due to the change.
Change-Id: I33cc9b6623dca7cc7c2a7e2c65cdbccced5e816e
With the support of enabling AVB on standalone partitions in libfs_avb,
devices can boot GSI with dm-verity. No need to disable AVB anymore.
Devices still can use the following command to disable AVB on
device-specific vbmeta.img if needed:
`fastboot flash --disable-verification vbmeta vbmeta.img`
Bug: 130595457
Test: Tree Hugger
Change-Id: I067dcda15f14f04428e0b60ce1f49227d61e4349
The extensions is for OEM. To avoid AOSP code using OEM
extensions mistakenly. GSI denys product to use the extensions
by enabling the following property:
ro.nnapi.extensions.deny_on_product=true
Bug: 129900377
Test: make gsi_arm64-userdebug, check /system/build.prop
Change-Id: Ia679f1f9c108bd5a164c8cdeb1d73f57da755608
Currently, emulator system image is the non-legasy GSI, which is in sparse
format. Several internal clients don't support sparse format, and other
internal/external clients usually support both. The reason to choose sparse
format for GSI may not be valid any more. See bug for detail.
Bug: 130341962
Test: Checked the header of system.img to see if it's unsparse.
Boot emulator aosp_x86 successfully.
Boot mixed GSI and CF x86 successfully.
Change-Id: I839f49809429227607b2e876a4a3628df43a97b4
Like Ie413f84c545c869ee336912a7b05ca80bb968129, but for all
mainline devices.
Bug: 119800099
Test: m
Change-Id: Ief77adaea61203a013f85cf870c5350253fdb7dd
Move a couple of variables out of BoardConfigMainlineCommon
because they vary either by device or by how they build in
AOSP vs internal.
Bug: 80410283
Test: presubmit
Change-Id: Ia42df91ad8c8d8fc4618be375a17ea23896f4352
Merged-In: Ia42df91ad8c8d8fc4618be375a17ea23896f4352
Move a couple of variables out of BoardConfigMainlineCommon
because they vary either by device or by how they build in
AOSP vs internal.
Bug: 80410283
Test: presubmit
Change-Id: Ia42df91ad8c8d8fc4618be375a17ea23896f4352
The _a targets are build for Legacy GSI for non-system-as-root
partition layout devices. The Android build system is not able
to build a system image with non-system-as-root anymore.
Also, `init` supports mounting system-as-root system image at
all, all devices should no problem to mount it.
Bug: 124278972
Test: none
Change-Id: I9c56e7e5d8517a630854f030616c3b3ecb94b9a8
This flag is not allowed to be true when dynamic partitions are
enabled, which mainline devices are expected to do.
Bug: 80410283
Test: make
Change-Id: I50c9fe9332ea1490a84484f9311cfe001a083754
This setting moves the PRODUCT_PROPERTY_OVERRIDES to
the vendor partition.
Bug: 80410283
Test: tail system/build.prop | grep ro.carrier=
(empty)
Change-Id: I30d564fbd2dd3b56763ccff77979b223857f1c2f
This config was in a weird state where it sets the OUT
directory for these partitions but not the file system
type. Within the build system, both of these variables
are used interchangeably to check whether these partitions
are expected to be present.
A typical mainline device is expected to /vendor and
/product, so just add these.
Bug: 120974093
Test: make
Change-Id: I803d7afdcadc37e4384ae80f08bc1c8db535d2f4
The file $(TARGET_OUT_ETC)/update_engine/update-payload-key.pub.pem
is installed conditionally based on this variable, and was found
to differ between mainline_system and the intended device targets.
Also move the variable from gsi_common.mk as GSI inherits the mainline
boardconfig. The variable is not a PRODUCT flag (and not inherited as
such), so fits better in the BoardConfig I think.
Bug: 80410283
Test: presubmit
Change-Id: Ida6fa923fd01b062ff3b93e7737e1e6edf7e4fa1
RescueParty reboot the device to recovery mode if there is any
priv app die continuously. The behavior blocks the testing.
Disable the feature temporary before all problem apps fixed.
Bug: 120679683
Test: Boot a device with GSI and a die app
Test: Unplug USB and does not auto reboot
Change-Id: I70e5b7222299c6d0173d87e41d7a68beeda77dd5
Adds icu-data_host_runtime_apex to fix unbundled builds which pull it in
via PRODUCT_PACKAGES, but are missing packages that would pull it in via
PRODUCT_HOST_PACKAGES.
Test: build/soong/build_test.bash
Test: in ub-timezonedata-master; tapas TimeZoneData; m
Change-Id: I1583c7582b386c3e8478711cb1df340518d763c1
Merged-In: I1583c7582b386c3e8478711cb1df340518d763c1
Adds icu-data_host_runtime_apex to fix unbundled builds which pull it in
via PRODUCT_PACKAGES, but are missing packages that would pull it in via
PRODUCT_HOST_PACKAGES.
Test: build/soong/build_test.bash
Test: in ub-timezonedata-master; tapas TimeZoneData; m
Change-Id: I1583c7582b386c3e8478711cb1df340518d763c1
This reverts commit 7218a21ed0.
Reason for revert: broke some side branches, and the mac build
Change-Id: Ifa52f2dbf9a383f69e07ba0aceb4742b05376364
Fixes: 125912305
This only defines PRODUCT_HOST_PACKAGES as a concept, and requires that
it contain at least all of the files that would be installed to the host
from PRODUCT_PACKAGES (minus libraries, as those are expected to be
installed based on what's required by other modules).
It does not actually change what will be built, that will happen in a
future change.
Test: build/soong/build_test.bash
Change-Id: Ie502b1a483f821b957cfd407c31a93e243896dae
In BoardConfig.mk, ODM manifests can be specify as follows:
# installed to /odm/etc/vintf/manifest.xml
ODM_MANIFEST_FILES := device/foo/bar/odm_manifest.xml
# installed to /odm/etc/vintf/manifest_baz.xml
ODM_MANIFEST_SKUS := baz
ODM_MANIFEST_BAZ_FILES := device/foo/bar/odm_manifest_baz.xml
This is preferred over PRODUCT_COPY_FILES because it uses
assemble_vintf to check manifest at build time.
Test: builds
Change-Id: I18517b8ba09d3271627d6f21b8250b1bfc9e5db3
The major purpose of vbmeta.img built on GSI targets (e.g., aosp_arm,
aosp_arm64, etc) is to disable AVB. We should also set the rollback
index to zero, to prevent the device bootloader from updating the
last seen rollback index in the tamper-evident storage.
Bug: 122583908
Test: build aosp_arm64, then `avbtool info_image --image $OUT/vbmeta.img`
Change-Id: I48a49957f8dd3169003b9507fe80e519f301d5b5
GSI doesn't include gsi_system.prop on user build, and cause some
devices cannot boot GSI with user build. Some properies in
gsi_system.prop do not suitable for user build, the patch create
a new gsi_system_user.prop for GSI user build.
Bug: 124479721
Test: boot aosp_arm64-user on a blueline device.
Change-Id: Ide2bdc8e8733817afb832b50b28807768e22f011
Regular (non-flattened) APEX may require changes to the kernel, which is
against the Treble promise. For maximum compatibility, APEXes are
flattened for GSI so that APEXes can be activated by legacy kernels.
Bug: 124159875
Test: N/A
Change-Id: Iea5701d3b917ebf8657d3ce38131c1838b51677e
* avbtool expect extra flags to be passed with the --flags argument
but currently we're missing an 's'.
Luckily this isn't an issue as python argparse matches
--flag as an alias to --flags ( python... )
Test: m vbmetaimage; check vbmeta header
Change-Id: I42d833c61c9b313dc067b1e519bae36395d09824
This matches the build config used on current mainline devices,
but should ideally be removed once possible.
Bug: 123695868
Test: boot blueline
Change-Id: I8fdef9fbe45b75f175afe9350974f54d1ec5e0c8
The patch changes GSI (aosp_$arch) to inherit from gsi_common.mk
instead of aosp_base_telephony.mk.
The patch also clones the emulator_vendor.mk from emulator.mk to
include all vendor modules.
Bug: 119747870
Test: boot aosp_arm64-userdebug on a blueline device on master/P
Test: boot aosp_x86-userdebug on the emulator
Test: boot aosp_x86_64-userdebug on the emulator
Test: compare the out folder with/without the patch, only more content
Change-Id: Ibd398d4f93d2a964813e05ccd434975435d25adc
gsi_common.mk is a new makefile file for GSI build targets.
It inherited the content from Mainline by mainline_system.mk.
Also it include other default GSI settings and try to covered
all contents from aosp_base_telephony.mk
It will be used to replace the treble_common*.mk. All
aosp_$arch*.mk will become to inherit from gsi_common.mk.
This patch also contains a new build target gsi_arm64,
which is used to test the gsi_common.mk purely.
Bug: 119747870
Test: compare the out system folder between gsi_arm64 and aosp_arm64
Test: also the gsi_arm64-userdebuge can boot on a Pixel device
Change-Id: I9a013f9407e0fe06b45011e36d5169b94f67148d
Stop using armv7-a without neon for 32-bit unbundled apps, and update
generic_x86_arm to match the cuttlefish configuration that includes
neon.
Test: treehugger
Change-Id: Ieb6a2106655803a8ca609907c12168e628ee1b85
This product variable is used to generate the loader config (to use
either /system/product or /product), and the vendor one is likely
used in similar ways. Having these partitions is required for mainline
devices, so set it in the shared BoardConfig.
Bug: 80410283
Test: make
Change-Id: I6f2d94ff43572a28df54ea8c60f2d838a3b9216c
It's 2019 and the CDD has required NEON for many years now.
I've left unbundled apps alone for now.
I think the recent fix here for https://issuetracker.google.com/116070933
was incorrect. (I've commented on the bug.)
Test: treehugger
Change-Id: Ia02305cfdff9fd18a85359bc44d8eb9cab1413bd
Legacy GSI had been changed to include BoardConfigGsiCommon.mk
instead of treble_common*.mk. However, some default settings are
different than the original. This patch fixes
BOARD_BUILD_SYSTEM_ROOT_IMAGE in Legacy GSI makefiles.
The patch also removes redundant settings and fix some comments.
Bug: 122282239
Test: make
Change-Id: Ie4eb8cf410bfd2edc74648c0e5ee81028242a1b7
It's 2019 and the CDD has required NEON for many years now.
I've left unbundled apps alone for now.
Test: treehugger
Change-Id: Iee22d4605a81e2840063a203b76db7df5b4f3c37
This flag turns on 64-bit mediadrmserver for mainline. Keep the default
value for GSI for now.
Bug: 80410283
Test: make
Change-Id: Ie09b258f140b56121e4b531775b2a052b4dc6c15
The patch modifies the Legacy GSI to use BoardConfigGsiCommon.mk
instead of board config treble-common*.mk, and delete these
treble-common*.mk files.
After the patch, the GSI common board configs are in single file
BoardConfigGsiCommon.mk
The patch also includes:
- Moving `TARGET_COPY_OUT_VENDOR := vendor` to
BoardConfigGsiCommon.mk, because GSI always contains no vendor
contents.
- Configure the binder interface bitness explicitly.
- Unify the structure of each BoardConfig.mk.
Bug: 122282239
Test: compare the out folder between with and without the patch
Test: output files are all the same
Change-Id: Ie5901446920dda317dea848e6d5a7bbcf10a32cf
The binder interface bitness is always 64bits from P.
To keep 32bits binder interface for Legacy GSI, we need to explict
configure it.
Bug: 122282239
Test: lunch aosp_arm_ab-userdebug; make -j
Change-Id: I90b45adb52c398d1c0cf3f877199f9dd1e0b3f86
Partial rollback of Id5d114bde8b93800fe52c791ccc47cdffd86f382.
It is likely mainline also wants some of the BOARD_AVB_SYSTEM.. flags,
but I'm not entirely sure which ones.
Test: run build_mixed with this patch
Change-Id: I6ef3c01f6c74e6d93cf798b26b8c7a4785bbefb4
Make the mainline board config only import a subset of the GSI
options. The current set of attributes is the minimal set to
keep mainline_system_arm64 building, as well as not producing
any diffs in the current set of files in /system. It's possible
we'll need to move a few more over, but we'll do that on a
case-by-case basis.
Make the GSI config inherit the mainline one. The only diff for GSI
should be the addition of BOARD_USES_SYSTEM_OTHER_ODEX.
Bug: 119911662
Test: build mainline_system_arm64
Change-Id: Id5d114bde8b93800fe52c791ccc47cdffd86f382
Likely not the final setting we'll settle with for this device,
but brings mainline_system builds closer to the device builds
it's targeting.
Bug: 80410283
Test: build mainline_arm64
Change-Id: Ib672d1a060d0ad6a4e1faa210461bbbbaf6f2bc6
The existing 'generic' targets are emulator devices, and targeting
it has the side-effect of including emulator-specific artifacts.
Create a mainline device instead, which is really generic. This also
allows specifying tweaks unsuitable for the emulator.
Include BoardConfigGsiCommon for now, even though it includes a few
things we likely won't want in the future.
Bug: 80410283
Bug: 111538404
Test: lunch mainline_arm64; m
Change-Id: I15e7cb41fcbd3c0592a091ba7a8575ddf10bda71
To make the generic_x86_arm bootable.
Third party translabor binary can be added on the resulting
system.img and be tested at least on emulator.
BUG: 117673798
Change-Id: Iffbcf9217bbedc12ba83a4851e84ecbf299bf8e7
Merged-In: Iffbcf9217bbedc12ba83a4851e84ecbf299bf8e7