137a0bd32Sgnzlbg#!/usr/bin/env bash 237a0bd32Sgnzlbg 32fd7f7a4SMarco A L Barbosa# Copyright 2017 The Rust Project Developers. See the COPYRIGHT 42fd7f7a4SMarco A L Barbosa# file at the top-level directory of this distribution and at 52fd7f7a4SMarco A L Barbosa# http://rust-lang.org/COPYRIGHT. 62fd7f7a4SMarco A L Barbosa# 72fd7f7a4SMarco A L Barbosa# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or 82fd7f7a4SMarco A L Barbosa# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 92fd7f7a4SMarco A L Barbosa# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your 102fd7f7a4SMarco A L Barbosa# option. This file may not be copied, modified, or distributed 112fd7f7a4SMarco A L Barbosa# except according to those terms. 122fd7f7a4SMarco A L Barbosa 132fd7f7a4SMarco A L Barbosaset -ex 142fd7f7a4SMarco A L Barbosa 152fd7f7a4SMarco A L BarbosaURL=https://dl.google.com/android/repository/sys-img/android 162fd7f7a4SMarco A L Barbosa 172fd7f7a4SMarco A L Barbosamain() { 1837a0bd32Sgnzlbg local arch="${1}" 1937a0bd32Sgnzlbg local name="${2}" 202fd7f7a4SMarco A L Barbosa local dest=/system 2137a0bd32Sgnzlbg local td 2237a0bd32Sgnzlbg td="$(mktemp -d)" 232fd7f7a4SMarco A L Barbosa 242fd7f7a4SMarco A L Barbosa apt-get install --no-install-recommends e2tools 252fd7f7a4SMarco A L Barbosa 2637a0bd32Sgnzlbg pushd "${td}" 27*b46b6e2eSTom Parker-Shemilt curl --retry 5 -O "${URL}/${name}" 2837a0bd32Sgnzlbg unzip -q "${name}" 292fd7f7a4SMarco A L Barbosa 3037a0bd32Sgnzlbg local system 3137a0bd32Sgnzlbg system="$(find . -name system.img)" 3237a0bd32Sgnzlbg mkdir -p ${dest}/{bin,lib,lib64} 332fd7f7a4SMarco A L Barbosa 342fd7f7a4SMarco A L Barbosa # Extract android linker and libraries to /system 352fd7f7a4SMarco A L Barbosa # This allows android executables to be run directly (or with qemu) 3637a0bd32Sgnzlbg if [ "${arch}" = "x86_64" ] || [ "${arch}" = "arm64" ]; then 3737a0bd32Sgnzlbg e2cp -p "${system}:/bin/linker64" "${dest}/bin/" 3837a0bd32Sgnzlbg e2cp -p "${system}:/lib64/libdl.so" "${dest}/lib64/" 3937a0bd32Sgnzlbg e2cp -p "${system}:/lib64/libc.so" "${dest}/lib64/" 4037a0bd32Sgnzlbg e2cp -p "${system}:/lib64/libm.so" "${dest}/lib64/" 412fd7f7a4SMarco A L Barbosa else 4237a0bd32Sgnzlbg e2cp -p "${system}:/bin/linker" "${dest}/bin/" 4337a0bd32Sgnzlbg e2cp -p "${system}:/lib/libdl.so" "${dest}/lib/" 4437a0bd32Sgnzlbg e2cp -p "${system}:/lib/libc.so" "${dest}/lib/" 4537a0bd32Sgnzlbg e2cp -p "${system}:/lib/libm.so" "${dest}/lib/" 462fd7f7a4SMarco A L Barbosa fi 472fd7f7a4SMarco A L Barbosa 482fd7f7a4SMarco A L Barbosa # clean up 492fd7f7a4SMarco A L Barbosa apt-get purge --auto-remove -y e2tools 502fd7f7a4SMarco A L Barbosa 512fd7f7a4SMarco A L Barbosa popd 522fd7f7a4SMarco A L Barbosa 5337a0bd32Sgnzlbg rm -rf "${td}" 542fd7f7a4SMarco A L Barbosa} 552fd7f7a4SMarco A L Barbosa 562fd7f7a4SMarco A L Barbosamain "${@}" 57