diff --git a/README.md b/README.md index d654d91..9dac325 100644 --- a/README.md +++ b/README.md @@ -3,32 +3,28 @@ To get started with building LineageOS GSI, you'll need to get familiar with [Git and Repo](https://source.android.com/source/using-repo.html), and set up your environment by referring to [LineageOS Wiki](https://wiki.lineageos.org/devices/redfin/build) (mainly "Install the build packages") and [How to build a GSI](https://github.com/phhusson/treble_experimentations/wiki/How-to-build-a-GSI%3F). -First, open a new Terminal window, which defaults to your home directory. Clone the modified treble_experimentations repo there: +First, open a new Terminal window, which defaults to your home directory. Create a new working directory for your LineageOS build and navigate to it: - git clone https://github.com/AndyCGYan/treble_experimentations - -Create a new working directory for your LineageOS build and navigate to it: - - mkdir lineage-18.x-build-gsi; cd lineage-18.x-build-gsi + mkdir lineage-19.x-build-gsi; cd lineage-19.x-build-gsi Initialize your LineageOS workspace: - repo init -u https://github.com/LineageOS/android.git -b lineage-18.1 + repo init -u https://github.com/LineageOS/android.git -b lineage-19.1 Clone both this and the patches repos: - git clone https://github.com/AndyCGYan/lineage_build_unified lineage_build_unified -b lineage-18.1 - git clone https://github.com/AndyCGYan/lineage_patches_unified lineage_patches_unified -b lineage-18.1 + git clone https://github.com/AndyCGYan/lineage_build_unified lineage_build_unified -b lineage-19.1 + git clone https://github.com/AndyCGYan/lineage_patches_unified lineage_patches_unified -b lineage-19.1 Finally, start the build script - for example, to build for all supported archs: - bash lineage_build_unified/buildbot_unified.sh treble 32B A64B 64B + bash lineage_build_unified/buildbot_unified.sh treble A64B A64BG 64B 64BG Be sure to update the cloned repos from time to time! --- -Note: A-only and VNDKLite targets are generated from AB images instead of source-built - refer to [sas-creator](https://github.com/AndyCGYan/sas-creator). +Note: VNDKLite and Secure targets are generated from built images instead of source-built - refer to [sas-creator](https://github.com/AndyCGYan/sas-creator). --- diff --git a/apply_patches.sh b/apply_patches.sh new file mode 100644 index 0000000..8cd1d20 --- /dev/null +++ b/apply_patches.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +set -e + +patches="$(readlink -f -- $1)" + +shopt -s nullglob +for project in $(cd $patches; echo *);do + p="$(tr _ / <<<$project |sed -e 's;platform/;;g')" + [ "$p" == build ] && p=build/make + [ "$p" == vendor/partner/gms ] && p=vendor/partner_gms + pushd $p + git clean -fdx; git reset --hard + for patch in $patches/$project/*.patch;do + if git apply --check $patch;then + git am $patch + elif patch -f -p1 --dry-run < $patch > /dev/null;then + #This will fail + git am $patch || true + patch -f -p1 < $patch + git add -u + git am --continue + else + echo "Failed applying $patch" + exit 1 + fi + done + popd +done + diff --git a/buildbot_unified.sh b/buildbot_unified.sh index 09805c9..7434cab 100755 --- a/buildbot_unified.sh +++ b/buildbot_unified.sh @@ -46,8 +46,6 @@ echo\ START=`date +%s` BUILD_DATE="$(date +%Y%m%d)" -WITHOUT_CHECK_API=true -WITH_SU=true prep_build() { echo "Preparing local manifests" @@ -64,21 +62,9 @@ prep_build() { mkdir -p ~/build-output echo "" - repopick -t twelve-monet - repopick -Q "status:open+project:LineageOS/android_packages_apps_AudioFX+branch:lineage-19.0" - repopick -Q "status:open+project:LineageOS/android_packages_apps_Etar+branch:lineage-19.0" - repopick -Q "status:open+project:LineageOS/android_packages_apps_Trebuchet+branch:lineage-19.0+NOT+317783+NOT+318747" + repopick -Q "status:open+project:LineageOS/android_packages_apps_Trebuchet+branch:lineage-19.1" repopick -t twelve-burnin - repopick -t twelve-buttons repopick -t twelve-fingerprint - repopick -t twelve-volume-panel-location - repopick -t twelve-swap-volume-buttons - repopick -t twelve-camera-button - repopick -t twelve-navbar-runtime-toggle - repopick -t twelve-buttons-lights - repopick -t twelve-keyboard-lights - repopick -t twelve-statusbar-brightness-and-qs-slider - repopick -t twelve-powermenu repopick 321337 # Deprioritize important developer notifications repopick 321338 # Allow disabling important developer notifications repopick 321339 # Allow disabling USB notifications @@ -86,7 +72,7 @@ prep_build() { apply_patches() { echo "Applying patch group ${1}" - bash ~/treble_experimentations/apply-patches.sh ./lineage_patches_unified/${1} + bash ./lineage_build_unified/apply_patches.sh ./lineage_patches_unified/${1} } prep_device() { @@ -115,25 +101,25 @@ build_device() { then lunch lineage_arm64-userdebug make -j$(nproc --all) systemimage - mv $OUT/system.img ~/build-output/lineage-19.0-$BUILD_DATE-UNOFFICIAL-arm64$(${PERSONAL} && echo "-personal" || echo "").img + mv $OUT/system.img ~/build-output/lineage-19.1-$BUILD_DATE-UNOFFICIAL-arm64$(${PERSONAL} && echo "-personal" || echo "").img else brunch ${1} - mv $OUT/lineage-*.zip ~/build-output/lineage-19.0-$BUILD_DATE-UNOFFICIAL-${1}$($PERSONAL && echo "-personal" || echo "").zip + mv $OUT/lineage-*.zip ~/build-output/lineage-19.1-$BUILD_DATE-UNOFFICIAL-${1}$($PERSONAL && echo "-personal" || echo "").zip fi } build_treble() { case "${1}" in - ("A64B") TARGET=treble_a64_bvS;; - ("A64BG") TARGET=treble_a64_bgS;; - ("64B") TARGET=treble_arm64_bvS;; - ("64BG") TARGET=treble_arm64_bgS;; + ("A64B") TARGET=a64_bvS;; + ("A64BG") TARGET=a64_bgS;; + ("64B") TARGET=arm64_bvS;; + ("64BG") TARGET=arm64_bgS;; (*) echo "Invalid target - exiting"; exit 1;; esac lunch lineage_${TARGET}-userdebug make installclean make -j$(nproc --all) systemimage - mv $OUT/system.img ~/build-output/lineage-19.0-$BUILD_DATE-UNOFFICIAL-${TARGET}$(${PERSONAL} && echo "-personal" || echo "").img + mv $OUT/system.img ~/build-output/lineage-19.1-$BUILD_DATE-UNOFFICIAL-${TARGET}$(${PERSONAL} && echo "-personal" || echo "").img make vndk-test-sepolicy } @@ -170,6 +156,11 @@ do build_${MODE} ${var} done ls ~/build-output | grep 'lineage' || true +if [ ${MODE} == "treble" ] +then + echo "OTA timestamp: $START" + echo "" +fi END=`date +%s` ELAPSEDM=$(($(($END-$START))/60))