summaryrefslogtreecommitdiff
path: root/filesystem/filesystem.go
AgeCommit message (Collapse)Author
2024-10-17Revert^4 "Set the appropriate deps property for the soong generated fs modules" Jihoon Kang
This change relands https://r.android.com/3304859. Test: m nothing --no-skip-soong-tests && ABTD Bug: 372771060 Change-Id: Ie798fee2a71c14d5e8ac5e2433394bbb090cd595
2024-10-14Reland "Create an empty system_ext partition for aosp_cf_*" Spandan Das
This relands https://r.android.com/3304080, with the following fixes - Skip system_ext if the product (e.g. aosp_x86_64) does not support system_ext - Remove analysis error from GetFsTypeFromString if the fs type is unsupported. Since we are autogenerating partitions now, internal module creation should be skipped instead of erroring out. `fsType` will raise an error for handcrafted filesystem modules that explicitly set fs type to an unsupported type. Test: presubmits Test: lunch aosp_x86_64-trunk_staging-userdebug && m nothing Change-Id: I83e0c266aa3dc2ab830c0636e1a89d00f6906968
2024-10-12Revert "Set the appropriate deps property for the soong generated fs modules" Jihoon Kang
This reverts commit dc6492f01bbfb4a0f3e10efe6fa8e7cb5a876982. Reason for revert: Breaking targets in post submit Change-Id: I50e80f1f6634db6cec42aba7f2262275b6ec8b88
2024-10-11Set the appropriate deps property for the soong generated fs modules Jihoon Kang
This change: - Adds a pre-deps bottom-up mutator that sets the appropriate deps properties for the soong generate filesystem partition modules - Makes `installInSysem` more genenric, so that it can be used for other partitions - Introduces `AppendDepsEntries` method in `android.PackagingBase` to utilize it in the aforementioned mutator - Modifies `fsDeps` from a 1D slice to a map (of partition to deps slice) Test: m nothing --no-skip-soong-tests Bug: 372771060 Change-Id: Ic251993d1d4c1caca544c5cebcaf29afd749da9e
2024-10-11Minor cleanup of erofs property checking Cole Faust
Test: Presubmits Change-Id: I4146224674c3546b7c48cb727f0662d3d347f02e
2024-10-10Add erofs support to Soong filesystem modules Spandan Das
Test: go test ./filesystem Bug: 372522486 Change-Id: I57c5a15a225e9e02ebec188d45b640f4185a33c0
2024-10-09Add a tracking bug for non ext4 FS type support Spandan Das
Change-Id: Icf00143aa979fbaee5ec68088c5431f63d852158
2024-10-04Create soong-generated filesystem diff test Cole Faust
Running `m soong_generated_filesystem_tests` will diff the soong-generated system image with the make-generated one. Currently, this test fails, but we can start working on narrowing it down now. Bug: 371351099 Test: m soong_generated_filesystem_tests Change-Id: I6e341607415b3676e758417a587f69c247652c3a
2024-10-04Revert "Create soong-generated filesystem diff test" PODISHETTY KUMAR (xWF)
This reverts commit 2cf1bf5624c8048b960b9e0ec27a7677739049ae. Reason for revert: <Droidmonitor created revert due to b/371496012. Will be verifying through ABTD before submission.> Change-Id: Ie9d0e279a3fa6de71427c0f7f9c95990e59c8a6d
2024-10-03Create soong-generated filesystem diff test Cole Faust
Running `m soong_generated_filesystem_tests` will diff the soong-generated system image with the make-generated one. Currently, this test fails, but we can start working on narrowing it down now. Bug: 371351099 Test: m soong_generated_filesystem_tests Change-Id: I364677f09286652e4577bf9e0d16481998dfd258
2024-10-02Introduce soong_filesystem_creator module type Jihoon Kang
The module generates soong-built filesystem modules. This module creates the system partition submodule, and will create other partition filesystem submodules in the future. Note that not all properties of the system submodule is currently set; some properties like `deps` are not currently set. Test: m nothing --no-skip-soong-tests Bug: 369682648 Change-Id: I671a9b6a61e5453117f604394191243c5ae047d9
2024-09-17Properly initialize android_system_image modules Cole Faust
android_system_image just passed its embedded filesystem module to InitAndroidModule (transitively via initFilesystemModule). This meant that ModuleBase.module was pointing to the filesystem module, not the system image module. This was a problem for the new "changeable configuration" feature I'm working on, but you can also more readily see the issue if you add a GenerateAndroidBuildActions function to android_system_image: it won't be called. Bug: 361816274 Test: Presubmits Change-Id: I41978037b81910309a000dc1bba327e513ba5dce
2024-09-11Soong system image may update the $PRODUCT_OUT Justin Yun
A target must define "USE_SOONG_DEFINED_SYSTEM_IMAGE := true" and "PRODUCT_SOONG_DEFINED_SYSTEM_IMAGE := <name of soong system image>" to use the soong defined system image. The system image must install the files to $PRODUCT_OUT for adb sync and build verification. Instead of using 'update_product_out' property in Android.bp, copy the files only if the name of the image matches with PRODUCT_SOONG_DEFINED_SYSTEM_IMAGE. Bug: 350599535 Bug: 365700376 Test: lunch aosp_x86_64-trunk_staging-userdebug && m && m aosp_cf_system_x86_64 Test: lunch aosp_cf_x86_64_phone_soong_system-trunk_staging-userdebug && m and adb sync on the cf device Change-Id: If8673ba2855a753a5559a588bd83068d950fd7e4
2024-09-05Update $PRODUCT_OUT from the soong system image files Justin Yun
When building a system image from 'android_system_image' module, update the $PRODUCT_OUT files with the files installed to the system image. Soong updates the $PRODUCT_OUT files only if the android_system_image module has "update_product_out: true" property. Bug: 350599535 Test: lunch aosp_cf_x86_64_phone_soong_system-trunk_staging-userdebug && m Test: adb sync Change-Id: Ia3418c5380cac42d5c766e8304c8ed2bab3d835a
2024-07-15Add support installing to root of filesystem image Inseob Kim
If the partition of a spec is "root", that spec will be installed to root instead. Normally that spec will be from prebuilt_root module with install_in_root property. Bug: 351258461 Test: USE_SOONG_DEFINED_SYSTEM_IMAGE=true m && cvd start Change-Id: Iaaa9c2fb8a81fe0ba4710c641e1b65c5b71ad4a4
2024-07-11Add IsAddingDependency to IncomingTransitionContext Colin Cross
Add an IsAddingDependency method to IncomingTransitionContext that returns true if IncomingTransition is called after the transition has already won while adding a new dependency. This will be used as part of the transition mutators to support an apex use case where incoming dependencies during the initial apex mutator need to be rewritten onto the platform variant for modules that don't support the apex, but a later call to OtherModuleDependencyVariantExists must not rewrite the requested apex variation onto the platform variant. This should be used sparingly, all uses will have to be removed in order to support creating variants on demand. Bug: 319288033 Test: TestIsAddingDependency Flag: EXEMPT refactor Change-Id: Ib8e419d35ff8f7cbff9667c1cd40d05ccfacab8b
2024-07-02Generate file list installed from a filesystem Kiyoung Kim
Generate file list installed from a filesystem, so it can be compared with files installed from KATI. Bug: 346873717 Test: File list generated with aosp_cf_system_x86_64 Change-Id: I8c8f555d57fee90753120f637dc3bc633f276a09 Merged-In: I8c8f555d57fee90753120f637dc3bc633f276a09
2024-06-07Use OutputFilesProvider on filesystem module types mrziwang
Test: CI Bug: 339477385 Change-Id: I0902726cfef13c716d73c1abc5c9836bdcf3e10f
2024-05-21Make dirs a configurable property Cole Faust
The microdroid system image customizes dirs using soong config variables, make it configurable so that selects can be used instead. Bug: 342006386 Test: Presubmits Change-Id: I4fbf4dc0a04ad1d1f6539476408606028390cd64
2024-05-16filesystem modules gathers first target only Jiyong Park
With this change, the deps property in filesystem modules gather the first target of the filesystem module only. To gather dependencies across both targets, use multilib.both.deps instead. Bug: N/A Test: go test ./... Change-Id: Ie2ff0c48f08c61c8b219fc2c1540476ff8e4b1fc
2024-05-13Soong filesystem may install aconfig_flags.pb Justin Yun
By setting aconfig_flags: true, soong filesystem module installs the aconfig_flags.pb file to its etc directory. We need to define aconfigFilePaths to ModuleBase to store the list of aconfig file paths that is generated from the GenerateBuildActions(). The aconfigFilePaths are collected when build the filesystem module to build the aconfig_flags.pb for the filesystem image. Bug: 335363964 Test: compare the cache list with those generated from make. Change-Id: Ia32b566bf43174e94b9e610b9503608c6b583899
2024-05-04Merge changes from topic ↵ Jiyong Park
"revert-3069323-revert-3066748-duplicate_entry_fs-CIBDJQYRHU-FVLDIVWUZV" into main * changes: Revert^2 "Filesystem modules follow the installation semantic" Revert "Revert "Prevent multiple PackagingSpecs having same inst..."
2024-05-02Add logtags support to filesystem module Inseob Kim
If build_logtags is set to true, etc/event-log-tags will be built by collecting all logtags files from all dependencies. Note that this is different from Makefile's current behavior that collects all logtags files, including ones from uninstalled modules. But the behavior is probably unintended, and ideally each partition image should have its own logtags, rather than putting all tags to /system. Bug: 336189540 Test: m aosp_cf_system_x86_64 Change-Id: I72b384cbb65e812af909eacd18799bd86f1dab13
2024-05-01Revert^2 "Filesystem modules follow the installation semantic" Jiyong Park
54351867fa0dff593eb61d111d1d7ffb7d3d02f2 Change-Id: I12010c1013fc9dad19d259ba7b0251ac8e8e0907
2024-05-01Revert "Filesystem modules follow the installation semantic" Jiyong Park
Revert submission 3066748-duplicate_entry_fs Reason for revert: b/338159248 Reverted changes: /q/submissionid:3066748-duplicate_entry_fs Change-Id: I8aacdb36efce8343c3713542eee209e71bde660b
2024-04-30Filesystem modules follow the installation semantic Jiyong Park
With this change, filesystem modules (android_filesystem, android_system_image, etc.) follow the installation semantic which means output from modules which don't produce installable files (i.e. modules that return false on IsSkipInstall()) are not included in the filesystem module. Note that this bug has been there since the beginning but didn't trigger an error due to another bug (b/335506668) which allowed multiple packaging specs to contribute to the same path. That bug prevented the non-installable variant of a module (e.g. stub) from being installed simply because because it was "luckly" clobbered by the installable variant of the same module (e.g. impl lib). Bug: 335506668 Test: go test ./... Change-Id: I2a42d178701d74bf6ccc5f33ba33918f8c608d40
2024-04-09Merge "android_filesystem_defaults and visibility rule" into main Jiyong Park
2024-04-09android_filesystem_defaults and visibility rule Jiyong Park
android_systemimage_defaults is deleted and android_filesystem_defaults is created so that we can have defaults not only for android_system_image, but also all android_filesystem modules and its derivatives. Also, change adds a check which ensures that the partition_type of the filesystem and its defaults are the same. Bug: 330665150 Test: m Change-Id: If635c794534ed89d264eaf7dfc406a8245b8e9f0
2024-04-04Add support for rollback_index to android_filesystem module Nikita Ioffe
Bug: 287593065 Test: m Change-Id: I01e986b2d8e3d992533dc7e2c07e4cdbeaca2c00
2024-04-02Merge "Add support to generate fsverity metadata" into main Inseob Kim
2024-04-02Add support to generate fsverity metadata Inseob Kim
By setting fsverity.inputs, android_filesystem can now generate .fsv_meta and BuildManifest.apk. It has been done by Makefile because Makefile is the only one knowing all installed files. But now android_filesystem is aware of all artifacts, so we can move fsverity metadata generation into Soong. Bug: 330282551 Test: m aosp_cf_system_x86_64 and see output Change-Id: Iae4dd83eaede960c263bfba537211df4ff4b36bd
2024-03-31Add android_system_image_defaults Jiyong Park
Bug: 330665150 Test: go test ./... under filesystem Change-Id: Id32e6563491a3d129042de4a9517c545543a022d
2024-03-20Add more specific partition visibility rules Cole Faust
//visibility:any_system_partition, //visibility:any_vendor_partition, etc. Then, if a partition visibility rule is not specificed, but the module is installed on a non-system partition via the `vendor: true` or other properties, the visibility rule for that partition will be added by default. This is so that "any_partition" doesn't imply that modules could be put on the vendor partition when they weren't designed for that, and so that modules that do need to go on the vendor partition don't need to specify both vendor: true and visibility:any_vendor_partition. Eventually, the partition properties should be deprecated, and replaced with just these visibility rules. Bug: 321000103 Test: go tests Change-Id: I24dba36bbc20921941f892480bf7c050e93827c6
2024-03-14Add include_make_built_files Cole Faust
If `include_make_built_files` is set to the name of a partition, the make-built files from that partition will be incorperated into this soong module. This is to ease the transition to soong built filesystems. If any files are present in both the soong-built file list and the make-built one, the soong ones will be preferred. Bug: 329146343 Test: go test Change-Id: I456b283e1189116e699ed75357cc056f5d217688
2024-03-14Don't use zip files when creating filesystems Cole Faust
The end result is a directory that's passed to build_image, so zipping and then unzipping image contents will unnecessarily slow things down. Bug: 329146343 Test: m microdroid --no-skip-soong-tests Change-Id: I98223c60e8144d6c707832fcc03ba8fe94467e7b
2024-03-07Optimize buildPropFile() Cole Faust
Use android.WriteFileRuleVerbatim instead of a custom RuleBuilder with echo commands. Test: m nothing --no-skip-soong-tests Change-Id: I9734305cbb404fd2ae841af2525f0db235622315
2024-02-08Add GatherPackagingSpecsWithFilter Jeongik Cha
android_system_image used GatherPackagingSpecs and then filter only system modules. But some modules were omitted in this logic because there are modules which has the same relative path, so the later one is ignored even though its partition info is what we're looking for. So add filter logic in GatherPackagingSpecs to avoid this problem Bug: 323793487 Test: build android_system_image, and then check if it contains every module we want Change-Id: Iec8ae920736d3d1920eecad71ba0f8f2fe848e6c
2024-01-24Convert coverageMutator to a TransitionMutator Colin Cross
Convert coverageMutator to a TransitionMutator as a step towards variants-on-demand. Bug: 319288033 Test: coverage_test.go Test: treehugger coverage builds Change-Id: Ic50c0040dea8b42c36b5d784221daa00b7b0d379
2023-11-22Add defaults modules for avb modules Inseob Kim
Bug: 302465542 Test: build Change-Id: I5bb5a0241d40cf142ed8bbefb76bc8a3709c3e34
2023-11-09Add security_patch avb property for android_filesystem Seungjae Yoo
If android_filesystem module is used with use_avb, defined security_patch for the rollback protection. Bug: 285855436 Test: m Test: avbtool info_image --image <IMAGE> Change-Id: I32c6108bb1aca398ced5e46b615d937685e261a7
2023-11-01Add mount_point property to android_filesystem Inseob Kim
The motivation is to support vendor images for microdroid, like the real vendor images having "/vendor" as their mount point. This will help add vendor_file_contexts easily. Bug: 306313100 Test: manually build an image with file_contexts Change-Id: I2e4bbf108eaa1da4f310ebb4099c4d1b42096436
2023-03-16Make filesystem aware of coverage Jooyung Han
filesystem should have coverage variants with coverage-enabled build. Otherwise, it would fail to collect dependencies. Bug: 273238141 Test: m nothing (soong tests) Test: compare the artifacts $ SKIP_ABI_CHECKS=true SOONG_COLLECT_JAVA_DEPS=true EMMA_INSTRUMENT=true\ EMMA_INSTRUMENT_FRAMEWORK=true CLANG_COVERAGE=true\ NATIVE_COVERAGE_PATHS='*' m microdroid $ m microdroid Change-Id: I792458ace00a63b4b5213898fd3209351a6e00be
2023-01-10[avb_footer] Add avb_gen_vbmeta_image to generate vbmeta image Alice Wang
This is the reland of the change aosp/2375848. The build of initrd on linux-x86 that has incorrect format (b/264940248) is disabled in this cl. Bug: 260821553 Test: m microdroid_kernel_signed and inspect the output using `avbtool info_image --image <output>` Change-Id: I3ad2419b7132cde4b2fc34ddfa09ec5ba2166819
2023-01-10Merge "Fix the description of Avb_hash_algorithm & algorithm" Treehugger Robot
2023-01-10Revert "[avb_footer] Add avb_gen_vbmeta_image to generate vbmeta..." Jerry Huang
Revert submission 2375848-initrd_avb_footer Reason for revert: build break Reverted changes: /q/submissionid:2375848-initrd_avb_footer Bug: 264940248 Change-Id: Iab44c187183a5d8eeefc952910e6262fc63627de
2023-01-09[avb_footer] Add avb_gen_vbmeta_image to generate vbmeta image Alice Wang
Bug: 260821553 Test: m microdroid_kernel_signed and inspect the output using `avbtool info_image --image <output>` Change-Id: Iacdf34aca15f5480766b6d4f971704f85f6bf44b
2022-12-23Run host_init_verifier when building filesystem Nikita Ioffe
As part of building Android images we run host_init_verifier to ensure that .rc files are well-formed. Unfortunately that doesn't cover the Microdroid image. This change addresses the divergence. Ideally we should have a concept of pluggable linters that we can run on the generated image. However, introducing such concept will take some time, so while we are working on it directly integrate host_init_verifier into the build system. Bug: 263486078 Test: m microdroid Test: add incorrect .rc file and run m microdroid, verify it fails Change-Id: Id8c9311915e89a10ce3ff7b1f209ebc8cb42211f
2022-12-22Fix the description of Avb_hash_algorithm & algorithm Shikha Panwar
Avb_hash_algorithm corresponds to --hash_algorithm of avbtool while avb_algorithm corresponds to signing algorithm. Bug: 262892300 Test: Builds Change-Id: Ief4b0f0fd89ebf64b45b29962a3811698bc922d6
2022-12-21Expose avb_hash_algorithm as a property. Shikha Panwar
When avb_hash_algorithm is set, for filesystem type build targets, add_hashtree_footer will be called with the appropriate --hash_algorithm flag. Bug: 262892300i Test: Build succeeds Change-Id: If2f9c9aa1e98314b3d3e2f8bf25c1bab193f908e
2022-11-18Add props property to add_avb_hash_footer Jiyong Park
It is used to provide name:value properties to the footer. Value can be from a text in *.bp file or a binary file referenced via the `file` prop. e.g. ``` avb_add_hash_footer { ... props: [ { name: "string_prop", value: "string_value", }, { name: "binary_prop", file: "a_binary_file_name", }, ], } ``` This CL also adds a test for the module type which has been missing. Bug: 256148237 Test: m nothing Change-Id: Idf55b308c8ce760387c01a847846b42d1aebe4ea