1FROM ubuntu:24.10 2 3RUN dpkg --add-architecture i386 4RUN apt-get update 5RUN apt-get install -y --no-install-recommends libc6-dev gcc 6RUN apt-get install -y --no-install-recommends \ 7 file \ 8 wget \ 9 ca-certificates \ 10 python3 \ 11 unzip \ 12 expect \ 13 openjdk-8-jre \ 14 libstdc++6:i386 \ 15 libpulse0 16 17WORKDIR /android/ 18COPY android* /android/ 19 20ENV ANDROID_ARCH=aarch64 21ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools 22 23RUN /android/android-install-ndk.sh 24RUN /android/android-install-sdk.sh $ANDROID_ARCH 25RUN mv /root/.android /tmp 26RUN chmod 777 -R /tmp/.android 27RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/* 28 29ENV PATH=$PATH:/rust/bin \ 30 CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android28-clang \ 31 CARGO_TARGET_AARCH64_LINUX_ANDROID_RUNNER=/tmp/runtest \ 32 CC_aarch64_linux_android=aarch64-linux-android28-clang \ 33 AR_aarch64_linux_android=llvm-ar \ 34 HOME=/tmp 35 36ADD runtest-android.rs /tmp/runtest.rs 37ENTRYPOINT [ \ 38 "bash", \ 39 "-c", \ 40 # set SHELL so android can detect a 64bits system, see 41 # http://stackoverflow.com/a/41789144 42 "SHELL=/bin/dash /android/sdk/emulator/emulator @aarch64 -no-window & \ 43 rustc /tmp/runtest.rs -o /tmp/runtest && \ 44 exec \"$@\"", \ 45 "--" \ 46] 47