1*77f0f79fSYuki Okushi#!/usr/bin/env bash 2*77f0f79fSYuki Okushi 32fd7f7a4SMarco A L Barbosaset -ex 42fd7f7a4SMarco A L Barbosa 52fd7f7a4SMarco A L BarbosaURL=https://dl.google.com/android/repository/sys-img/android 62fd7f7a4SMarco A L Barbosa 72fd7f7a4SMarco A L Barbosamain() { 837a0bd32Sgnzlbg local arch="${1}" 937a0bd32Sgnzlbg local name="${2}" 102fd7f7a4SMarco A L Barbosa local dest=/system 1137a0bd32Sgnzlbg local td 1237a0bd32Sgnzlbg td="$(mktemp -d)" 132fd7f7a4SMarco A L Barbosa 142fd7f7a4SMarco A L Barbosa apt-get install --no-install-recommends e2tools 152fd7f7a4SMarco A L Barbosa 1637a0bd32Sgnzlbg pushd "${td}" 17b46b6e2eSTom Parker-Shemilt curl --retry 5 -O "${URL}/${name}" 1837a0bd32Sgnzlbg unzip -q "${name}" 192fd7f7a4SMarco A L Barbosa 2037a0bd32Sgnzlbg local system 2137a0bd32Sgnzlbg system="$(find . -name system.img)" 2237a0bd32Sgnzlbg mkdir -p ${dest}/{bin,lib,lib64} 232fd7f7a4SMarco A L Barbosa 242fd7f7a4SMarco A L Barbosa # Extract android linker and libraries to /system 252fd7f7a4SMarco A L Barbosa # This allows android executables to be run directly (or with qemu) 2637a0bd32Sgnzlbg if [ "${arch}" = "x86_64" ] || [ "${arch}" = "arm64" ]; then 2737a0bd32Sgnzlbg e2cp -p "${system}:/bin/linker64" "${dest}/bin/" 2837a0bd32Sgnzlbg e2cp -p "${system}:/lib64/libdl.so" "${dest}/lib64/" 2937a0bd32Sgnzlbg e2cp -p "${system}:/lib64/libc.so" "${dest}/lib64/" 3037a0bd32Sgnzlbg e2cp -p "${system}:/lib64/libm.so" "${dest}/lib64/" 312fd7f7a4SMarco A L Barbosa else 3237a0bd32Sgnzlbg e2cp -p "${system}:/bin/linker" "${dest}/bin/" 3337a0bd32Sgnzlbg e2cp -p "${system}:/lib/libdl.so" "${dest}/lib/" 3437a0bd32Sgnzlbg e2cp -p "${system}:/lib/libc.so" "${dest}/lib/" 3537a0bd32Sgnzlbg e2cp -p "${system}:/lib/libm.so" "${dest}/lib/" 362fd7f7a4SMarco A L Barbosa fi 372fd7f7a4SMarco A L Barbosa 382fd7f7a4SMarco A L Barbosa # clean up 392fd7f7a4SMarco A L Barbosa apt-get purge --auto-remove -y e2tools 402fd7f7a4SMarco A L Barbosa 412fd7f7a4SMarco A L Barbosa popd 422fd7f7a4SMarco A L Barbosa 4337a0bd32Sgnzlbg rm -rf "${td}" 442fd7f7a4SMarco A L Barbosa} 452fd7f7a4SMarco A L Barbosa 462fd7f7a4SMarco A L Barbosamain "${@}" 47