You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
117 lines
3.1 KiB
117 lines
3.1 KiB
#!/bin/bash
|
|
set -e
|
|
|
|
manual_mode=false
|
|
version=3.18
|
|
|
|
while getopts "mv:" opt; do
|
|
case $opt in
|
|
m) manual_mode=true
|
|
;;
|
|
v) version=$OPTARG
|
|
;;
|
|
?) echo "Usage: $0 [-m] [-v version]"
|
|
echo " -m: manually specify build numbers"
|
|
echo " -v: specify kernel version [default 3.10]"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [[ "$version" != "3.10" && "$version" != "3.18" ]]
|
|
then
|
|
echo "kernel version must be 3.10 or 3.18"
|
|
exit 1
|
|
fi
|
|
|
|
abcmd_lkgb='/google/data/ro/projects/android/ab lkgb --target kernel --branch'
|
|
fetch_artifact='/google/data/ro/projects/android/fetch_artifact --request_timeout_secs 60 --target kernel'
|
|
|
|
branch_prefix='kernel-n-dev-android-goldfish-'
|
|
|
|
# kernel_img[branch]="build_server_output local_file_name"
|
|
declare -A kernel_img
|
|
|
|
kernel_img[3.10-arm]="zImage arm/3.10/kernel-qemu"
|
|
kernel_img[3.10-arm64]="Image arm64/3.10/kernel-qemu"
|
|
kernel_img[3.10-mips]="vmlinux mips/3.10/kernel-qemu"
|
|
kernel_img[3.10-mips64]="vmlinux mips64/3.10/kernel-qemu"
|
|
kernel_img[3.10-x86]="bzImage x86/3.10/kernel-qemu"
|
|
kernel_img[3.10-x86_64]="bzImage x86_64/3.10/kernel-qemu"
|
|
kernel_img[3.10-x86_64-qemu1]="bzImage x86_64/kernel-qemu"
|
|
kernel_img[3.18-arm]="zImage arm/3.18/kernel-qemu2"
|
|
kernel_img[3.18-arm64]="Image arm64/3.18/kernel-qemu2"
|
|
kernel_img[3.18-mips]="vmlinux mips/3.18/kernel-qemu2"
|
|
kernel_img[3.18-mips64]="vmlinux mips64/3.18/kernel-qemu2"
|
|
kernel_img[3.18-x86]="bzImage x86/3.18/kernel-qemu2"
|
|
kernel_img[3.18-x86_64]="bzImage x86_64/3.18/kernel-qemu2"
|
|
|
|
printf "Upgrade emulator kernels $version\n\n" > emu_kernel.commitmsg
|
|
|
|
for key in "${!kernel_img[@]}"
|
|
do
|
|
if [[ $key != $version* ]]
|
|
then
|
|
continue
|
|
fi
|
|
|
|
branch=$branch_prefix$key
|
|
|
|
# Find the latest build by searching for highest build number since
|
|
# build server doesn't provide the "latest" link.
|
|
build=`$abcmd_lkgb $branch | cut -d' ' -f3 | head -n 1`
|
|
|
|
if $manual_mode
|
|
then
|
|
read -p "Enter build number for $branch: [$build]" input
|
|
build="${input:-$build}"
|
|
fi
|
|
|
|
echo Fetching build $build from branch $branch
|
|
|
|
# file_info[0] - kernel image on build server
|
|
# file_info[1] - kernel image in local tree
|
|
file_info=(${kernel_img[$key]})
|
|
|
|
$fetch_artifact --bid $build ${file_info[0]} ${file_info[1]}
|
|
|
|
git add ${file_info[1]}
|
|
|
|
printf "$branch - build: $build\n" >> emu_kernel.commitmsg
|
|
done
|
|
|
|
last_commit=`git log | \
|
|
sed -rn "s/.*Upgrade $version kernel images to ([a-z0-9]+).*/\1/p" | \
|
|
head -n 1`
|
|
|
|
if [ ! -d goldfish_cache ]
|
|
then
|
|
mkdir goldfish_cache
|
|
git clone https://android.googlesource.com/kernel/goldfish goldfish_cache
|
|
fi
|
|
|
|
pushd goldfish_cache
|
|
|
|
git fetch origin
|
|
|
|
git checkout remotes/origin/android-goldfish-$version
|
|
tot_commit=`git log --oneline -1 | cut -d' ' -f1`
|
|
printf "\nUpgrade $version kernel images to ${tot_commit}\n" >> ../emu_kernel.commitmsg
|
|
|
|
line_count=`git log --oneline HEAD...${last_commit} | wc -l`
|
|
if [ "$line_count" -gt "6" ]
|
|
then
|
|
git log --oneline --no-decorate -3 >> ../emu_kernel.commitmsg
|
|
echo "..." >> ../emu_kernel.commitmsg
|
|
git log --oneline --no-decorate HEAD...${last_commit} | tail -n 3 >> ../emu_kernel.commitmsg
|
|
else
|
|
git log --oneline --no-decorate HEAD...${last_commit} >> ../emu_kernel.commitmsg
|
|
fi
|
|
|
|
popd
|
|
|
|
git commit -t emu_kernel.commitmsg
|
|
|
|
rm emu_kernel.commitmsg
|
|
|