first commit

This commit is contained in:
Jean-Marie Mineau 2023-11-15 15:59:13 +01:00
commit cd1e91bb99
Signed by: histausse
GPG key ID: B66AEEDA9B645AD2
287 changed files with 86425 additions and 0 deletions

View file

@ -0,0 +1,68 @@
FROM ubuntu:14.04
RUN apt-get update && apt-get install -y time wget unzip openjdk-7-jdk
RUN mkdir /workspace
COPY perfchecker.jar /workspace/
COPY soot-2.5.0.jar /workspace/
COPY checksums.sha256 /workspace/
# Check that the provided perfchecker.jar and soot-2.5.0.jar are the same as the one
# we got
RUN cd /workspace && sha256sum -c checksums.sha256
# Get android.jar s. Note: we don't download android.jar s for version >= 24 because it uses version 52.0 of java bytecode, not supported by java 7
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-20 && \
wget -O /opt/android-sdk/platforms/android-20/zip.zip https://dl.google.com/android/repository/android-20_r02.zip && \
/usr/bin/find /opt/android-sdk/platforms/ -name '*.zip' -execdir bsdtar -x --strip-components=1 -f {} \;
RUN cd /workspace/ && \
wget http://downloads.sourceforge.net/project/dex2jar/dex2jar-2.0-20140818.061505-10.zip && \
unzip dex2jar-2.0-20140818.061505-10.zip && rm dex2jar-2.0-20140818.061505-10.zip && \
mv dex2jar-2.0-SNAPSHOT dex2jar && \
chmod +x /workspace/dex2jar/*
ENV PATH="/workspace/dex2jar:$PATH"
COPY run.sh /
COPY subrun.sh /

View file

@ -0,0 +1,4 @@
- select android.jar?
- put everything in timeout
- check errors
- check success

View file

@ -0,0 +1,2 @@
cb8b09f515b246dd93c52f42cd13b16133735be209b12efa162334b6c4852e0a perfchecker.jar
b177a7d137f1cd1c8b41bfc00eef31566947ffbbe84e85f42d194ce643a5b276 soot-2.5.0.jar

View file

@ -0,0 +1,22 @@
#!/usr/bin/env bash
APK_FILENAME=$1
export TIME="time: %e
kernel-cpu-time: %S
user-cpu-time: %U
max-rss-mem: %M
avg-rss-mem: %t
avg-total-mem: %K
page-size: %Z
nb-major-page-fault: %F
nb-minor-page-fault: %R
nb-fs-input: %I
nb-fs-output: %O
nb-socket-msg-received: %r
nb-socket-msg-sent: %s
nb-signal-delivered: %k
exit-status: %x"
/usr/bin/time -o /mnt/report -q /usr/bin/timeout --kill-after=20s ${TIMEOUT} /subrun.sh ${APK_FILENAME} > /mnt/stdout 2> /mnt/stderr

View file

@ -0,0 +1,17 @@
#!/usr/bin/env bash
APK_FILENAME=$1
ANDROID_JARS='/opt/android-sdk/platforms/android-10/android.jar:/opt/android-sdk/platforms/android-11/android.jar:/opt/android-sdk/platforms/android-12/android.jar:/opt/android-sdk/platforms/android-13/android.jar:/opt/android-sdk/platforms/android-14/android.jar:/opt/android-sdk/platforms/android-15/android.jar:/opt/android-sdk/platforms/android-3/android.jar:/opt/android-sdk/platforms/android-16/android.jar:/opt/android-sdk/platforms/android-17/android.jar:/opt/android-sdk/platforms/android-18/android.jar:/opt/android-sdk/platforms/android-19/android.jar:/opt/android-sdk/platforms/android-20/android.jar:/opt/android-sdk/platforms/android-4/android.jar:/opt/android-sdk/platforms/android-21/android.jar:/opt/android-sdk/platforms/android-5/android.jar:/opt/android-sdk/platforms/android-22/android.jar:/opt/android-sdk/platforms/android-6/android.jar:/opt/android-sdk/platforms/android-23/android.jar:/opt/android-sdk/platforms/android-7/android.jar:/opt/android-sdk/platforms/android-8/android.jar'
cd /mnt
d2j-dex2jar.sh ${APK_FILENAME}
JAR_FILENAME=$(echo ${APK_FILENAME} | sed 's/.apk/-dex2jar.jar/')
mkdir /mnt/classes
mv "/mnt/$JAR_FILENAME" /mnt/classes
cd /mnt/classes
unzip ${JAR_FILENAME}
rm ${JAR_FILENAME}
echo -e '1\ny\n/mnt/classes/' | java ${JAVA_PARAM} -cp "/workspace/perfchecker.jar:/workspace/soot-2.5.0.jar:${ANDROID_JARS}:/mnt/classes" androidPerf.CheckerMain