Age | Commit message (Collapse) | Author |
|
Adevice does a `ninja -t inputs -i droid` and filters the results
for out/target/product/ to find files in the staging directories.
We were just copying the staging directories without creating ninja
rules before, so that failed. Actually create the ninja rules.
The rules are created in the android_device module instead of the
filesystem so that if you have multiple filesystems, they don't create
conflicting installation rules.
We should provide a way for tools like adevice to query the build system
for installed files, no matter where they are in the out/ dir, and
use that to replace this logic.
This cl produces the following diff in out/target/product compared
to soong-only builds before this change:
https://paste.googleplex.com/4624734193713152
It's mostly empty directories, which I don't think matter for adevice.
Bug: 393464638
Bug: 392957226
Test: `m installclean && m && launch_cvd && adevice update` says the device is up-to-date.
Change-Id: Ifb52aaf5bc3edd2e3900546bf9df73a52d1022c0
|
|
The current implementation chains the non-hermetic and hermetic file
creation in a single cmd. This causes `m droid` in --soong-only to do
some redundant work. Since the hermetic file is used in
target_files.zip, and this file is currently not fully migrated to soong
builds, comment this out for now.
Test: Set PRODUCT_SOONG_ONLY locally
Test: m droid
Bug: 393203512
Change-Id: Iff3a6a553922533c58b3d0206898bd627281c3fb
|
|
This change modifies the logic in selecting the chain and include
partitions for the top level vbmeta partition generation to follow that
in make.
Implementation details:
- Introduce separate functions for selecting the include and chain
partitions
- Set vbmetaPartitionProvider in boot images and filesystem modules
given that boot images can be selected as chained partitions.
Test: compare soong and make generated vbmeta partitions command
Bug: 390204058
Change-Id: I7940629212c4624e88d25b162755205503cfa469
|
|
|
|
main
|
|
Make also sorts the lines, sort them in soong so it's easier to
compare.
Bug: 376727180
Test: m --soong-only
Change-Id: I9a5e61a9348a7d2ff5058260768e89065a06e7c8
|
|
The same block_list file is currently declared in the propfile of
primary .img file as well the secondary .img file (for
target_files.zip). Both the .img files are created in the same ninja
command, but in the current implementation the block_list file is
generated twice with the same contents.
This CL moves the block_list file to the image prop file of the
secondary .img creation.
Test: presubmits
Change-Id: I0f8f4e4c7bec1ae5e370ac97d6608f9754e719e3
|
|
This makes system_other almost identical to the make-built one,
but there's still a diff in just one file:
system_other/system/priv-app/CredentialManager/oat/x86_64/CredentialManager.art
Bug: 390269431
Test: m --soong-only
Change-Id: I440097cead56a20d0268f4e766ac1be8fe11b34b
|
|
This just builds an empty system_other image for now, the dexpreopt
files will be added in a followup change.
Bug: 390269431
Test: m --soong-only
Change-Id: Ic4a9bcb8b7ba1eb4444b3339d6c0b0cdfd485714
|
|
Bug: 390269431
Test: m nothing
Change-Id: I18b9b90ac7c29f78e47415a89805a71e65b41650
|
|
We're not using this anytime soon, so just remove it for now.
Bug: 390269431
Test: m nothing
Change-Id: I51bbf104dceabafc08d562cfecb31a845cb88d12
|
|
Move the logic to android_device. The reasons for this are:
- As we start to check in android_device and filesystem modules,
only one set should do the copying. It's easy enough to mark the
android_device as the one, but harder for the filesystem modules
given that they may be reused between different devices and now
that top-down mutators are no longer supported.
- It's easier to manage this code in one place, especially since it's
temporary and should be removed eventually.
Having this higher confidence that there's only 1 copy rule set in
the build makes it less of a problem to use actual ninja rules for
the images.
Bug: 376727180
Test: m --soong-only && ls out/target/product/vsoc_x86_64/
Change-Id: If20ea2c55053cc962de9f9770db002edbc194835
|
|
Make packaging generates build rules for two $partition.img files
1. Containing inodes with build timestamps
2. Containing inodes with pinned timestamps
The former is useful for adb sync. The latter is used for
target_files.zip.
This CL creates a build rule to generate (2) with soong `filesystem` modules.
The propFile for (2) will be created by concat'ing the propFile for (1)
with `use_fixed_timestamp=true`
Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_device/android_x86_64_silvermont/target_files.zip out/target/product/vsoc_x86_64/obj/PACKAGING/target_files_intermediates/aosp_cf_x86_64_phone-target_files.zip
Test: diff -r out/target/product/vsoc_x86_64/obj/PACKAGING/target_files_intermediates/aosp_cf_x86_64_phone-target_files/ out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_device/android_x86_64_silvermont/target_files_dir/ --no-dereference
- super_empty.img and system_other.img are missing
- vbmeta*, boot* and userdata have binary diffs
- the rest are identical
Change-Id: If078220f215693660796090eb9b690b0ad41fd38
|
|
This is a text file with block size information of the contents of the
.img files. build_image supports creating this as an implicit output.
This CL creates the build rule to generate this output. This
will be copied to IMAGES/ subdir of target_files.zip
There is a subtle difference between the make and soong implementation.
In make, we generate two $partiton.img files. One is hermetic (for
targret_files.zip), and other is non-hermetic (for adb sync). The block
file is generated from the hermetic one.
OTOH, in the soong implementation, we are generating the block file from
the non-hermetic one. This should not matter, since pinning the
timestamp should not have an effect on block sizes. This implementation
detail can be changed in a follow up CL if necessary.
Test: diff'd target_files.zip locally, all $partition.map files are
identical
Bug: 388635097
Change-Id: I984d4fb55071296a82dae38ef09be6804ff0f3ae
|
|
Currently, filesystem module automatically adds `disable_sparse` entry
when generating the prop file. However, this property should not be
added when partition_size is specified, given that partition_size
property is introduced in filesystem module with
https://r.android.com/3451348.
Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_userdata_image/android_common/userdata.img
Bug: 388920173
Change-Id: Ia86210be77284c71f3831464149789b934c55001
|
|
Implementation details:
- Introduce support_casefolding, support_project_quota and
enable_compression properties in filesystem modules.
- Specify the userdata partition-specific props in filesystem_creator.
Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_userdata_image/android_common/userdata.img
Bug: 388920173
Change-Id: Id37c677e9bf28c1a338459e28ac6b05e5f58b407
|
|
The soong vs make generated userdata images are still not bit identical,
but this change resolves execution time failure from build_image when
building userdata.img.
Implementation details:
- Introduce partition_size property to filesystem module
- Specify the correct mount point for userdata partition
Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_userdata_image/android_common/userdata.img
Bug: 388920173
Change-Id: I2c0945ce70d74c632ba241c8a93c60763cfe87e7
|
|
* changes:
Add a partial IMAGES/ subdir for target_files.zip
Add a Stem property to filesystem
|
|
* changes:
Convert hasCode and aaptLibs to use ModuleProxy.
Convert validatePartitionType and checkJniLibsSdkVersion to use ModuleProxy.
Convert getLibsForLinkerConfig to use ModuleProxy.
|
|
If set, it will be used as the filename of the final .img artifact
instead of the $module_name +.img. The use case for this is to make the
filenames of the img files consistent in target_files.zip irrespective
of $TARGET_PRODUCT.
Test: built the filesystems locally
Bug: 388635097
Change-Id: I13310d609bb6170b52f92c284b933cee2a646254
|
|
rsync will be used to copy the root files of the system_image dep
Test: verified that ROOT/ in target_files.zip is same when built with
make and soong
Bug: 385383524
Change-Id: I84279109308d36ec147a63000bb1912c2ffb1273
|
|
* changes:
Update $PRODUCT_OUT for auto generated partitions
Copy partition image files to PRODUCT_OUT
|
|
ModuleProxy.
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: I74e6ebef7d7fb87e338cb99bd4a867a8bd7e64c9
|
|
This change allows the auto generated filesystem modules to copy the
installed files to $PRODUCT_OUT, on top of the currently allowed soong
defined system image.
Also, this change replaces the cp command with rsync, to prevent identical
files from being copied in incremental builds.
Test: rm -rf out/ && m aosp_cf_x86_64_phone_generated_device --soong-only
Bug: 376727180
Change-Id: I68c6319aad99358648aefa35a6acea8644100875
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: Ib8020db0d1cf9e035ace52e2a893bb3df7975127
|
|
Bug: 377723687
Test: Unit tests and compare the ninja and mk files generated.
Change-Id: Ie327e03418e8762771fdbf290a35293aa5fb8e17
|
|
Implementation details:
- Copy the partition image files to PRODUCT_OUT via rsync
Test: m aosp_cf_x86_64_phone_generated_device
Bug: 376727180
Change-Id: I21c9ddc22def5a48a885176b53b886326d7c9243
|
|
This creates hermetic img files, and will be used to assert equivalence
between make and soong built img files.
An alternative would be to use the timestamp from build_date.txt, but
that causes a full push on the first adb sync (b/385995921)
Test: spot checked that system_ext.img built by make and soong are bit
identical (with notice files commeted out)
Change-Id: I89e318f630f488074369fb88556215989271260e
|
|
|
|
Revert submission 3411237-build_datetime_build_image
Reason for revert: b/385995921. Causes a full push on the first adb sync
Reverted changes: /q/submissionid:3411237-build_datetime_build_image
Change-Id: I3171345025ddd2fd7c8dd16329b3ddb4abdc3940
|
|
This change resubmits https://r.android.com/3425159.
Unlike the original submission, this change does not hash the directory
contents but implicitly depends on the output partition file of the
filesystem module to implement inter-filesystem dependencies.
Test: unpack and diff soong and make generated vendor_ramdisk partitions
Bug: 381104942
Change-Id: I35528cb0dedbeeb7fef3d72df6e008ec0ac9c7bb
|
|
Only contains the vendor image files for now, will expand in followup
cls.
Bug: 385383524
Test: m out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_device/android_common/target_files.zip
Change-Id: I517e7022b5c6294a2f8e5246f52897b406b63cd7
|
|
Revert submission 3425159
Reason for revert: <Reason for revert: Dorid monitor: Likely culprit for b/385262936 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.>
Reverted changes: /q/submissionid:3425159
Change-Id: I83d6af532bd76c4e10fcedc3d49b4c43efa0ecfe
|
|
Implementation details
- Set the rootdir and the root directory hash file in the
FilesystemProvider.
- Create a text file containing the hash of the root directory.
- Introduce include_files_of property in filesystem, which its rootdirs
are passed as inputs in mkbootfs invocation for building cpio
filesystems.
- Set the soong generated recovery partition as the include_files_of
property of the soong generated vendor_ramdisk partition.
Test: Extract vendor ramdisk partition and inspect
Bug: 381104942
Change-Id: I8c00d6258b4e8fe094ee72a479b06ebcf5dffaf3
|
|
To match the behavior in the make generated recovery filesystem
Test: mount soong generated recovery filesystem and inspect
Bug: 381888358
Change-Id: Iaf936f9d0d1c2c00c4ab7366ff9689dd59ff46e5
|
|
So that microdroid doesn't get different contents every build.
Fixes: 383555703
Test: diff 2 builds of m microdroid
Change-Id: If974fdae39008d7cdc0e408114809d1a14efe629
|
|
|
|
We should probably do this change for more parts of the filesystem
RuleBuilder. Moving the linker config action out of the filesystem
rulebuilder allows it to run in parallel with opther actions, and not
rerun every time the filesystem is rebuilt.
Bug: 384091387
Test: Presubmits
Change-Id: Ic7305c555260fb5d9900c6c709b6c81dc0708d2b
|
|
This is the behavior in make since aosp/3261300. It's a problem for
treble though, so maybe should be revised in the future.
If the system -> system_ext dependency becomes a problem (like if we
need to add a system_ext -> system dependency later), I think we could
break it up by creating a ".aconfig" sub-module of filesystem modules,
and then the dependency is only added from system -> system_ext.aconfig.
But we don't need that right now.
Fixes: 382518797
Test: diff out/target/product/vsoc_x86_64/system/etc/aconfig_flags.pb out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_system_image/android_common/system/system/etc/aconfig_flags.pb
Change-Id: Ia0d043e35f03bbf2bc8a29df0b2b8ecd8427e727
|
|
The build_datetime_file can be used to create hermetic image files, and
will be used to validate mk->soong partition migration.
Bug: 383357338
Test: lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Setup
- export BUILD_DATETIME=10
- commented out installed_*_notice_xml_gz in build/make/core/Makefile
Test: verified that the following .img files are bit identical
odm,system_dlkm,vendor_dlkm,odm_dlkm
Change-Id: I254cd3f1afbd26439dd70505c7135d834ec234bc
|
|
Make-built partitions use partition specific security_patches for
build_image, but Soong-built partitions currently use the platform
security patch for all partitions (including vendor,odm,...). This CL
introduces a `Security_patch` property to set this value explicity. The
name and description have been copied from `bootimg`.
This CL also updates `fsgen` to set this property on the autogenerated
partitions. The logic has been copied from `build/make/core/Makefile`.
It is currently missing `boot` and `init_boot` (I have not tested
bit-identical for those partitions yet).
Bug: 383357338
Test: lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Setup
- export COPY_IMAGES_FOR_TARGET_FILES_ZIP=true
- export BUILD_DATETIME=10
- commented out installed_*_notice_xml_gz in build/make/core/Makefile
Test: verified that the following .img files are bit identical in top of
CL stack
odm,system_dlkm,vendor_dlkm,odm_dlkm
Change-Id: I9ae9bf957ffd479c57f12a49864589d285d93a71
|
|
avb_salt was added to filesystem and boot_img to create reproducible
builds https://r.android.com/2069528. This is no longer necessary, since
build_image.py and verity_utils.py has been updated since then to
prevent non-hermiticity from unspecified avb_salt.
https://r.android.com/2613794. It uses the build_fingerprint as the salt
instead of the filesystem entries.
In preparation for creating bit-identical make and soong partition
images, make the avb_salt consistent between make and soong partition
iamges.
Bug: 376539388
Test: lunch aosp_panther-trunk_staging-userdebug
Test: m
out/soong/.intermediates/packages/modules/Virtualization/guest/pvmfw/pvmfw_img/android_arm64_armv8-2a_cortex-a55/pvmfw.img
(a bootimage module) followed by rm repeatedly
Test: sha remains consistent
Change-Id: Ie1afa4599ef1de4c8f1cd708a52cb60b37c19373
|
|
|
|
Make included all event-log-tags in the source tree, wether or not
they were installed on the device. Soong was only including files from
the deps of the system image.
In the long run, we'll want a per-partition event-log-tags file
for incremental soong and an independant treble system image. But
this works for now.
Bug: 382515940
Test: diff out/target/product/vsoc_x86_64/system/etc/event-log-tags out/soong/.intermediates/build/soong/fsgen/aosp_cf_x86_64_phone_generated_system_image/android_common/root/system/etc/event-log-tags
Change-Id: Id631c4292dda9531df3e460ef736fd9b15f6b566
|
|
This reverts commit 135904463f96f81bd7ef7696569b02ebb61c8195.
The revert will be applied alongside a change in build/make that ensures
that the correct intermediates dir for aosp_shared_system_image is
packged into target_files.zip
Test: Previously failing OTA test now passes https://android-build.corp.google.com/builds/abtd/run/L04100030008317770
Change-Id: Ibdf3ae42348ec5840dcada8ce3182f87d4619cac
|
|
* changes:
Install font module in recovery partition
Define additional symlinks and dirs for recovery partition
|
|
artifacts"" into main
|
|
This reverts commit 95db4499428f421571819699d92581e7422e7659.
Reason for revert: DroidMonitor: Potential culprit for http://b/383376688 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.
Change-Id: I0d15b234381278f54e0504473d82ec4f14f81fac
|
|
.logtags files are a mapping of an integer -> name. However, there
is an unused feature where you could put a '?' instead of an integer,
and then the build system would assign a number to it, taking care
to avoid all other already-assigned numbers across the source tree.
This feature makes it hard to support some things we're working towards,
like incremental soong and treble common system images, so remove it.
Also modernize the python scripts a little.
The additions since the revert are the cleanups from aosp/3403019, and
removing a missed reference to all-event-log-tags.txt in java.mk.
This reverts commit 078347368de279b41a37b3599e24e60014892fef.
Bug: 382515940
Test: m event-log-tags
Change-Id: I8f08f3286f1275083e2074948f2feb39219f3687
|
|
|