On some systems using floating-point instead of decimal results
in the build time being displayed as "nan:nan".
Test: m, "build completed successfully (02:26 (mm:ss))"
Change-Id: I7a2b401903b63117a7718cc5aa2a0d5610b57ca2
Prior to this, any filenames with commas, for example device specific
nvrams or hcds compatible with the mainline kernel, would cause a build
failure because GNU make can't handle passing an argument with a comma
because comma is the delimiter.
To work around this pass the arguments via variables local to the rule.
Change-Id: I852b36d7194394389a63683fc8c68474f8323d9b
It's missing in Soong's build_prop module.
Bug: 322090587
Bug: 361623560
Test: set TARGET_ODM_PROP and see odm/etc/build.prop
Change-Id: I670081bbe0addc8fed0b7c04ae560ef830cbfecf
When target sets TARGET_BOOTS_16K, it should boot
with 16KB page size. Adding system property based on TARGET_BOOTS_16K.
Test: m Vts16KPageSizeTest && atest -c Vts16KPageSizeTest
Flag: TEST_ONLY
Bug: 350993987
Change-Id: I72c55261ad8d67dfa6be7374e1acd6baddbb3342
Pass PRODUCT_ART_TARGET_INCLUDE_DEBUG_BUILD to Soong so it can decide if
ART debug APEX should be used instead of ART APEX
Bug: 351698657
Test: AOSP CF eng build succeeded
Change-Id: I1e0683be5cd66f1a18e7aec5b1d96ac6e5f4588a
build_prop is a soong module generating {partition}/build.prop. It's
ported from build/make/core/sysprop.mk and will replace sysprop.mk in
the future. Currently used only by Android.bp cuttlefish system image.
Bug: 322090587
Bug: 346214958
Test: compare system/build.prop and aosp_cf_x86_64_system-build.prop for
eng / user / userdebug
Change-Id: Iadb793a049b7be15b36f948c3a473105db3835a1
Soong extra config file contains Makefile variables that Soong itself
doesn't need to know. It will be read by product_config module to
provide Makefile variables to build tools e.g. build.prop.
Bug: 346214955
Test: see output of product_config module
Change-Id: I045b2722ae85a10d33b9e6b832f4cc2d6789e59a
In some build targets/combinations aconfig_flags.pb
may not be generated.
For example in GSI only system/aconfig_flags.pb exists
and system-only updates won't have vendor/aconfig_flags.pb.
Test: m, aflags
Change-Id: I136345a8748bc6d80bd98e673f90e0a2ab380ab1
To allow typing soong config variables as bools for using in soong
select expressions.
Bug: 323382414
Test: m nothing --no-skip-soong-tests
Change-Id: I39496cd2a3366689e3f232ba10353a7d56d8d1ed
So that it can be used in android.bp files. This is to replace the
existing usages of PLATFORM_SEPOLICY_COMPAT_VERSIONS.
Bug: 347605145
Bug: 342006386
Test: m nothing --no-skip-soong-tests
Change-Id: Ia2831fa2c77b2f55d4e39e48b71acf13c605bf1e
If BOARD_USES_RECOVERY_AS_BOOT is set to true, recovery.img is
not built.
If BOARD_CUSTOM_BOOTIMG is set, INSTALLED_RECOVERYIMAGE_TARGET
gets copied to BOOTABLE_IMAGES.
If both are set, the following error is produced.
acp: missing destination file
Since it is possible to have both BOARD_USES_RECOVERY_AS_BOOT and
BOARD_CUSTOM_BOOTIMG set, guard the copy operation so that it does
not try to copy a missing recovery.img.
Change-Id: Iae24e31a586e98955807d213df3dbaa0a2f13bae
* So that updater program can load dynamic partitions metadata from OTA
when it fails to load from the device
Change-Id: I73687009a2cb243aba1bfec6f357c8ff25f27784
* The current logic does not suit for multiple block devices case,
it generates split images hence output dir shall be specified
* Multiple block devices is possible with non-RDAP too, and it could
work for RDAP with single block device, so it's incorrect to depend
on RDAP flag
Change-Id: I8563b96b35351ef0a3b40ae172c2e904ee57f85e
* Overriding this from devices doesn't work
* Using ?= here doesn't work either
* It still defaults to "default" based on other places
and works the same, so let's just remove this
Change-Id: Ie9d732796a46770c11a7608e7c0990653d59fbd0
Health 2.0 targets have been removed in change
I8e1eb743d978315ae9b5b516d3e2e9dc6151d2c2
Test: m, observe "includes non-existent modules in PRODUCT_PACKAGES"
error is no longer present.
Change-Id: Idd910dfe7028cf0f39e11451a256807c24063061
Currently, an extra '/vendor' is appended in target_files_dir of
make_recovery_patch.py, which will yield an erroneous path when
attempting to build full recovery image on vendorimage-leas devices:
SYSTEM/vendor/vendor/etc/recovery.img
This patch addresses the issue by removing the extra '/vendor' of
target_files_dir, and add checks for whether the target builds
vendor image in MakeRecoveryPatch() as well. This ensures no
recovery image will be generated with prebuilt vendor.
Signed-off-by: Ricky Cheung <rcheung844@gmail.com>
Change-Id: I2dc6e43537deb606dd01fb090add2595502055c1
It seems like switching from minigzip to toybox gzip (bug: 288169261)
makes imgdiff fail in in this way:
* W imgdiff : imgdiff.cpp:1435 Failed to reconstruct target deflate chunk 3 []; treating as normal
* E imgdiff : imgdiff.cpp:1390 Failed to set bonus data
Test: Sign non-AB target files package
Change-Id: I29f1d8f1168347141d80860e8ed02e19b0031447
This allows one to build *__auto_generated_rro_(product|vendor).apk
under $(PRODUCT_OUT)/(product|vendor)/overlay/ without having to
build the full partition image or do full android build.
Change-Id: I0c215ed7968e0cba348d344e00a014470ac37b6e
If _FindAndLoadRecoveryFstab() is called with a path to target files zip
file, then it'll always attempt to read the fallback recovery.fstab
path. By making sure to pass zipfile.ZipFile(), it'll be able to read
the zip file ToC and use the correct path instead.
Test: Generate signed ota package for gts4lv
Change-Id: I4f3b975c677b7928999d0fe4fb137c868d7a206e
If vendor model props are blacklisted, a/b zips fail to generate.
This uses a non-partition specific prop if the partition specific
variant does not exist.
Change-Id: I96f583ceb3ccebee21211b964e2ea66217ffd41f
In past, brillo_update_payload was unsparsing all images before putting
them in payload.bin, now we ought to unsparse them ourselves here.
Change-Id: I69baa71678f8116ed8e256bd629a1af9bad13ba8
Previously the key mapping in releasetool/sign_target_files_apks.py
is missing the aforementioned key that was introduced in Android 13,
so it's writing corrupted signatures in plat_mac_permissions.xml.
Test: make target-files-package otatools
sign_target_files_apks -o -d <CERT_ROOT> ...
Change-Id: If42907cffbd500281876f8f822cbb645583d06ed
* This is a required dependency of target-files-package
so that it can be built from a clean build.
Test: rm -rf out/target/product && m target-files-package
Change-Id: I89e60f47e3e2cd6029a92b1aca505acd9cf4645b
This is a squash of the following commits:
Author: Chris Soyars <ctso@ctso.me>
Date: Thu Dec 23 00:44:33 2010 +0100
Add otapackage support for backuptool
Change-Id: I512554c579d444067cd3ccbb0e6946a5eb6bc964a
Modular backuptool.sh. Executes backup and restore methods defined in arbitrary /system/addon.d/*.sh scripts.
* Copy backuptool.functions alongside backuptool.sh.
* Delete both from /system/bin as they are not useful there.
Patch Series
============
http://review.cyanogenmod.com/#change,13265
CyanogenMod/android_build
* edify generator
http://review.cyanogenmod.com/#change,13266
CyanogenMod/android_system_core
* permissions on /system/addon.d
http://review.cyanogenmod.com/#change,13267
CyanogenMod/android_vendor_cm
* 50-cm.sh reference backup script
* modular backuptool.sh
* support backuptool.functions used by /system/addon.d/*.sh scripts
Change-Id: I26b4907d28f49c69627699d2accd2f0fa2d1b112
update ota_from_target_files to handle mounting/unmounting for backupscript
backupscript should not be mounting/unmounting itself as it makes other
scripts have unexpected results (such as modelid_cfg, which expects /system
to be mounted)
instead have the ota script handle the mounting/unmounting
Change-Id: I94511f4147c624d975cb3ecbeaa8b0e98f63437c
build: Don't run backuptool on GMS builds
Change-Id: I5dde27f9d16b88049171db9805221d92e67f3e5d
Author: Tom Marshall <tdm@cyngn.com>
Date: Wed Apr 9 16:14:07 2014 -0700
build: edify: use set_metadata for backuptool
Also use saner permissions on backuptool.sh
Change-Id: I50742b51867aa358f5924b8dc208833092a35bd9
Author: Ricardo Cerqueira <ricardo@cyngn.com>
Date: Wed Nov 5 18:16:43 2014 +0000
ota: Include copies of the recovery scripts even if shipping in block mode
Author: Ricardo Cerqueira <ricardo@cyngn.com>
Date: Wed Nov 5 19:58:59 2014 +0000
ota: Fix recovery-script cleanups in block mode
Change-Id: Iadb480f8062cfb7a0e6c9024e32ac0d71a7481d7
Author: Arian <arian.kulmer@web.de>
Date: Wed Jun 17 12:35:16 2020 +0200
build: Disable backuptool on user instead of GMS builds
* Backuptool is not exclusively used for GApps but
also used by other things (i.e. Magisk), hence
it shouldn't be disabled on all GMS builds.
Change-Id: Ia95c6fed21d7bed5e2e0610aa94264edc1d02c80
Author: Davide Garberi <dade.garberi@gmail.com>
Date: Tue Sep 24 18:45:17 2019 +0200
releasetools: Move system mount handling to backuptool
* This allows the ROM to be flashed on any recovery, whether it mounts
system to /system, /system_root or /mnt/system like Q recovery
* Remove any type of system mount with static paths from updater-script
to figure out the path dinamically through backuptool
Change-Id: I7b33726305cb6f3eec146d26135f0081002a25dc
Author: Jesse Chan <jc@lineageos.org>
Date: Fri Jun 12 21:53:18 2020 +0800
releasetools: support dynamic partitions for backuptool
Change-Id: I4a04e52f64e307a9852d786aabf17975a020b4b8
Signed-off-by: Jesse Chan <jc@lineageos.org>
Author: Jesse Chan <jc@lineageos.org>
Date: Tue Jul 7 23:50:10 2020 +0800
backuptool: do not unmap dynamic partition after finished
Keep partitions mapped so users can install addons.
Change-Id: Ic70621986bf136775e686dc8cc690ce076485907
Signed-off-by: Jesse Chan <jc@lineageos.org>
Author: Alessandro Astone <ales.astone@gmail.com>
Date: Mon Apr 12 18:40:10 2021 +0200
backuptool: Map extra dynamic partitions for Addon.d V3
Change-Id: Ia8fa1963c722c5aa2987b947e4e919e19909a9a8
Change-Id: I2401d334d8e16d18d3770b339ec2c787dd8e477c
* Anything in OUT/install gets packaged up into the zip and extracted
to /tmp/install immediately after FullOTA_InstallBegin.
* Use /tmp/install in edify scripts and remove code related to using
and manipulating /system for install tools.
* Modified to support signing steps being split from build steps.
Package install files into target-files INSTALL path
Read from target-files for OTA package creation
From Change-Id: I64f919c2a757b5474f6cc5f82bd6c33c2a8b558a
* This also fully reverts commit 6a324ba and partially reverts
commit f388104 as the functions are still needed here.
From Change-Ids: I4911244ec9945d197d2b56d0d11eab6d2f7b6d3e
I4943e2e89ee5c810a63746c570dc5e31e95b8c53
Squashed with the following:
Author: LuK1337 <priv.luk@gmail.com>
Date: Wed Feb 19 02:14:59 2020 +0100
releasetools: Use 0oXXX instead of 0XXX for octal
* Fixes py3 syntax error.
Change-Id: Ia9ca6e392f43694ddf4c952b07bf159e8dead36e
Author: LuK1337 <priv.luk@gmail.com>
Date: Fri Nov 13 15:27:24 2020 +0100
Add $(PRODUCT_OUT)/install to INTERNAL_RECOVERYIMAGE_FILES
* Fixes $(PRODUCT_OUT)/install not being included on targets
not providing their own /vendor || /system/vendor.
Change-Id: I15b8305bb7efacfcf3018708bf7ff8b8500744fb
Change-Id: I315a3238e36c8d15e26f935e272f7e27dd59c320
This happens when the fingerprint property is blacklisted for the
purposes of unified device builds.
Change-Id: I9f8a5041248c3f73fce7a16da73cb8f68c06c8e2
Without the -d $(TARGET_OUT) option for mkbootfs, only the
compiled-in fs_config (from AOSP) is used for the generated
ramdisk image. Device-specific additions are ignored.
This is why AOSP sets this option for both the boot- and recovery
ramdisk [1]. However, the option was removed for the recovery ramdisk
in review.lineageos.org/c/LineageOS/android_build/+/222722
This causes device-specific fs_config additions to be ignored when
generating the recovery ramdisk, potentially setting the wrong
permissions.
[1]: android.googlesource.com/platform/build/+/refs/tags/android-9.0.0_r37/core/Makefile#1388
Change-Id: I0f77a49d8b2f08791e60b34ddbb6f3b32bc2f0bc
Targets can switch on this feature by setting
MALLOC_SVELTE_FOR_LIBC32 := true
The default is to build libc32 with scudo enabled.
Change-Id: I207659af05412a8e7dc850d57b491ee565554a65
Add support for optional device tree image (dt.img)
to boot and recovery images. Some devices use kernel device
tree and this adds the device tree image as a section within
the boot/recovery images.
Change-Id: I91431ef2f4b86485895678916e39a8572be878eb
Build: add DT image variable to Makefile
DT image variable is currently present in
generate_extra_images.mk.This file is moved to
build/tasks to support persist image generation
during parallel make. As build/tasks is called
at the end of Makefile, DT image variable is not
available for other images generation like boot and
recovery. Adding this variable in Makefile ensures
the variable is defined before usage
Change-Id: I21f675d8ce648dc1cf1f4f3aede33278300e08c9
CRs-fixed: 548299
Fix case where boot/recovery.img were being built with wrong params.
The boot and recovery images now get built using the same params during ota package
generation as during a normal build.
Change-Id: I93d46e11a4245288f0e87c87a2e4bf45ac5aff69
Fix the extra dt.img compilation issue.
Add support for optional device tree image (dt.img)
for device that doesnt have TARGET_BOOTIMAGE_USE_EXT2
Change-Id: I6e07b3ca6d049a8ebdad7ea304b4f39e7c846151
releasetools: Store and use the dt image file through target files
Target files packages may be used for signing images separate from the
build process. Store the device tree image file in the target files
package so it can be used during the signing process.
Change-Id: Ie8507121fa9c4ba57ecffeab05bd859ae5f5b788
This is a combination of 2 commits.
This is the 1st commit message:
Add BOARD_CUSTOM_BOOTIMG_MK support
Simplified version of the previous implementation. Recovery's ramdisk
is spun off from the main recovery target again to allow overriding
just the image-generation step
[mikeioannina]: Squash cm-13.0 changes and adapt to N
Change-Id: I058d214f0cf2d05b7621b369ef1f8a983c3ac258
This is the commit message #2:
build: Handle custom boot images properly
When a pre-built image should be used, it should be stored in the
target files zip so that it can be used with external signing
processes.
Original-Change-Id: I2661af9ac58af30bb9314b552775046d3abf44e0
Change-Id: I10b3bd0bb33489b8ffb26d16d002f8dd6ff405ad
[aleasto]
Rewritten for R, where the recovery ramdisk is created via
make dependencies, rather than $(call)s
[mainey]
Adapt to new flag INTERNAL_RECOVERY_RAMDISK_FILES_TIMESTAMP
Change-Id: I058d214f0cf2d05b7621b369ef1f8a983c3ac258
Author: Ricardo Cerqueira <cyanogenmod@cerqueira.org>
Date: 2011-04-12 10:57:22 +0100
Allow a device to generically define its own headers
We have a few cases of devices including specific versions of projects
just because of modified headers (msm_mdp.h comes to mind), and I just
had enough of ifdeffing header files for specific cases (the P990 needs
a lot of these).
Now... if a target defines a TARGET_SPECIFIC_HEADER_PATH, any headers in
there will take precedence over the standard ones; for example, on the
p990, I have
TARGET_SPECIFIC_HEADER_PATH := device/lge/p990/include
which makes, for example, the
device/lge/p990/include/hardware_legacy/AudioHardwareInterface.h be
used instead of
hardware/libhardware_legacy/include/hardware_legacy/AudioHardwareInterface.h
whenever a source file uses <hardware_legacy/AudioHardwareInterface.h>
Change-Id: I41b62668b60e3f62a6ebd3738d8d2675103a81e6a
build: fix target header overlay
LOCAL_C_INCLUDES as defined by the makefile should be put AFTER
the overlay includes so the overlay always takes precedence.
Change-Id: I489b2aab6dbacd9122d834f85e07b63ed1271f07
Author: Jan Altensen <info@stricted.net>
Date: 2020-09-10 15:18:49 +0200
soong: add TARGET_SPECIFIC_HEADER_PATH
Change-Id: I582ae8e6e010016b33fd9b020b723e5fc2dc442b
Change-Id: I3c885fe504ce4f646001697119cffd674db9ec49