#!/bin/bash #rm -rf out set -e chromium_version="119.0.6045.172" chromium_code="6045172" chromium_rebrand_name="LeOSium" chromium_rebrand_color="#7B3F00" chromium_packageid_webview="com.leos.ium_wv" chromium_packageid_standalone="com.leos.ium" chromium_packageid_libtrichrome="com.leos.ium_tcl" clean=0 gsync=1 supported_archs=(arm arm64 x86 x64) usage() { echo "Usage:" echo " build_webview [ options ]" echo echo " Options:" echo " -a Build specified arch" echo " -c Clean" echo " -h Show this message" echo " -r Specify chromium release" echo " -s Sync" echo echo " Example:" echo " bash 1_sync.sh -s 119.0.6045.172:6045172" echo exit 1 } build() { build_args=$args' target_cpu="'$1'"' code=$chromium_code if [ $1 '==' "arm" ]; then code+=00 elif [ $1 '==' "arm64" ]; then code+=50 #build_args+=' arm_control_flow_integrity="standard"' elif [ $1 '==' "x86" ]; then code+=10 elif [ $1 '==' "x64" ]; then code+=60 fi build_args+=' android_default_version_code="'$code'"' gn gen "out/$1" --args="$build_args" ninja -C out/$1 system_webview_apk chrome_public_apk if [ "$?" -eq 0 ]; then [ "$1" '==' "x64" ] && android_arch="x86_64" || android_arch=$1 cp out/$1/apks/SystemWebView.apk ../prebuilt/$android_arch/webview.apk fi } while getopts ":a:chr:s" opt; do case $opt in a) for arch in ${supported_archs[@]}; do [ "$OPTARG" '==' "$arch" ] && build_arch="$OPTARG" done if [ -z "$build_arch" ]; then echo "Unsupported ARCH: $OPTARG" echo "Supported ARCHs: ${supported_archs[@]}" exit 1 fi ;; c) clean=1 ;; h) usage ;; r) version=(${OPTARG//:/ }) chromium_version=${version[0]} chromium_code=${version[1]} ;; s) gsync=1 ;; :) echo "Option -$OPTARG requires an argument" echo usage ;; \?) echo "Invalid option:-$OPTARG" echo usage ;; esac done shift $((OPTIND-1)) # Add depot_tools to PATH if [ ! -d depot_tools ]; then git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git fi export PATH="$(pwd -P)/depot_tools:$PATH" if [ ! -d src ]; then echo "Initial source download" fetch android yes | gclient sync -D -R -r $chromium_version fi if [ $gsync -eq 1 ]; then echo "Syncing" find src -name index.lock -delete yes | gclient sync -D -R -f -r $chromium_version fi cd src #################################### applyPatchReal() { currentWorkingPatch=$1; firstLine=$(head -n1 "$currentWorkingPatch"); if [[ "$firstLine" = *"Mon Sep 17 00:00:00 2001"* ]] || [[ "$firstLine" = *"Thu Jan 1 00:00:00 1970"* ]]; then if git am "$@"; then git format-patch -1 HEAD --zero-commit --no-signature --output="$currentWorkingPatch"; fi; else git apply "$@"; echo "Applying (as diff): $currentWorkingPatch"; fi; } export -f applyPatchReal; applyPatch() { currentWorkingPatch=$1; if [ -f "$currentWorkingPatch" ]; then if git apply --check "$@" &> /dev/null; then applyPatchReal "$@"; else if git apply --reverse --check "$@" &> /dev/null; then echo "Already applied: $currentWorkingPatch"; else if git apply --check "$@" --3way &> /dev/null; then applyPatchReal "$@" --3way; echo "Applied (as 3way): $currentWorkingPatch"; else echo -e "\e[0;31mERROR: Cannot apply: $currentWorkingPatch\e[0m"; fi; fi; fi; else echo -e "\e[0;31mERROR: Patch doesn't exist: $currentWorkingPatch\e[0m"; fi; } export -f applyPatch; echo 'End sync and standard patches' echo 'icons' cd .. bash 3_icons.sh cd src #