rasta/rasta_exp/docker/didfail/home_build/Dockerfile
Jean-Marie Mineau cd1e91bb99
first commit
2023-11-16 14:30:24 +01:00

167 lines
11 KiB
Docker

FROM ubuntu:12.04
RUN sed -i -e "s/archive.ubuntu.com/old-releases.ubuntu.com/g" /etc/apt/sources.list
RUN apt-get update && apt-get install -y git time
RUN mkdir -p /workspace/didfail
RUN apt-get update && \
apt-get install -y wget unzip make ant && \
apt-get install -y openjdk-7-jdk openjdk-7-jre-headless && \
apt-get remove -y openjdk-6-jre openjdk-6-jre-headless && \
apt-get install -y gcc-4.6-multilib && \
apt-get install -y lib32stdc++6 && \
apt-get install -y zlib1g-dev:i386
# Download the android-sdk (no sdk-manager on 12.04)
RUN apt-get update && apt-get install -y bsdtar && \
mkdir -p /opt/android-sdk/platforms/android-3 && \
wget -O /opt/android-sdk/platforms/android-3/zip.zip https://dl.google.com/android/repository/android-1.5_r04-linux.zip && \
mkdir -p /opt/android-sdk/platforms/android-4 && \
wget -O /opt/android-sdk/platforms/android-4/zip.zip https://dl.google.com/android/repository/android-1.6_r03-linux.zip && \
mkdir -p /opt/android-sdk/platforms/android-5 && \
wget -O /opt/android-sdk/platforms/android-5/zip.zip https://dl.google.com/android/repository/android-2.0_r01-linux.zip && \
mkdir -p /opt/android-sdk/platforms/android-6 && \
wget -O /opt/android-sdk/platforms/android-6/zip.zip https://dl.google.com/android/repository/android-2.0.1_r01-linux.zip && \
mkdir -p /opt/android-sdk/platforms/android-7 && \
wget -O /opt/android-sdk/platforms/android-7/zip.zip https://dl.google.com/android/repository/android-2.1_r03.zip && \
mkdir -p /opt/android-sdk/platforms/android-8 && \
wget -O /opt/android-sdk/platforms/android-8/zip.zip https://dl.google.com/android/repository/android-2.2_r03.zip && \
mkdir -p /opt/android-sdk/platforms/android-10 && \
wget -O /opt/android-sdk/platforms/android-10/zip.zip https://dl.google.com/android/repository/android-2.3.3_r02.zip && \
mkdir -p /opt/android-sdk/platforms/android-11 && \
wget -O /opt/android-sdk/platforms/android-11/zip.zip https://dl.google.com/android/repository/android-3.0_r02.zip && \
mkdir -p /opt/android-sdk/platforms/android-12 && \
wget -O /opt/android-sdk/platforms/android-12/zip.zip https://dl.google.com/android/repository/android-3.1_r03.zip && \
mkdir -p /opt/android-sdk/platforms/android-13 && \
wget -O /opt/android-sdk/platforms/android-13/zip.zip https://dl.google.com/android/repository/android-3.2_r01.zip && \
mkdir -p /opt/android-sdk/platforms/android-14 && \
wget -O /opt/android-sdk/platforms/android-14/zip.zip https://dl.google.com/android/repository/android-14_r04.zip && \
mkdir -p /opt/android-sdk/platforms/android-15 && \
wget -O /opt/android-sdk/platforms/android-15/zip.zip https://dl.google.com/android/repository/android-15_r05.zip && \
mkdir -p /opt/android-sdk/platforms/android-16 && \
wget -O /opt/android-sdk/platforms/android-16/zip.zip https://dl.google.com/android/repository/android-16_r05.zip && \
mkdir -p /opt/android-sdk/platforms/android-17 && \
wget -O /opt/android-sdk/platforms/android-17/zip.zip https://dl.google.com/android/repository/android-17_r03.zip && \
mkdir -p /opt/android-sdk/platforms/android-18 && \
wget -O /opt/android-sdk/platforms/android-18/zip.zip https://dl.google.com/android/repository/android-18_r03.zip && \
mkdir -p /opt/android-sdk/platforms/android-19 && \
wget -O /opt/android-sdk/platforms/android-19/zip.zip https://dl.google.com/android/repository/android-19_r04.zip && \
mkdir -p /opt/android-sdk/platforms/android-21 && \
wget -O /opt/android-sdk/platforms/android-21/zip.zip https://dl.google.com/android/repository/android-21_r02.zip && \
mkdir -p /opt/android-sdk/platforms/android-22 && \
wget -O /opt/android-sdk/platforms/android-22/zip.zip https://dl.google.com/android/repository/android-22_r02.zip && \
mkdir -p /opt/android-sdk/platforms/android-23 && \
wget -O /opt/android-sdk/platforms/android-23/zip.zip https://dl.google.com/android/repository/platform-23_r03.zip && \
mkdir -p /opt/android-sdk/platforms/android-24 && \
wget -O /opt/android-sdk/platforms/android-24/zip.zip https://dl.google.com/android/repository/platform-24_r02.zip && \
mkdir -p /opt/android-sdk/platforms/android-25 && \
wget -O /opt/android-sdk/platforms/android-25/zip.zip https://dl.google.com/android/repository/platform-25_r03.zip && \
mkdir -p /opt/android-sdk/platforms/android-26 && \
wget -O /opt/android-sdk/platforms/android-26/zip.zip https://dl.google.com/android/repository/platform-26_r02.zip && \
mkdir -p /opt/android-sdk/platforms/android-27 && \
wget -O /opt/android-sdk/platforms/android-27/zip.zip https://dl.google.com/android/repository/platform-27_r03.zip && \
mkdir -p /opt/android-sdk/platforms/android-28 && \
wget -O /opt/android-sdk/platforms/android-28/zip.zip https://dl.google.com/android/repository/platform-28_r06.zip && \
mkdir -p /opt/android-sdk/platforms/android-29 && \
wget -O /opt/android-sdk/platforms/android-29/zip.zip https://dl.google.com/android/repository/platform-29_r05.zip && \
mkdir -p /opt/android-sdk/platforms/android-20 && \
wget -O /opt/android-sdk/platforms/android-20/zip.zip https://dl.google.com/android/repository/android-20_r02.zip && \
mkdir -p /opt/android-sdk/platforms/android-30 && \
wget -O /opt/android-sdk/platforms/android-30/zip.zip https://dl.google.com/android/repository/platform-30_r03.zip && \
mkdir -p /opt/android-sdk/platforms/android-31 && \
wget -O /opt/android-sdk/platforms/android-31/zip.zip https://dl.google.com/android/repository/platform-Sv2_r01.zip && \
mkdir -p /opt/android-sdk/platforms/android-32 && \
wget -O /opt/android-sdk/platforms/android-32/zip.zip https://dl.google.com/android/repository/platform-32_r01.zip && \
mkdir -p /opt/android-sdk/platforms/android-33 && \
wget -O /opt/android-sdk/platforms/android-33/zip.zip https://dl.google.com/android/repository/platform-TiramisuPrivacySandbox_r08.zip && \
/usr/bin/find /opt/android-sdk/platforms/ -name '*.zip' -execdir bsdtar -x --strip-components=1 -f {} \;
# Build jasmin
RUN cd /workspace && \
wget https://github.com/Sable/jasmin/archive/79c79f314297e28037cfa91fa9316325e3a515bb.zip && \
unzip 79c79f314297e28037cfa91fa9316325e3a515bb.zip && \
rm 79c79f314297e28037cfa91fa9316325e3a515bb.zip && \
mv jasmin-79c79f314297e28037cfa91fa9316325e3a515bb/ jasmin && \
cd jasmin && cp ant.settings.template ant.settings && \
sed -i 's/java_cup.jar=.*/java_cup.jar=libs\/java_cup.jar/' ant.settings && \
ant jasmin-jar
# Build hero
RUN cd /workspace && \
wget https://github.com/Sable/heros/archive/5b8180ebf9ba0eb869579425a7adb3d967da8c61.zip && \
unzip 5b8180ebf9ba0eb869579425a7adb3d967da8c61.zip && \
rm 5b8180ebf9ba0eb869579425a7adb3d967da8c61.zip && \
mv heros-5b8180ebf9ba0eb869579425a7adb3d967da8c61/ heros && \
cd heros && cp ant.settings.template ant.settings && \
echo '' >> ant.settings && echo 'slf4j-api.jar=slf4j-api-1.7.5.jar' >> ant.settings && \
echo 'slf4j-simple.jar=slf4j-simple-1.7.5.jar' >> ant.settings && \
ant jar && \
cp -r build/classes bin
# Build soot
RUN cd /workspace && \
wget https://github.com/soot-oss/soot/archive/b4e51615db0effbb2ddc847035664b45756f4f82.zip && \
unzip b4e51615db0effbb2ddc847035664b45756f4f82.zip && \
rm b4e51615db0effbb2ddc847035664b45756f4f82.zip && \
mv soot-b4e51615db0effbb2ddc847035664b45756f4f82/ soot && \
cd soot && cp ant.settings.template ant.settings && mkdir -p ../JastAddExtensions/SootJastAddJ && \
sed -i 's/jasmin.jar=..\/libs\/jasminclasses-custom.jar/jasmin.jar=..\/jasmin\/lib\/jasminclasses-2.2.1.jar/' ant.settings && \
sed -i 's/javacup.jar=..\/libs\/java_cup.jar/javacup.jar=libs\/java_cup.jar/' ant.settings && \
ant fulljar
# Commit specific for nov 2014
RUN cd /workspace && \
wget https://bitbucket.org/wsnavely/soot-infoflow-latest/get/3ff51b5fb9f551aef0b3598585f83fe334c0b99b.tar.gz && \
tar -xvzf 3ff51b5fb9f551aef0b3598585f83fe334c0b99b.tar.gz && \
mv wsnavely-soot-infoflow-latest-3ff51b5fb9f5 soot-infoflow && \
cd soot-infoflow && mv ant.settings.jenkins ant.settings && \
sed -i 's/soot.jar=.*/soot.jar=..\/soot\/lib\/soot-trunk.jar/' ant.settings && \
ant jar && \
cp -r build/classes bin
# Commit specific for nov 2014
RUN cd /workspace && \
wget https://bitbucket.org/wsnavely/soot-infoflow-android-latest/get/31620d664220dfa86de4b5fcc876e866eb41979f.tar.gz && \
tar -xvzf 31620d664220dfa86de4b5fcc876e866eb41979f.tar.gz && rm 31620d664220dfa86de4b5fcc876e866eb41979f.tar.gz && \
mv wsnavely-soot-infoflow-android-latest-31620d664220 soot-infoflow-android && \
cd soot-infoflow-android && mv ant.settings.jenkins ant.settings && \
sed -i 's/soot.jar=.*/soot.jar=..\/soot\/lib\/soot-trunk.jar/' ant.settings && \
sed -i 's/infoflow.jar=.*/infoflow.jar=..\/soot-infoflow\/build\/jar\/soot-infoflow.jar/' ant.settings && \
ant jar && \
cp -r build/classes bin
SHELL ["/bin/bash", "-c"]
RUN cd /workspace/didfail && \
wget -nc http://www.cs.cmu.edu/~wklieber/didfail/epicc-0.1.tgz && \
wget -nc https://github.com/dare-android/platform_dalvik/releases/download/dare-1.1.0/dare-1.1.0-linux.tgz && \
wget -nc http://www.cs.cmu.edu/~wklieber/didfail/platform-16.zip && \
wget -nc http://www.cs.cmu.edu/~wklieber/didfail/platform-19.zip && \
wget -nc http://www.cs.cmu.edu/~wklieber/didfail/toyapps-2014-04-28.zip && \
mkdir epicc && \
tar xzf epicc-0.1.tgz -C epicc && \
tar xzf dare-1.1.0-linux.tgz && \
unzip platform-16.zip && \
unzip platform-19.zip && \
unzip -q toyapps-2014-04-28.zip && \
wget -O didfail.zip https://bitbucket.org/wklieber/didfail/get/99bc1187c822b216fca81237c16225d7540d80dd.zip && \
unzip didfail.zip -d cert && \
mv cert/*/* cert/ && \
cp cert/paths.distrib.sh cert/paths.local.sh && \
sed -i 's/export didfail=.*/export didfail=\/workspace\/didfail/' /workspace/didfail/cert/paths.local.sh && \
sed -i 's/export sdk_platforms=.*/export sdk_platforms=\/opt\/android-sdk\/platforms/' /workspace/didfail/cert/paths.local.sh && \
sed -i 's/export wkspc=.*/export wkspc=\/workspace/' /workspace/didfail/cert/paths.local.sh && \
sed -i 's/export soot_base=.*/export soot_base=\/workspace/' /workspace/didfail/cert/paths.local.sh && \
sed -i 's/export jvm_flags=.*/# export jvm_flags="-Xmx16g -Xss16g"/' /workspace/didfail/cert/paths.local.sh && \
sed -i 's/export max_mem=.*/# export max_mem=17179869184/' /workspace/didfail/cert/paths.local.sh && \
sed -i 's/export max_time=.*/# export max_time=4200/' /workspace/didfail/cert/paths.local.sh && \
source /workspace/didfail/cert/paths.local.sh; \
cd /workspace/didfail/cert/transformApk && make
# sed -i 's/export jvm_flags=.*/export jvm_flags="-Xmx16g -Xss16g"/' /workspace/didfail/cert/paths.local.sh && \
# sed -i 's/export max_mem=.*/export max_mem=17179869184/' /workspace/didfail/cert/paths.local.sh && \
# sed -i 's/export max_time=.*/export max_time=4200/' /workspace/didfail/cert/paths.local.sh && \
COPY run.sh /