* Certain order of running these commands on different repos can
end up producing broken remotes, because the variables are
exported globally (looking at you PFX)
Change-Id: I0b679f04264d964ed9a0f0d1adfdbaeac9403ec8
* lineageremote was not working properly for pure AOSP projects
because there is no github remote.
* Read and convert AOSP remote name if there is no github remote
Change-Id: I629f0a8ae3be09d539e18d63a9738c32fb24496c
* ZSH errors out when it doesn't find anything in $OUT/system/lib/modules/.
* So add a check to avoid error while using installboot() with a target
that doesn't have modules enabled.
Change-Id: Ibe66f6962943e9b90c7059a4c9b4ded558318326
* This was always the default behaviour and doesn't require
any additional argument in order to make use of pinning feature
(pinned blobs are only considered when vendor folder is removed)
Change-Id: I34ff7678bd6800a2c593e9fe128cc151c59967da
Currently, using project-set-path is blocking us from overriding the pathmap
for the audio, display, and media HALs, so set them with set-device-specific-path
to allow overriding the HALs with USE_DEVICE_SPECIFIC_* and DEVICE_SPECIFIC_*_PATH
Change-Id: Iee3723cf251d0f485a77a17fd61cb62178833582
* Allows extracting only a specific section from proprietary-files.txt
* Defaults to not cleaning vendor folder before extraction
* Adds script options rather than depending on apredefined order
Change-Id: I74cd3bf4a1f652232c97c78d6164f0730599c1a7
Sometime blob directories are contained in dirs not named system
(ex. extracting blobs from another vendor dir) so check if the file
exists without system/ before appending "system/" to filenames.
Change-Id: I4ba946e178260b4f4804b1ac4422645e3085c665
Sometimes the need arises to update one specific subset of blobs
while holding others steady. Introduce a way to specify the "section"
of blobs to update (obviously requires the proprietary-files to be
properly split up first)
Requires additional changes in device tree extract_files.sh to support
passing the additional arguments
Change-Id: I98feab56f8bfade2818b1b5264e019440d4c57c5
In case of conflict, reset to initial state by aborting the cherry-pick,
leaving the working directory clean
Change-Id: I2353b92254b67ea49835bc88b6fc9bc3910b5107
* Add a build target to simply regenerate the kernel
minimal defconfig and copy it to the kernel source
Change-Id: I04be945eb6dae3042c236785328c7c9995d42e49
* When using an ssh gerrit instance (-g) it is perfectly
reasonable to pick a draft commit. Don't require force
picking (-f) in order to do so.
Change-Id: I420f566ee1bb1f0b0d2a2ef29d95e0545db70b89
Currently, in the display HAL, we're replacing the usage
of this variable with a check for TARGET_BOARD_PLATFORM.
Instead of having to do that every time a new branch is made,
define the variable in qcom_target.
Change-Id: Iddcc38c70adc52267e70c985b7a0ad3d8c4c8929
When a line from the XML file contains a character which grep classifies
as a binary one, it will omit this line at all. Moreover it will append
'Binary file matches' to the stdout. This behavior breaks some XML files.
To fix this issue, let's tell grep to process a binary file as if it were
text.
Change-Id: I6ec5689f73a0926870e502f3f8ee77346b47d05f
Run 'make addonsu' to make a flashable zip to install the addon and
'make addonsu-remove' for a flashable zip that removes it.
Change-Id: I5b2fe67f98f2474b923c074dc6025b47c6db2ae0
Commit 7fb9251dfc modified
the expansion in an illegal way.
Fix the broken env variable.
Change-Id: Ib3029fa995d6a4b0416887a2ef2e4792c9e6bb27
(cherry picked from commit 90b437e784c19fc428c24891cc96705b89b786df)
The easiest and best way to get openssl on darwin is using homebrew,
however homebrew refuses to link openssl (and for good reason) in
order to prevent conflicts with Apple's homegrown version. Include
the openssl headers and dylibs from the dir that homebrew installs
openssl to let 4.4 kernels compile.
Change-Id: I06b66768fbdd4855fd57b88100d646ed6e311a59
This change correctly handles devices with underscores in their
name even if there is a device with the same name after the last
underscore (spyder, umts_spyder) by not allowing any underscores
in the manufacturers name.
Without this change, spyder gets resolved to:
device/motorola_umts/spyder
device/motorola/spyder
Only the last one is valid.
With this change, both spyder and umts_spyder get resolved correctly.
Change-Id: I0c95ff126d827a2d6b58875dfcb9327e999f4913
* Specify the ota zip name as the only parameter to extract-files.sh
* Will extract to $CM_ROOT/system_dump
* Bail out on A/B OTA zips. We cannot support these.
* Handles block based OTA zips by using sdat2img.py
* Store the zip's MD5 and check if its already extracted. If so, don't
bother extracting again
Change-Id: I03038e38dac51e6cb60d493c7e6362754d1daf02
* Fixes errors like UnicodeEncodeError: 'ascii' codec can't encode
character u'\xb0' in position 51: ordinal not in range(128) with weird
characters in a commit message
Change-Id: I700198481630b4b29fd6d5d1f0c79bb94e59ad86
* On some machines, LC_ALL=C is set, causing the sort
order of makefiles to be different than those without
this locale change that is set
* Set LC_ALL=C on all machines for consistent ordering
* From 'man sort':
The locale specified by the environment affects sort order.
Set LC_ALL=C to get the traditional sort order that uses native byte values.
* Thanks to haggertk and rashed for verifying this for me
Change-Id: I5bbb94b0dfe599a67036de4312e8af913e9b8d30
Signed-off-by: Paul Keith <javelinanddart@aidenswann.com>
Currently, the priority of the src and dest is inverted between
pulling from adb and pulling from a system dump.
Assume that we have a camera wrapper and write the proprietary-files.txt
lib/hw/camera.msm8996.so:lib/hw/camera.vendor.msm8996.so
If we pull from a phone running Lineage that has both files, we get
camera.vendor.msm8996.so
as the pulled blob. If we take the exact same build and pull it
from the system dump (aka, your own $OUT directory that built the
installed software) you get
camera.msm8996.so
pull instead!
Make both paths follow the same logic so that you get the same
file independent of the source.
Change-Id: I479e0ae765339cc38fa05fcaad7943c528129463
grep should be given the filename directly instead of using cat
to pass the file contents.
Change-Id: Ic5275ac0f057f3d134fe57f43672a73fa7e3d7de
Signed-off-by: frk <frk@haze-productions.com>
* Gotta save that space somehow. This is in the continuing
effort to remove custom mkbootimg.mk files in device trees
Change-Id: Ie8b3cedf6e37d1d11c2383dd3590f9908ad7818c
The current check only checks for Linux, but many of us
use GNU sed on darwin as well, which means the non-Linux
command will fail, so read the sed version and use the GNU
command if GNU is found in the version string.
Change-Id: I7eefd0309751b069eef5e5e2b907d3d4f38f1638
Currently devices that have TARGET_KERNEL_APPEND_DTB set also have to set
BOARD_KERNEL_IMAGE_NAME to Image.gz-dtb (or zImage-dtb on arm32) in order
to properly build the image with an appended DT. Automatially append -dtb
if TARGET_KERNEL_APPEND_DTB is set so BOARD_KERNEL_IMAGE_NAME does not need
to be set.
Change-Id: I5464c67092a7b9f86669902e5c0e4a47836f7cbd
* Avoids:
Cleaning output directory (./../../../vendor/.../.../proprietary)..
mv: cannot stat './../../../vendor/.../.../proprietary/*':
No such file or directory
Change-Id: I3258e64f3997f139d8db4fb4e07d14964a469c78
* BOARD_USES_UBOOT is unused.
* Same goes for BOARD_USES_UNCOMPRESSED_BOOT. Furthermore,
it is superseded by TARGET_USES_UNCOMPRESSED_KERNEL.
Change-Id: I9f0e2848fcd0cd212bccacf14df55ad03f821051
With androidkernel (androideabi) toolchains, -fpic is enabled by default.
At least on my 3.4 arm kernel, this causes an issue with kernel modules:
"Unknown symbol _GLOBAL_OFFSET_TABLE_".
On traditional armeabi toolchains, -fpic is not enabled, resulting in working
kernel modules; let's follow that here.
Change-Id: I3058b5213b34bdde9bb9d744563c7d55cd42d2a5
The current version always redownloads the artifact.
Kali does not like the nested md5sum command and ignores it
leaving file checksum value blank so the test always fails.
A temporary variable is used to get around this limitation
of kali.
The echo "Downloading..." command has been modified to actually
print and has been moved so it only does so when downloading
the artifact.
Change-Id: I115860a87e55399a652d6548fe50f6204337f854
* checksum will be downloaded and asserted to prevent a
redownload every clean
* Archives will exist (invisibly) at vendor/cm/prebuilt/archive
Change-Id: I637e86cacd146d665044a119885900dc4660e22b
Signed-off-by: Brandon McAnsh <brandon.mcansh@gmail.com>
Let a device specify INITIAL_COPYRIGHT_YEAR=XXXX in setup-makefiles.sh
so that the correct copyright(s) is/are included in vendor makefiles.
The CyanogenMod copyright is retained when INITIAL_COPYRIGHT_YEAR<2017
and the LineageOS copyright is now included for >=2017.
Change-Id: I6895b5b69bc7ba399042ac3c29e17f3209d15f1b
* These are now needed sooner than we had been importing them
in android_build. This ensures they'll be imported before
their macros are needed.
Change-Id: Id7e31f36393414f6d51a8bc80686ceaebfe7cb28
Currently, in the media HAL, we're replacing the usage
of this variable with a check for TARGET_BOARD_PLATFORM.
Instead of having to do that every time a new branch is made,
define the variable in qcom_target.
Change-Id: Idd85b6f0b167bbc64833eb03335abcaa7b9de4a9
-e no longer exists starting from v2.2b3, so update the
command. While at it, add the logic to deal with Android N
separated boot oat files.
Change-Id: Iab8e3946d6421824fea74e26dc43d2db38573022
By the time lunch is run on a product name, it's too late to check
whether a deprecated CM device tree is being used (roomservice runs in
lunch). Instead, rely on check_product() to identify whether a tree
uses cm_ or lineage_ before running lunch.
Change-Id: I16288365f791ff68c3226f3808427168b2fc06fa
* Gello being our first pawn
* Use curl instead of wget (more powerful)
* Ensure the intermediates directory exists prior to download
Change-Id: If19c18638a14a8b9ab55470ae6ee5a2deda2e3ec
* Some projects with multiple merges and
discountinuous histories could trigger
an error here when the HEAD~{?} does
not exist, hence avoid this by ignoring
the commit and continue the search
Change-Id: Ice28c87d1bf8897da52236b637bbb0c5d349f848
It doesn't make sense to have:
1. mm and mmp
2. mma and mmap
3. mmm and mmmp
4. mmma BUT NO mmmap
Add the mmmap command for consistency.
Change-Id: I8cb1041113e6d56a0ac1d34898b07615da22b459
* In a situation where the Android tree is already
fetched and entirely set for a device tree,
all additions to cm.dependencies in a common
project were ignored due to being already fetched
* Add a new array of projects to verify but not
necessarily fetch, and fill it upon fetch request
or if the project starts with "android_device_",
to let the iterations follow the common trees
Change-Id: I9eea0ab9c46a4bed8366baa37a4e7e8696481504
Signed-off-by: Adrian DC <radian.dc@gmail.com>
* This code was introduced to support building from Qualcomm hardware
manifests, placing the appropriate Qualcomm HALs at the AOSP
hardware/qcom/$(HAL_TYPE) location. This isn't a supported use case
anymore, so remove the dead code.
Change-Id: Id7d53b33f53289bc1ead8eb983d7e252940b0387
Newer QCOM HALs use this flag for libc2dcolorconvert,
examples being msm8937 and msm8996 media HALs.
Change-Id: I28e8a42b58b4f5f71126df7ad97c377724da5bab
Snapdragon LLVM is not supported on Darwin yet.
There might be the case where the directory structure is set up
by default and the build system will try to execute the linux binaries.
This will fail obviously:
/bin/bash: /Volumes/Android/build/prebuilts/snapdragon-llvm/toolchains/llvm-Snapdragon_LLVM_for_Android_3.8/prebuilt/linux-x86_64/bin/clang: cannot execute binary file
Change-Id: I1f4d0bbda88b540b7ac3159f8e83de4501b9073b
Signed-off-by: Alexander Martinz <eviscerationls@gmail.com>
Do not prepend app or priv-app to the src when a path is explicitly
given as an argument. This fixes the SRC path in such conditions.
Change-Id: I43370f17fe224df323fcfa9b0d5eae4ee2996524
In some cases we may not want to check against TARGET_DEVICE so allow
setting a custom variable to check against
Change-Id: Ia2fb338f453137a95a59c6940b0cc16b261505bf
In some circumstances we might want to set a custom vendor.mk
filename. If not set, then just default to the current device name
Change-Id: Icb59ebee67ce17b41ac613020685773efb01103d
* androidkernel is a set of toolchain symlinks for kernel builds that
point to the regular toolchain binaries, except with ld pointing to bfd
instead of gold.
Change-Id: Id1e2d3b1c50db581bff13cfa00b5b35d5badb8ed
* We might want to disable pinning entirely for an extract run.
* Set DISABLE_PINNING=1 to turn it off and override everything.
Change-Id: I1be90dda68f0de1c5f5a70c946052d70bfaab7ed
* No need to look for /sbin/recovery as adbd will report
the device as being in recovery mode already. Also, this
check appears to hang on N.
Change-Id: I3bcb427835ae3cd37c7ea56cbc57bba0d18fcc04
Since mainline devices will always identify as a latest
release api level (due to userbase volume), make sure
we check against the current api vs api -1.
Change-Id: I9e9b41a1af5d3a93f58b2e0e0545b979d1cef978
* In many cases, we would like to keep certain files which do not
exactly match what might be extracted from a factory ROM. This
becomes extremely annoying over time to manually reconstruct,
and it's easy to miss these special cases when updating to a
new vendor release. It's also useful to flag additions which
aren't found in the upstream release at all.
* To solve this, we can now "pin" files to a specific sha1 hash.
Simply append the sha1sum of the file to the appropriate line
in your bloblist, prepended by a | delimiter.
* This works by backing up the current files first, running the
extraction, then checking if any pinned files need to be
restored.
* Also add an exit trap to clean up all of our tempfiles
Change-Id: I2010b5175b5701e19a3efb112e8907062ca37d66
* Not gonna work without preparsing all the lists combined together.
This reverts commit b7b7f88443.
Change-Id: I63ceead414d7f8416e2c2c8e4b12098077b545e2
* A final "rootfs" tag in the last column will place
the chosen file into the ramdisk
* Currently only supports files in /sbin
* Cleaned up usage of class-specific flags
* Simplified code
Change-Id: Id823d70aab51f8767522f697eaf65f52fc64b94b
* Instead of having to enumerate packages and do a bunch of tedious
shit, we now have a way to do it automatically based only on
the blob lists.
* Devices still need to implement a short script, but this library
handles all the core functions.
* Yes, we should probably be doing this in Python- Bash is
absolutely horrible at dealing with arrays and lists.
Change-Id: I73b30ff4531c4d1b33ac53db33abf62555f500b4
$@ already contains the full path of the output, so no need
to prepend ANDROID_BUILD_TOP to the path
Change-Id: Ieeeb9fa16352e80b878cddb89b1e7c04b82ab43c
Since cmsdk prebuilts lives in a single master branch,
previous branches that apicheck will fail since they'll
verify against an api that exists in future releases.
Change-Id: I56594d075b89cb1a3d7a606cc9c1699dfffd94cb
TICKET: CYNGNOS-2220
Add ability to `make cmsdk-test-coverage`
to generate an html page which denotes how
much the testing package from vendor/cmsdk
covers public interfaces.
Change-Id: I76556df1822934a6b7e86ebf2ff42e302acff46d
TICKET: CYNGNOS-2189
Maven APK (Why are these in maven anyways?) will crash due to it not
needing to generate a jack file. This wasn't noticed before as brunch
succeeded, however, doing an mmm on one will cause this to fail. This
adds in logic to not generate a jack file for an apk in maven.
Change-Id: I44036bfd51ae3edd9437b153898b419ffc6ba2d6
Prebuilts weren't generating their .jack file when doing an mm or mmm
but would work with a brunch or full make. This makes it so mmm/mm
will properly generate it.
Change-Id: If5ccd1b557ef124b3c57fa09b172ec11caff886e
Now allows you to specify a target module to be
compiled prior to publish via LOCAL_MAVEN_TARGET_MODULE.
This utilizes the definition for intermediates-dir-for on
the target module after it sets an explicit dependency from
remote to local module.
Change-Id: I65b5e07fdcc3368e350b1935ccca381b74dce59e
Dependencies of Maven targets will have to be managed manually. The prebuilt
target that the Maven target is based off of wasn't designed to handle multiple
artifacts per project. Additionally, this target is mainly intended for grabbing
APKs or other standalone blobs, not for pulling in a full jar dependency tree.
If that is your use case, you may want to investigate simply converting your
project to Gradle (or the Maven build system, if you can stomach it).
Change-Id: Iaf48c95c704cfdc85e0074394ff3c7464937e60c
Change-Id: If62e6b1d2ac41730ff2a8d562173abd2cb768f93
Add cmstatusbar service to system server services context
Change-Id: I77c5de75722cc5f36a5326e3da57ab661b89d189
Build Platform resource package.
Change-Id: Id60f66b6db23989db1472a19bcb079b0083f7393
vendor/cm: Lock cm platform library/cmsdk to non-release builds.
Change-Id: I01c1c3fe559d438e28339ce426d7ba7e42724002
* vendor/*/build/core/definitions.mk is automatically sourced by the
build system to load custom macros. Start using this for some
of our own.
* Adds a "uniq" macro to remove duplicates from a list without changing
it's order.
Change-Id: Id5f1eb4b9f81bb31ca0b3d5e74c298b3d105da10