summaryrefslogtreecommitdiff
path: root/filesystem
AgeCommit message (Collapse)Author
2021-05-11Generate linker config with packaged items.Jooyung Han
Previously, we gather all deps without checking if a dep is actually one of packaged items (CopyDepsToZip contents) For example, following items shouldn't be listed. provideLibs: "platform-mainline-sdk_libartpalette-system@current.so" provideLibs: "platform-mainline-sdk_liblog@current.so" provideLibs: "runtime-module-sdk_libc@current.so" provideLibs: "runtime-module-sdk_libdl@current.so" provideLibs: "runtime-module-sdk_libdl_android@current.so" provideLibs: "runtime-module-sdk_libm@current.so" Now, we gather only those modules contributing CopyDepsToZip to generate linker config for android_system_image. Test: m nothing Test: m microdroid Test: conv_linker_config print -s .../microdroid/android_common/root/system/etc/linker.config.pb shouldn't list sdk members. Change-Id: Ife5d2193ab59970367d10e196aaaa922c6582862
2021-04-21android_system_image that generates linker.config.pbJiyong Park
android_system_image module type is a specialization of the android_filesystem module type. Currently, it adds a build rule for creating linker.config.pb from the information about all the other files in the filesystem and includes linker.config.pb to the filesystem as well. To do so, the filesystem module now provides a function pointer which subtype modules like android_system_image can implement to pass extra files that they want to package in the filesystem. In addition, the linkerconfig package is revised to make it possible to build linker.config.pb file outside of the package. Bug: 185391776 Test: m microdroid and inspect etc/linker.config.pb in it. Change-Id: Id89c40b519213062860d7306029b8413d8d36a2d
2021-04-16Add filesystem_test.goJooyung Han
It has only one test function as a starting point. Bug: n/a Test: m (soong tests) Change-Id: I785b096805014a40dfd600f7baaf884f4016c23c
2021-04-14Truncate vbmeta to 64KBJiyong Park
libavb expects to be able to read the maximum vbmeta size, so we must provide a partition which matches this or the read will fail. Bug: 181923506 Test: m MicrodroidHostTestCases libavb tries Change-Id: Icc5b86ccd98e3ed9c4269e584f35dbfbdf1b0730
2021-04-13bootimg.cmdline is arch specificJiyong Park
microdroid_boot.img needs different kernel cmdline for x86_64 and arm64. Bug: 185082754 Test: atest MicrodroidHostTests Change-Id: I69be83cbdada6c49a033da2787908490ee76de36
2021-04-01Support super image size automatic calculationInseob Kim
If the size is set to "auto", the size will be automatically calculated by lpmake. Bug: 181107248 Test: boot microdroid Change-Id: I9dd599ca64e4d442bfb83fe45b1f03080a74f1e1
2021-03-31Add default group support for logical_partitionInseob Kim
Default group has no size limit and becomes automatically minimized. Bug: 181107248 Test: boot microdroid Change-Id: Id38d3ab173db5fa01db3d471af15747d30b1820c
2021-03-23Merge "Fix PackagingBase.CopyDepsToZip"Treehugger Robot
2021-03-18Merge "Add vbmeta module type"Jiyong Park
2021-03-17Merge "bootimg signs image using verity_utils"Treehugger Robot
2021-03-17Fix PackagingBase.CopyDepsToZipJooyung Han
CopyDepsToZip() zips direct dependencies with tags implementing PackagingItem interface. Previously, it relied on InstallNeededDependencyTag which has a different meaning. - InstallNeededDependencyTag tells whether a dependency is required to be installed together. - PackagingItem tells whether a dependency (of PackagingBase) is required to be packaged. With the separation of InstallNeededDependencyTag and PackagingItem, PackagingBase module can distinguish cases which were not available before.(I = InstallNeededDependencyTag, P = PackagingItem) a (PackagingBase module) | |`--(I)--> b | |`--(P)--> c --(I)--> d | `--(I/P)--> e a's CopyDepsToZip(): [c, d, e] Test: m nothing (packaging_test) Change-Id: I71fce29b19b0f00dc394981bcf4240e9c1041c7a
2021-03-16Add vbmeta module typeJiyong Park
The module type is to create vbmeta image out of other partitions. Bug: 180676957 Test: m microdroid_vbmeta microdroid_vbmeta_system Inspect the built image using `avbtool info_image --image <image>` Change-Id: Iac92e9ab1640dcd488af69842e09850a91262bf1
2021-03-16bootimg signs image using verity_utilsJiyong Park
Previously, bootimg signed the image using avbtool. This didn't work because avbtool always requires that the partition size is given via '--partition_size' parameter. The partition size is hard to estimate especially when the image is not for a real physical partition, but for a logical partition in a composite image. With this change, the signing of bootimg is done by verity_utils.py which internally uses avbtool. The python script is capable of calculating the minimum required partition size when the partition size is not given. In addition, this change adds 'partition_name' property to the `android_filesystem` module type so that we can customize the partition name field in the vbmeta descriptor. Bug: 180676957 Test: m microdroid-boot-5.10 Change-Id: I2e4aa626cf06a2177b4a8d90ff9b9006d2927ae4
2021-03-15Merge "bootimg supports v4 header"Jiyong Park
2021-03-12Merge "Fix bootimg.cmdline to use ShellEscapeIncludingSpaces"Jooyung Han
2021-03-12Fix bootimg.cmdline to use ShellEscapeIncludingSpacesJooyung Han
bootimg.cmdline should be passed to mkbootimg's --cmdline flag as a single argument. Because cmdline can have spaces we should escape it with ShellEscapeIncludingSpaces rather than blindly putting double qoutes with ShellEscape, which also puts single quotes when necessary. Bug: 182092664 Test: m nothing && see build.ninja (microdroid's build commands) Test: boot microdroid on VIM3L Change-Id: I5d766bb0a816d829569c9ebfddf97c4f846f78f8
2021-03-09bootimg and logical_partition are OutputFileProducerJiyong Park
The two module types now implement OutputFileProducer so that we can add them to the data dependencies of tests. Bug: 181860941 Test: atest MicrodroidHostTestCase Change-Id: If263fefb1e5cdb5b57c17eb389c6ecc11d8356f4
2021-03-08bootimg supports v4 headerJiyong Park
It's the latest version of android boot image header which supports bootconfig. Bootconfig parameters are now passed via `bootconfig` property. Bug: 181936566 Test: m microdroid_boot Change-Id: Iff8697434f7502fe56fca5bce5573e53f2f6ac60
2021-02-24Add logical_partition module typeJiyong Park
logical_partition builds a partition image (which is usually called 'super.img') out of one or more filesystem images. Bug: 180921702 Test: m microdroid_super Change-Id: I659607647e3a5bc82c82b576a049e6c6f91cbddb
2021-02-22Merge "bootimg supports building (non-vendor) boot.img"Treehugger Robot
2021-02-22Merge "Add ctx to AndroidMkExtraEntriesFunc"Treehugger Robot
2021-02-19Add ctx to AndroidMkExtraEntriesFuncColin Cross
Add a ctx parameter to AndroidMkExtraEntriesFunc to allow them to access providers. Test: m checkbuild Change-Id: Id6becc1e425c3c3d8519248f8c0ce80777fac7cc Merged-In: Id6becc1e425c3c3d8519248f8c0ce80777fac7cc
2021-02-19bootimg supports building (non-vendor) boot.imgJiyong Park
Bug: 178562516 Test: m microdroid_boot-5.10 Change-Id: I120fc954eb00362bdd2c02e3f3ef147670c69d8f
2021-02-18Merge changes from topics "deps_base_dir_filesystem", "filesystem_rootdir"Inseob Kim
* changes: Add dirs and symlinks property to filesystem Add base_dir property to filesystem
2021-02-17Add dirs and symlinks property to filesystemInseob Kim
Dirs and symlinks will be created under the root of the filesystem. Basic essential directories like "dev", "proc", "sys" and symlinks like "bin -> /system/bin", "init -> /system/bin/init" can be created with these properties. Bug: 179652970 Test: boot with aosp_cf_x86_64_only_phone, see adb works Change-Id: Ie06dc5a93635ea8b1e18be517ed8615b6c82fee6
2021-02-17Add base_dir property to filesystemInseob Kim
Deps have been installed to "system/" because of hard-coded mount point "system". Now they are installed to base_dir, and mount point is set to root. Bug: 179652970 Test: see contents of microdroid.img Change-Id: Ie03b539a1688db7002bb178823b39017a83ce840
2021-02-17boot_image modules inside APEX have correct namesJiyong Park
This change fixed the problem that boot_image modules when installed to an APEX get incorrect names like signed.img. The filename now is "<modulename>.img" and can be overridden via the new `stem` property. Bug: 178978059 Test: m Change-Id: I1b25db04a4a2d888371b174c42f91a0cea87b877
2021-02-10Merge "Add LOCAL_LICENSE_KINDS to build/soong"Treehugger Robot
2021-02-06Add LOCAL_LICENSE_KINDS to build/soongBob Badour
Added SPDX-license-identifier-Apache-2.0 to: Android.bp android/Android.bp android/soongconfig/Android.bp androidmk/Android.bp apex/Android.bp bazel/Android.bp bp2build/Android.bp bpf/Android.bp bpfix/Android.bp cc/Android.bp cc/config/Android.bp cc/libbuildversion/Android.bp cc/libbuildversion/tests/Android.bp cc/ndk_api_coverage_parser/Android.bp cc/ndkstubgen/Android.bp cc/symbolfile/Android.bp cmd/dep_fixer/Android.bp cmd/diff_target_files/Android.bp cmd/extract_apks/Android.bp cmd/extract_jar_packages/Android.bp cmd/extract_linker/Android.bp cmd/fileslist/Android.bp cmd/host_bionic_inject/Android.bp cmd/javac_wrapper/Android.bp cmd/merge_zips/Android.bp cmd/multiproduct_kati/Android.bp cmd/path_interposer/Android.bp cmd/pom2bp/Android.bp cmd/pom2mk/Android.bp cmd/sbox/Android.bp cmd/soong_build/Android.bp cmd/soong_env/Android.bp cmd/soong_ui/Android.bp cmd/zip2zip/Android.bp cmd/zipsync/Android.bp cuj/Android.bp dexpreopt/Android.bp dexpreopt/dexpreopt_gen/Android.bp env/Android.bp etc/Android.bp filesystem/Android.bp finder/Android.bp finder/cmd/Android.bp genrule/Android.bp jar/Android.bp java/Android.bp java/config/Android.bp kernel/Android.bp linkerconfig/Android.bp linkerconfig/proto/Android.bp makedeps/Android.bp partner/Android.bp phony/Android.bp python/Android.bp python/tests/Android.bp remoteexec/Android.bp rust/Android.bp rust/config/Android.bp scripts/Android.bp sdk/Android.bp sh/Android.bp shared/Android.bp symbol_inject/Android.bp symbol_inject/cmd/Android.bp sysprop/Android.bp tradefed/Android.bp ui/build/Android.bp ui/logger/Android.bp ui/metrics/Android.bp ui/metrics/proc/Android.bp ui/status/Android.bp ui/terminal/Android.bp ui/tracer/Android.bp xml/Android.bp zip/Android.bp zip/cmd/Android.bp Added SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD to: finder/fs/Android.bp third_party/zip/Android.bp Bug: 68860345 Bug: 151177513 Bug: 151953481 Test: m all Exempt-From-Owner-Approval: janitorial work Change-Id: Ia47ca14f16b8c9f84f9d533a07e5b00e2c04e8d4
2021-02-05Merge "Support uncompressed cpio"Treehugger Robot
2021-02-05Merge changes I6a5357e9,I199f070eTreehugger Robot
* changes: Install ko to /lib/modules android_filesystem is OutputFileProducer
2021-02-05Support uncompressed cpioJiyong Park
Bug: 178978059 Test: atest VirtualizationHostTestCases Change-Id: I1f69af40f10d14ec2f3de6111d12b3a9c5d6c75c
2021-02-05android_filesystem is OutputFileProducerJiyong Park
... to be able to reference the module in data property of test modules. Bug: N/A Test: m VirtualizationHostTestCases Change-Id: I199f070e811011cea6189ef24c0b2d8a683f79d0
2021-02-04Add file_contexts property to filesystemInseob Kim
Filesystems like ext4 can store file contexts itself. This supports passing file_contexts file to build_image. Bug: 178993690 Test: boot and see selinux denials are gone Change-Id: I97d4a981e4b9c89434ea2f1303173ae91cce94e3
2021-02-02Add bootimg module typeJiyong Park
The new module type is to build the boot partition images. Boot partition image consists of kernel, ramdisk, dtb, etc. which are processed by the mkbootimg tool. There are two flavors of boot partition: boot and vendor_boot. The choice is configured via the 'vendor_boot' property. Currently, only `vendor_boot: true` case is supported. But: 178978059 Test: m cf_bootimg-5.10 Change-Id: Iee689d9d666e8e6e5af7db02a76dd39d1e4d0e3a
2021-02-02android_filesystem supports compressed cpio formatJiyong Park
The format is used to create ramdisk image. Building ramdisk image in Soong is required to have vendor_boot.img in the virt APEX. vendor_boot.img consists of ramdisk and dtb. Bug: 178980227 Test: m Change-Id: Ie4e90cef8407b6e4bdf7f03f93724cdc3cd45c20
2021-01-26Don't use "echo -e" when creating prop fileJiyong Park
We don't need to escape backslashes when generating the prop file. In addition, the "-e" option doesn't seem to be supported in some build environments. Bug: 178443594 Test: watch presubmit tests Change-Id: I167b25255a68b62a75b433f31c5e7c9d57f2579d
2021-01-20Sign android_filesystem with avbtoolJiyong Park
Use_avb and other avb_* properties allows us to sign an android_filesystem module with avbtool. Bug: 172415113 Test: m Change-Id: Ifa1ed8ded1b10170aaca9b34e6a14f0179dbab5d
2021-01-20Refactor filesystem.go to make it easy to build prop fileJiyong Park
The creation of the prop file is refactored to a function. Bug: 172415113 Test: m Change-Id: I969bf4a2476f7a4aa9571945d3645d7af52ff09a
2021-01-07android_filesystem modules can be included in APEXJiyong Park
android_filesystem modules can be included in APEX via the new `filesystems` property. The filesystem images are placed at ./etc/fs/<modulename>.img. Bug: 172413888 Test: m nothing Change-Id: I215ca7a32ff1988a0de4e1f71397684e189839ea
2020-12-01Pass pctx and ctx to NewRuleBuilderColin Cross
Enable the RuleBuilder and RuleBuilderCommand methods to access the BuilderContext by passing it to NewRuleBuilder instead of RuleBuilder.Build. Test: genrule_test.go Test: rule_builder_test.go Test: m checkbuild Change-Id: I63e6597e19167393876dc2259d6f521363b7dabc
2020-12-01android_filesystem is installableJiyong Park
Also document about the android_filesystem module type. Bug: 172414391 Test: m Change-Id: Iae07af9dd22f34c8e0e4c833333bafdf82dcab2a
2020-12-01Clients of PackagingBase can customize dependency tag to useJiyong Park
Previously, the dep tag used by PackagingBase was fixed, which prevented some of its clients (e.g. cvd-host-package) from opting in to android.InstallAlwaysNeededDependencyTag. Now, PackagingBase.AddDeps accepts the dependency tag to use. Also, dependencies toward rust dylib, rlib, and proc_macro are configured to return true on InstallDepNeeded. This is required to install shared_lib dependencies of the rust modules when they are depended on by a rust binary. Exempt-From-Owner-Approval: a trivial change after +2 from the owner. This has to land ASAP as many users are affected by acloud being unavailable. Bug: N/A Test: m Test: acloud create --local-instance --local-image Change-Id: If22aee7c6f314fcb03b9d4fe6901a2557f1e899c
2020-11-19add android_filesystemJiyong Park
android_filesystem is a module type that can be used to create filesystem images out of binaries built for Android. Its initial use will be for creating an Android-like OS image to run on virtual machines, but the use is not limited to it. The module type currently lacks a lot of features like the support for other filesystem types, and the ability to do something like signing the image using avbtool, etc. Those will be added in follow-up CLs as we have actual demands. Bug: 172414391 Test: m Change-Id: I4b779d4586e04d9a960688e73b711166708558ab