#!/usr/bin/env bash set -exo pipefail version="$1" # (e.g. "20.0") device="$2" # (e.g. "sailfish") if [ "$2" = "" ]; then echo "Missing arguments" exit 1 fi cd "DivestOS/Build/LineageOS-$version" # Download repo init -u https://github.com/LineageOS/android.git -b "lineage-$version" --git-lfs repo forall --ignore-missing -vc "git reset --hard" repo sync --fail-fast # Prepare workspace if [ "$(echo "$version < 20.0" | bc -l)" = 1 ]; then virtualenv venv --python=python2 fi source ../../Scripts/init.sh # Patch Workspace so keys can be generated. resetWorkspace rm -rf packages/apps/Fennec_DOS-Shim/ vendor/divested/ vendor/fdroid_prebuilt/ packages/apps/SupportDivestOS/ rm -rf out patchWorkspace # Generate signing keys if [ "$(echo "$version > 20.0" | bc -l)" = 1 ]; then awk -i inplace '!/enforce-product-packages-exist-internal/' vendor/lineage/config/common.mk fi source build/envsetup.sh breakfast "lineage_$device-user" make -j20 generate_verity_key sh "$DOS_WORKSPACE_ROOT/Scripts/Generate_Signing_Keys.sh" "$device" mv -nv "$DOS_SIGNING_KEYS/NEW/"* "$DOS_SIGNING_KEYS/" # Patch Workspace resetWorkspace rm -rf packages/apps/Fennec_DOS-Shim/ vendor/divested/ vendor/fdroid_prebuilt/ packages/apps/SupportDivestOS/ rm -rf out successpattern="\[SCRIPT COMPLETE\]" successes=$(patchWorkspace |& tee /dev/stderr | grep -c "$successpattern") # Verify the changes applied expected=$(grep -c "$successpattern" "$DOS_WORKSPACE_ROOT/Logs/patchWorkspace-LineageOS-$version.log") if [ "$successes" != "$expected" ]; then echo "Expected $expected '[SCRIPT COMPLETE]' lines but only found $successes." exit 1 fi # Build buildDevice "$device"