1616
1717set -o errexit -o nounset -o pipefail
1818
19+ arch=$( uname -m)
20+ [ " ${arch} " = " x86_64" ] && arch=amd64
21+ [ " ${arch} " = " aarch64" ] && arch=arm64
22+
1923sudo apt-get update
2024sudo apt-get upgrade -y
2125
2226# Avoids blocking "Default mirror not found" popup prompt when pbuilder is installed.
2327echo " pbuilder pbuilder/mirrorsite string https://deb.debian.org/debian" | sudo debconf-set-selections
2428
25- kmodver_begin=$( sudo chroot /mnt/image/ /usr/bin/dpkg -s linux-image-cloud-amd64 | grep ^Depends: | \
29+ kmodver_begin=$( sudo chroot /mnt/image/ /usr/bin/dpkg -s linux-image-cloud-${arch} | grep ^Depends: | \
2630 cut -d: -f2 | cut -d" " -f2 | sed ' s/linux-image-//' )
2731echo " IMAGE STARTS WITH KERNEL: ${kmodver_begin} "
2832
@@ -43,14 +47,23 @@ sudo chroot /mnt/image /usr/bin/apt purge -y unattended-upgrades
4347# JDK it's not required to launch a CF device. It's required to run
4448# some of Tradefed tests that are run from the CF host side like
4549# some CF gfx tests, adb tests, etc.
46- sudo chroot /mnt/image /usr/bin/wget -P /usr/java https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz
47- # https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz.sha256
48- export JDK21_SHA256SUM=a2def047a73941e01a73739f92755f86b895811afb1f91243db214cff5bdac3f
49- if ! echo " $JDK21_SHA256SUM /usr/java/openjdk-21.0.2_linux-x64_bin.tar.gz" | sudo chroot /mnt/image /usr/bin/sha256sum -c ; then
50+ if [[ " ${arch} " == " amd64" ]]; then
51+ JDK_ARCH=x64
52+ # https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-x64_bin.tar.gz.sha256
53+ export JDK21_SHA256SUM=a2def047a73941e01a73739f92755f86b895811afb1f91243db214cff5bdac3f
54+ elif [[ " ${arch} " == " arm64" ]]; then
55+ JDK_ARCH=aarch64
56+ # https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-aarch64_bin.tar.gz.sha256
57+ export JDK21_SHA256SUM=08db1392a48d4eb5ea5315cf8f18b89dbaf36cda663ba882cf03c704c9257ec2
58+ else
59+ echo " ** ERROR: UNEXEPCTED ARCH **" ; exit 1;
60+ fi
61+ sudo chroot /mnt/image /usr/bin/wget -P /usr/java " https://download.java.net/java/GA/jdk21.0.2/f2283984656d49d69e91c558476027ac/13/GPL/openjdk-21.0.2_linux-${JDK_ARCH} _bin.tar.gz"
62+ if ! echo " $JDK21_SHA256SUM /usr/java/openjdk-21.0.2_linux-${JDK_ARCH} _bin.tar.gz" | sudo chroot /mnt/image /usr/bin/sha256sum -c ; then
5063 echo " ** ERROR: KEY MISMATCH **" ; popd > /dev/null; exit 1;
5164fi
52- sudo chroot /mnt/image /usr/bin/tar xvzf /usr/java/openjdk-21.0.2_linux-x64_bin .tar.gz -C /usr/java
53- sudo chroot /mnt/image /usr/bin/rm /usr/java/openjdk-21.0.2_linux-x64_bin .tar.gz
65+ sudo chroot /mnt/image /usr/bin/tar xvzf " /usr/java/openjdk-21.0.2_linux-${JDK_ARCH} _bin .tar.gz" -C /usr/java
66+ sudo chroot /mnt/image /usr/bin/rm " /usr/java/openjdk-21.0.2_linux-${JDK_ARCH} _bin .tar.gz"
5467ENV_JAVA_HOME=' /usr/java/jdk-21.0.2'
5568echo " JAVA_HOME=$ENV_JAVA_HOME " | sudo chroot /mnt/image /usr/bin/tee -a /etc/environment > /dev/null
5669echo " JAVA_HOME=$ENV_JAVA_HOME " | sudo chroot /mnt/image /usr/bin/tee -a /etc/profile > /dev/null
@@ -91,7 +104,7 @@ sudo tee /mnt/image/etc/sysctl.d/80-nsjail.conf >/dev/null <<EOF
91104kernel.unprivileged_userns_clone=1
92105EOF
93106
94- kmodver_end=$( sudo chroot /mnt/image/ /usr/bin/dpkg -s linux-image-cloud-amd64 | grep ^Depends: | \
107+ kmodver_end=$( sudo chroot /mnt/image/ /usr/bin/dpkg -s linux-image-cloud-${arch} | grep ^Depends: | \
95108 cut -d: -f2 | cut -d" " -f2 | sed ' s/linux-image-//' )
96109echo " IMAGE ENDS WITH KERNEL: ${kmodver_end} "
97110
0 commit comments