* Boot Image header v2 demands a DTB be passed by default.
* We don't /need/ one at all, as we have and use a dedicated
DTB partition.
* Signing hates trying to find dtb.img anywhere for some magical
reason, so cheat and introduce a flag to include a blank one.
Change-Id: I889ce3815476a55829870b30de1b9210283a79ae
(cherry picked from commit fa16b42ddd1eb341f201b8d810c717ea12afe1cb)
* Remove KERNEL_LD from kernel.mk, we simply set LD in BoardConfigKernel
* Add llvm-ar in path allowlist (used by LTO)
Change-Id: I76addb6f9d8d413edb1832dba23082ffb6d5ebc3
Adapt function for .gitupstream so we always get the correct
remote without needing to calculate the path manually.
RIP CodeAurora
Change-Id: I56720dfb859a08c53e79255a9e5e61e7a2e50619
Fixes:
error: unable to open output file
'arch/arm64/boot/dts/google/devices/bluejay/google-base/.gs101-b0.dtb.dts.tmp':
'No such file or directory'
Change-Id: I457062e46062fb3553421d196b432de7d06a49ad
vendor_boot v4 supports packaging multiple "fragmented" vendor ramdisks.
A secondary can be used to store the kernel modules instead of storing
them in the "normal" vendor_ramdisk.
Test: Create a vendor_boot with source built kernel/modules,
gs101 still boots.
Change-Id: Ic295ccf201c2593e08b9559ae28f80c70a7eb341
On some devices we might want to build just the *.dtb files
that we actually need instead of the every dtb that exists.
Change-Id: Id7a152499d4ee1dd08f79d34cc34bfe959313515
- Fixes error while building
Trying to build sdk_addon, but product 'vendor/lineage/build/target/product/lineage_sdk_phone_x86_64.mk' does not define one
- Move gsi_release.mk to gsi_tv_arm*.mk. SDK and x86* targets won't build.
- Set TARGET_SUPPORTS_64_BIT_APPS for x86_64 gsi to support both arch apps.
Change-Id: If01e2eecfc5e27a98e696c29f29babbc1a5ec726
* Currently, because DTC_EXT make flag is in the
kernel task the only way to override it is to
have TARGET_KERNEL_ADDITIONAL_FLAGS come after.
Change-Id: If62ed979581dc07eafd4628ce2b2d799388d3704
This reverts commit caa3bddf00.
Reason for revert: Breaks pixel dtbo.img build, since kernel depends on
mkdtimg. Add it back so it gets compiled and kernel can pick it up.
Change-Id: I2b9fd0b2b35e0cf2f908516b10f65399780d5c30
* AOSP build system is not aware of dtb(o) source update, and thus
won't rebuild the images, results in outdated artifact.
* Convert DTB(O)_OUT to make targets and make the images depend on them
to address the issue. This makes AOSP build system be aware of
their timestamp changes and re-execute recipes depending on them.
Finally, it's up to kernel's build system to decide actions to take.
Test: m dtb(o)image and observe dtb(o).img get rebuilt
Change-Id: I197e7d2d3e013ded0e555fc22bb6a1200d40df9c
This soong variable is used to conditionally revert a commit [1]
which causes random camera crashes on tama devices
[1] a9550f3fe9
Change-Id: I749c7029f8f2b6d6d95b066aed4929c33e3c75e7
* For every commit, repopick checks the last commits for the presence of
the commits to be picked
* In every project a change should go in, it calls "git rev-list --count"
to find the maximum amount of commits to be searched, but it only cares
if there are less (or equal) commits at all than to be checked
* Therefore, we can limit the counting to one more than we want to check
* This is relevant for example for fw/b, where there is a huge amount of
changes and therefore a lot of time used to count
* Example: fw/b
git rev-list --count HEAD: 46.693s
git rev-list --count --max-count=1000 : 0.019s
* Real-life example:
repopick -t qs-lightmode
Old: 2m33.375s
New: 0m6.657s
Change-Id: If0500574fb282e332996b606dd9926841f8e0e88
Commit 8ac7d31 introduced this issue.
Test: run `m recoveryimage` and verify that recovery
image is now built.
Change-Id: Iffdd8112db2ba1baff28db7ee4c340dbb5ebd917
Commit 8ac7d31 introduced this issue.
Test: run `m installclean && m bootimage` and observe that
kernel image is built.
Change-Id: I41eb7cd2e5108bae8f4c40c0f9a300a8a3cc95a7
* Since some time you can specify multiple configs when you prepare .config and they'll get merged to main one
* To use it inline:
TARGET_KERNEL_CONFIG := main_defconfig fragment1.config fragment2.config ...
* TARGET_KERNEL_ADDITIONAL_CONFIG has been nuked since it's superseed by this new logic
* kernelsavedefconfig will only use the base defconfig
Change-Id: I479c762a9235ed0ef6fcdc79b53e084d5e2d78a6
* This caused breakages in subshells from scripts.
* Still keep the dropping of `-j`, as it's not needed.
This is a squashed revert of:
Author: Timi Rautamaki <timi.rautamaki@gmail.com>
AuthorDate: 2022-03-24 08:21:34 +0000
lineage: move mka definition above brunch
Otherwise it's not defined for brunch.
Change-Id: I642e3db365fab46d4428d1b1f310304280b72efc
Author: Alexander Koskovich <akoskovich@pm.me>
AuthorDate: 2022-03-21 07:54:20 -0700
envsetup: Remove threads argument from mka
* "m" is multi-threaded by default.
Change-Id: I5c9bb30dc49dafa31ba9fc70e617f477b6814b41
Change-Id: If4112ae739d8356f922cbbaf8e3d7ded5d078bd0
Inherit from AOSP gsi_{arch}.mk, because aosp_{arch}.mk files
are obsolete in Android 12. Rename for consistency with
AOSP gsi/sdk targets.
Change-Id: I449390521307ff4f269a9ebf1ad3a5ffc398bc97
* GCC was deprecated awhile ago, the large majority
of devices should now be using this. Clang should
be opt out as opposed to opt in.
Change-Id: Ie388aff8eca189663f2f615f7d059e47eaf2dce3
* This platform was last mentioned during CM 9 in
android_vendor_qcom_opensource_kernel-tests_mm-audio.
Change-Id: I7e91d17303b74bed3a9c220366868afd8176a7f7
* Remove MTK board platforms, nothing uses this when
looking for 'MTK_BOARD_PLATFORMS' across the entire
organization. This lets us revert the utilities back
to how they were in the QCOM tree.
Change-Id: If3d3a3e7543b79108b26a30c0e02bb3ab154f279
* Make it consistent with the rest of the targets
Signed-off-by: Jarl-Penguin <jarlpenguin@outlook.com>
Change-Id: I869d3d8570b4deb2f1e019efa975526a528ca3e7
* In order to automatically restart the system when pushing SystemUI, the
path must actually be correct
* Since android 10 it's in system/*product*/priv-app and 11 will move
it again, so just match it anywhere
* Make framework also location independent
Change-Id: I4a9eb1edbbb21ab8abe17815c606921f7a538b7f
All references in sm7250 repos point to the correct location
if we simply define QC_OPEN_PATH as vendor/qcom/opensource
Change-Id: Ibb580230212a08c73a251c88630217b192979eb4
* This is originally done in build/make but it checks against aosp_* targets
* Enable it for all of our lineage_* targets
Change-Id: I9fa62c8f709bd649d114f24f241d42d471489ae5
As md5 is not considered as secure since some time, and sha256 is
industry standard, lets switch over here too.
Change-Id: I22015be20126a4348affa5ef97e2c28fbd7b4717
breakfast may get stuck if the first breakfast for a target is
interrupted before cloning but after adding repositories to local
manifest. Re-doing breakfast skips syncing the repositories if
they're added to the manifest even if not cloned.
Change-Id: Ifefd08fa6da8785c1d5de0b27ac1a08a782f21d6
Makefiles combining core lineage and automotive packages.
Can be included by devices to turn them into Automotive builds.
Emulator targets demonstrate using these makefiles and form a basis for Automotive GSIs.
Change-Id: Ib5d35dfe4de8c459e4e14a7ba6f0b0e682e0d912
The check for official builds now only affects the case where a prebuilt
kernel was actually used, not the case where a device builds a kernel
from source as normal.
The check has also been turned around so that it only fails the build if
it's actually an official build, not an unofficial one.
Change-Id: I1280b16b90589742c2abe7f3f6f5975a3aaeea03
* TARGET_FORCE_PREBUILT_KERNEL should be useful when you don't have ready kernel sources (OEM releasing broken sources or releasing them lately)
* It lets you use kernel sources for userspace generated headers (generated_kernel_headers) while keeping using prebuilt kernel
* Keep in mind that generated kernel headers may not align with the ABI of kernel you're including
* This commit also partially revert commit a836d79, where TARGET_KERNEL_SOURCE would have been unset if TARGET_PREBUILT_KERNEL was defined (we already check in kernel.mk if kernel sources are present anyway)
Change-Id: I84acae890dabb5b9dbd48143ad58f6420c0cef75
* This is needed for VNDK27, and other older,
hackier Treble implementations.
* We can't include `legacy_gsi_release.mk` as it's included
in the `aosp_${ARCH}_ab` targets themselves, unlike the standard
`aosp_${ARCH}` targets which guard `gsi_release.mk`'s inclusion
with `aosp_${ARCH}` product guards.
Change-Id: I16c5983c18110b24eef84e382e0ae6852efb03c3
Mini documentation:
List the names of boot modules in BOOT_KERNEL_MODULES to add them
to vendor_boot.
All modules still end up in their primary location (normally
vendor/lib/modules). Boot modules will be kept here as duplicates.
The list of boot modules is then depmod'ed and copied to the
vendor ramdisk.
The file modules.load is created from
BOARD_$(IMAGE)_KERNEL_MODULES_LOAD as the ordered list of modules
to be loaded form that location, either parsed by a modprobe script
or by init itself (only boot modules)
When using vendor_boot modules, vendor/lib/modules/modules.load
should list all modules but boot modules.
Also don't clear the output directory, because one might want to
push a modules.blocklist there.
Change-Id: I89a4aad42a6585a572812f1d7e89f5d78931e1e6
* Move $PATCHELF exporting from oat2dex to setup_vendor
* Since it requires $HOST to be set, let's make it global, so oat2dex can also use it
Change-Id: I4556a3c19cd01c9b3a68d358d19a361217d9c3c1
Some legacy devices experiences bad lag unless this is disabled.
Disable it with:
TARGET_DISABLE_POSTRENDER_CLEANUP := true
Change-Id: I2b40dc4cbcab06fb293d1f407321af2fae846a51
* We're having a race with the kernel module build and vendor.img
generation, and sometimes when vendor.img wins it won't include
any modules in the image, which leads to all sorts of breakage
Change-Id: I2cdde96530aa8e47351cace76352788cde631058
* Thermal HAL was converted to HIDL service and .mk to .bp,
devices can override it by using a different named service
Change-Id: Ia3e0d86e791555992e7889f33f7d55f224b9a582
- The goal of specifying kernel image name was to whether kernel needs
appended dtb or not, which is not something required if the kernel is
prebuilt
Ref:
[0]: Commit edc1cebc2f
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
Change-Id: I6b43756a2eac59729a67b5f80dac112f8b6bcc5b
The mk files in vendor/qcom/opensource/data-ipa-cfg-mgr were
converted to bp, so this is needed to avoid duplicate module
build errors on devices that use a different data-ipa-cfg-mgr hal.
Co-authored-by: Christian Oder <myself5@carbonrom.org>
Change-Id: Ib4d566e43145745afac0259c95c0a563779fa3bd
* This reverts commits 7ef0e170 and 4ed4605 and removes relevant flags
to prepare for using Soong config variables as per Google's docs
Change-Id: Ib6ae5a8a922104d37f8d0e08242b428eb129785c
This reverts commit f3f7eb2d87.
Support for this in fw/native has been ported in the previous branch
and is very unlikely that will be done or even needed for R.
Change-Id: I9c9709e323d6a27f3c9196887af7ab0ffa1819e9
This reverts commit fd27bb4912.
Should have never been added. This time should be done with a prop.
Change-Id: I72a4563834447d4dbeda66dfb232b0541727cb55
* The new refactored function doesn't work with shell expanded
variables, like our $$modules.
* This is the _easy_ fix.
A proper fix would imply generating the module list into a make variable
from the shell variable, but with kati that looks unfeasable (to me...)
Change-Id: I8198c62fa93ad94d4b9bf7175fe5eea452c243ea
* This is indeed a nice feature, but it's absolutely a bad idea to
hardcode dependencies of prebuilt modules in proprietary-files.txt.
Change-Id: I8c2d75ff62c0c7862f40e777bcbad4d9cebc074c
* AOSP wrapped these around aosp_{arm,arm64,x86,x86_64} checks
thus we need to have them here instead.
Change-Id: Ia3e1e37361330c4b28759f07a3fef6c78565e958
* Android Studio SDK addon is currently broken for generic arm/arm64 targets
and besides it only makes sense for x86 targets
Change-Id: I6832cc99e0dcefb60c9fb187811821ab1b40e7e0
Fixes the following build error:
vendor/lineage/build/soong/generator/generator.go:125:26: ctx.Config().BuildOsVariant undefined (type android.Config has no field or method BuildOsVariant)
Change-Id: I3385941b2931e5be8010d31f80f3aa033d0d3727
* A simple "make kernel" or incremental system build
always triggers a complete kernel recompilation,
even though the kernel sources were unchanged
* The reason is because .additional_config is always
considered new and invalidates the .config file,
forcing the kernel to rebuild itself every time
* Instead, prevent the /dev/null and KERNEL_OBJ dependencies
having irrelevant timestamp changes with an empty variable
* Command "make kernel" takes 3 seconds versus 40s before
Change-Id: I3b583077b7ef5873eebde3e4b0e790f5d7587ed3
Signed-off-by: Adrian DC <radian.dc@gmail.com>
It was removed accidentally in commit fe00ea9.
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
Change-Id: Icadd7b17b3a732fc2c8aa14f1e4dbd4bc66eb7f9
* Remove the separate dtbo.mk task and merge it
in kernel.mk
* Merge in-kernel and separated DTBO image generation
Change-Id: I2cae84095cbd3d68abbe1899a9cae34c8a1e5fc9
* This makes it use the latest source built dtc instead of the prebuilt,
which is too old for coral/4.14
* Would be best to have it use the in-kernel DTC though,
as that should always work for that particular kernel.
* When OUT_DIR_COMMON_BASE isn't set, this path is relative (i.e. out/),
so append $(KERNEL_BUILD_OUT_PREFIX) to account for that.
Change-Id: I6ffe72a2fb061ee81b385f31f4acf682876b27c8
* On devices using vendor_overlay it could be useful
to be able to re-name the installed modules to
match the ones in vendor
-> An example is QCOM techpack where default module
name in kernel doesn't match installed module
name
Change-Id: If9458bca06218aeb8c91283057c083d909bf5104
This is to allow repopick to determine a branch even on a
revision locked manifest. If upstream is not set, it falls
back to revision.
Per the repo manifest documentation:
Attribute upstream: Name of the Git ref in which a sha1 can be
found. Used when syncing a revision locked manifest in -c mode to
avoid having to sync the entire ref space. Project elements not
setting their own upstream will inherit this value.
Change-Id: I12876f7e3b440f9eab6d1b96eba9b18a13cff2e0
When a manifest project path and project name is identical, the
repo manifest parser returns None for the project path. Since
both name and path are required, fall back to using name for path
when path is None.
Change-Id: I2fb3cc0cc643808a3049171804742f249d737679