* Use the builtin approach to decode text output
* Drop unnecessary system shell usage
* Use subprocess.run when we don't need its stdout
Change-Id: Ibb2aeae442b5e97828fe4e0eb783e6512288d245
* Recursively extend the fallback branches mechanism to any
layer of dependencies.
* Instead of forcing a dependency to use the fallback branch,
check for each repository if the current one is available.
* Always write the revision in the manifest entry
Change-Id: I37a4aa094de51e9f58e72851f3bc9dc4767dd79b
* 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
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
* 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
* 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
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
* zip stores timestamp for all included files. The timestamps of dex
files are different across different runs, result in inconsistent
checksum of output apk/jar.
* Workaround the issue by using fixed timestamp for dex files.
Change-Id: I21f3a7e32cdfdb07c5f5c140df2e797efd4a8005
.repo/manifest.xml is no longer a symlink becuase apparently windows
developers need to use repo and windows needs admin for symlinks.
https: //gerrit.googlesource.com/git-repo/+/a269b1cb9dc21dfd598bfea3766206b606ad4589
Change-Id: I88ea0295133959136d7214f13a76b66d89dc88d4
This fixes parsing when arguments contain colons, a typical usecase
would be:
-vendor/app/TimeService/TimeService.apk;:timeservice_app_cert
Change-Id: I7500ae09632632ddc10734d9b1df267e28286b67
This is very subtly broken: we look for the string 'Change-Id:'
in an array of byte strings. Fix this by decoding the git output
to utf-8 strings.
Change-Id: I708ad0adacb61c89bfba0fd88eeb2e37648317af
* When some projects are declared in the manifests with specific
changes (revision="refs/changes/../....../."), the path
detection does not work, while most cases have a unique paths
* Allow projects with unique branches to select their paths
upon repopick with a warning about the selection
Change-Id: Ic873d69f57c78f233db3d0de4ebd529f896799ea
* COMMON_JAVA_PACKAGE_SUFFIX for jar
* COMMON_ANDROID_PACKAGE_SUFFIX for apk
Change-Id: I812405dac12ef7183985c66a6e43b0ea5f85989c
Signed-off-by: Mohd Faraz <mohd.faraz.abc@gmail.com>
Switch to blueprint on:
- shared objects
- $partiton/etc/ files
- JARs
- executable binaries and scripts
- APKs
Only /sbin binaries are still in Android.mk because blueprint
doesn't handle sbin installation yet
Change-Id: I1dfd7e8bb575367b2a7fa9e333c4c6fa3aa68180
Some devices put stuff on /system, /system/vendor or even
/system/vendor/odm. Search for these paths too when generating
TARGET_COPY_OUT_$partition variables.
Change-Id: Ie2c087e57aaca02d5ea93f290d5fc50d1315a600
With support for 4 independent partitions now, we seriously
need to start putting /system blobs in their own directory.
Add support for file lists with system/ prefixes while
maintaining support for old file lists without it.
Also, TARGET_COPY_OUT_SYSTEM is a thing now, and all devices,
regardless of treble or not, set TARGET_COPY_OUT_$partition
so let's get rid of the treble compat option and default it
to true.
Change-Id: I5b798d293768d7c1e16db3ba01e2de3e083088d7
* ./../../xiaomi/sm6150-common/../../../vendor/lineage/build/tools/extract_utils.sh: line 1: /#!/bin/bash: No such file or directory.
Signed-off-by: PIPIPIG233666 <2212848813@qq.com>
Change-Id: I178f745d4ecb818c38706ff100611df19221065d
* This prevents from seeing stuff like
"b'frameworks: Add unlinked ringtone and notification volumes'"
when using python3 as default.
Change-Id: Ie1fa85681b648edcee65680d784da4dff1779616