vdexExtractor is a tool made by anestisb that is written in C++
with code taken directly from art. However, anestisb has also added
a quicken decompiler to oatdump that was merged upstream, so we only
need vdexExtractor for 8.1 and 8.0.
Change-Id: Ic2cf2dc627a1ad2fa4d500d02d9eac8b8a9577b5
Signed-off-by: Joe Maples <joe@frap129.org>
This will prevent link errors in case my_installed_module_stem is different
from my_built_module_stem.
Change-Id: Ic72571637ea404c92128b9cd5a28e82a36bc0033
If LOCAL_SDCLANG_2 is set to true, the secondary SDLLVM toolchain
(SDCLANG_PATH_2) will be used instead.
Change-Id: Icb7492562aeaa3c584edcbced8fe1e98776774bd
* hardware/ril is a required project for any build.
Move the path mapping logic to core/config.mk so
any build has access to the correct default mapping.
Change-Id: Ia52919d7877ddc91f8a4a988fd0858d14837fc4c
* Oreo expects VNDK compatible files to be listed as LOCAL_VENDOR_FILE,
not LOCAL_PROPRIETARY_FILE.
Change-Id: Ia2384c4f3ab3a99b79df52c796c53dc25a0f4a88
* When using "?=", expansion doesn't happen right away, so the ccache
variable is sanitized before KERNEL_CC gets expanded and no ccache
is ever used for clang builds.
* With ":=", expansion happens immediately. So let's manually check
if KERNEL_CC is already set somewhere else to determine whether or
not we should set it ourselves using ":=".
Change-Id: I8a61767606a4f3d4c6ba88c68b10fd2e11783406
that way we can split the shim list logically into multiple lines like
TARGET_LD_SHIM_LIBS := /system/bin/gpsd|/vendor/lib/libshim_gpsd.so \
/system/lib/libexynoscamera.so|/vendor/lib/libexynoscamera_shim.so \
/system/lib/libstagefright.so|/system/lib/libstagefright_shim.so
to not have one single huge line
Change-Id: Ice1411ee22b78da1dbf22eac412b9e4978acebdf
* To limit security exposure, we're forcing all devices
to define shim libs with a TARGET_LD_SHIM_LIBS
Change-Id: Ic8722c42807429f2faa3546316c71c40533ce195
* Fix makefile generation for packages that have set
a different target destination
* Thanks to rashed and javelinanddart for their help
in debugging and solving this issue.
Change-Id: I1f5a1abd6929e4a7e0ccd6370d3a3dd986f94fed
The existing kernel header logic has several issues:
* It does not depend on the actual kernel headers, so it does not
detect actual kernel header changes.
* It does depend on the kernel config, which should not be used to
generate (user space) kernel headers.
The end result is that kernel headers aren't properly regenerated when
needed, and spuriously regenerated when not needed. Additionally, the
kernel header rebuild mucks around with the kernel config, which is
unneccesary and fraught with danger.
Rewrite the kernel header dependency and generation logic as follows:
* Use the dependency file $(KERNEL_OUT)/.headers_install_deps to
manage dependencies on the actual kernel header files which are
exported to user space (and the top level kernel Makefile, which
is used to generate version.h). The dependency file is exactly
the same as what GCC would output for a C/C++ dependency with the
M/MM flags.
* Conditionally include the dependency file to detect when headers
should be (re)generated.
* Introduce the phony target INSTALLED_KERNEL_HEADERS for modules to
declare a dependency on kernel headers.
Additionally:
* Get rid of TARGET_KERNEL_HEADER_ARCH and KERNEL_HEADER_DEFCONFIG.
* Get rid of KERNEL_OUT_STAMP and move commands to the appropriate
places in the rules.
* Fail the build when $(KERNEL_OUT)/usr is mentioned in a dependency.
Note a separate commit to build/core/binary.mk will provide a
migration path and a suitable deprecation warning.
* Declare the kernel*config targets phony.
Change-Id: I8b46f4ea1c622d8e73cca5157be96ec09d42ebb3
taimen uses the dtbo.img as an DTB Overlay in order to use the same defconfig for both, taimen and wahoo.
The dtbo.img is built with "make dtbo.img". Allow automatically building it when setting TARGET_NEEDS_DTBOIMAGE to true, or by manually calling make dtboimage.
Thanks to luca020400 for help with the kernel.mk logic
[raymanfx] Add AVB hash footer support
Change-Id: Iaddafaa98e3e84880462a2c35b899e3fea21e161
While UM platform HALs are interchangable and very much interoperable
between platforms and kernels, some have qualms about commonizing
platforms that Qualcomm hasn't fully commonized themselves yet. Therefore
introduce 2 seperate UM platforms, UM3.18 and UM4.4 (corresponding to
the kernel version used for that "version" of UM) and use msm8996 for
UM3.18 and msm8998 for UM4.4 (sdm845 will probably be UM4.9).
Also disable TARGET_USES_QCOM_BSP on the UM platforms to match Qualcomm
trees as it causes WiFi display not to work and calls for missing headers
and struct elements at build time.
Change-Id: Ia574231243b7d628d35959b474dd28bd37ac4031
* Use msm8996 HAL for 8953 & 8937 since they share the exact same
git history sha1 in all 7.0+ released tags.
Change-Id: I764a9a092b6d530de8a9b9e6e54f41c0b5d8a593
Add support for compiling kernels with Clang as intoduced on android-4.4
In order to compile with clang, you must set TARGET_KERNEL_CLANG_COMPILE.
If you wish to specify a specific clang version, also set TARGET_KERNEL_CLANG_VERSION,
but if that is not set, the build system will default to the latest version of clang
available in prebuilts/clang
Change-Id: I79dc1dca9758a930f2f5ba1754b5d8de114af900
Signed-off-by: Joe Maples <joe@frap129.org>
Place kernel module output in the correct location.
Perform depmod steps (copied from build-image-kernel-modules function in
build/make/core/Makefile).
See: https://source.android.com/devices/architecture/kernel/modular-kernels
Change-Id: I6e70012a5c1acdb276f9bee0d57631d2805f71ea
* Some devices need this function to return something, yet also do not
set BOARD_USES_QCOM_HARDWARE. Allow them to override this.
Change-Id: I3cf78da39b006ba805ae35fde7379357faa10250
(cherry picked from commit 012cc275e09346ef7909b6a5a144aed59b375ccd)
CAF doesn't use qcom/opensource in their paths, so automatically adjust
the project path for this when using cafremote
Change-Id: I6252fbd1c3e8a545c0d54eefb6b730b893821574
* Use requests if installed. If not fall back to urllib. This is
done because users may or may not have requests installed and
requiring them to do so for simple http stuff isn't really
reasonable.
* If requests is installed and a .gerritrc file exists in the
user's HOME directory, try to get credentials out of it
for the given gerrit instance. If auth for the correct gerrit
instance exists, use it to auth to gerrit. If no .gerritrc
exists, just use requests with no auth.
Example ~/.gerritrc entry:
review.lineageos.org|invisiblek|httppasswordhere
Change-Id: I95be26d51bfd31b53f3613e8dbfb7bba46324571
* Previously, you could just specify a SRC directly
after './extract-files', and it would work, but
now, the arg '-p/--path' is required for the same
behavior to be applied for the extraction
* Add a catch-all case that just sets SRC if the arg
doesn't match any of the args that we care about
* Make the ordering of the cases alphabetical
Change-Id: Ia2ad42d444904ead6b3bd6d910af363eb7f015cc
The existing kernel module logic does not detect failed kernel module
builds. This is because the module build logic is a long shell chain
that invokes make macros which are not intended to be used in this way.
The essense of the issue is that we get a shell chain that looks like:
cmd && cmd && var=value; cmd && var=value; cmd;
The shell breaks this into three separate commands. The first builds
the modules. The other two are the macro invocations. So the result
of the command is the result of the last macro invocation, which will
always succeed even if the modules fail to build.
The issue is made worse by the existing build rule conflating the built
kernel modules and the installed kernel modules.
Fix this by reducing the built kernel module command to a single shell
command and creating a separate target INSTALLED_KERNEL_MODULES. Any
kernel module build failure will show up properly. The commands for
INSTALLED_KERNEL_MODULES do not invoke any macros and should avoid the
issue described above.
Finally, this also removes the fake target no-external-modules and
unifies the install logic for in-tree and out-of-tree modules.
Change-Id: I3d13056e217e1e937c8c3a345032682ffc394bca
Skip the extraction of pinned files if the ones currently available
have the expected sha1. If we don't, we will overwrite pinned files
with potentially incorrect files when the current vendor files are
not moved to a temporary directory (i.e. when not cleaning vendor).
Change-Id: I640d6bf2ed98eb366a4df17f0ebeaec81cb5274b
* WARNING: this intentionally breaks the build on devices who
are not setting BOARD_KERNEL_IMAGE_NAME and are still setting
TARGET_USES_UNCOMPRESSED_KERNEL or TARGET_KERNEL_APPEND_DTB
* The logic here is insanity and if all of this can be done
by simply setting BOARD_KERNEL_IMAGE_NAME, why have all this
extra cruft?
* Use cases:
- Set a kernel image name without "-dtb" on the end, you get a kernel.
Nothing more.
- Set a kernel image name with "-dtb" on the end, you get an kernel
with an appended dt.
- Set a kernel image name without "-dtb" on the end, and set
BOARD_KERNEL_SEPARATED_DT. You get a kernel and a separated dt.img.
- Set a kernel image name with "-dtb" on the end, and set
BOARD_KERNEL_SEPARATED_DT. You're crazy.
Change-Id: I5c3fc6eb727255684278ff562c0ee3faa7124b6b
We want to cleanup our temporary files independently on the signal,
so just execute a trap on 0. This will ensure temporary files are
always removed and doesn't require any extra care when trapping
signals such as SIGINT that require an explicit exit call.
Change-Id: Ieff4f15c44a9ac9d5a543d14c140ebd72c0e7344