first commit
This commit is contained in:
commit
cd1e91bb99
287 changed files with 86425 additions and 0 deletions
1
rasta_exp/docker/perfchecker/RASTA_VERSION
Normal file
1
rasta_exp/docker/perfchecker/RASTA_VERSION
Normal file
|
@ -0,0 +1 @@
|
|||
provided_build
|
14
rasta_exp/docker/perfchecker/README.md
Normal file
14
rasta_exp/docker/perfchecker/README.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Perfcheck
|
||||
|
||||
- [source (not available)](http://castle.cse.ust.hk/perfchecker/tool_obtain.php)
|
||||
- [paper](https://dl.acm.org/doi/pdf/10.1145/2568225.2568229)
|
||||
- language: Java 6 (works with 7, probably better because dex2jar oldest release is also java 7)
|
||||
- number of years without at least 1 commit since first commit: ?
|
||||
- License: Proprietary
|
||||
|
||||
## Notes
|
||||
|
||||
The binary is only available on demand, so we don't provide it ourself. We can still provide the dockerfile, which will only build if provided with the provided .jar.
|
||||
To make sure the same .jar we used are provided, there checksum is provided and checked in the dockerfile (cf `checksums.sha256`).
|
||||
|
||||
The bytecode to analyse must be convert to java bytecode and loaded as code (with `-cp`), as does the `android.jar`. This means that the supported android version are limited by the java version (`Unsupported major.minor version` errors for android.jar >= sdk 24)
|
68
rasta_exp/docker/perfchecker/provided_build/Dockerfile
Normal file
68
rasta_exp/docker/perfchecker/provided_build/Dockerfile
Normal 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 /
|
4
rasta_exp/docker/perfchecker/provided_build/TODO.md
Normal file
4
rasta_exp/docker/perfchecker/provided_build/TODO.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
- select android.jar?
|
||||
- put everything in timeout
|
||||
- check errors
|
||||
- check success
|
|
@ -0,0 +1,2 @@
|
|||
cb8b09f515b246dd93c52f42cd13b16133735be209b12efa162334b6c4852e0a perfchecker.jar
|
||||
b177a7d137f1cd1c8b41bfc00eef31566947ffbbe84e85f42d194ce643a5b276 soot-2.5.0.jar
|
22
rasta_exp/docker/perfchecker/provided_build/run.sh
Executable file
22
rasta_exp/docker/perfchecker/provided_build/run.sh
Executable 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
|
17
rasta_exp/docker/perfchecker/provided_build/subrun.sh
Executable file
17
rasta_exp/docker/perfchecker/provided_build/subrun.sh
Executable 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
|
Loading…
Add table
Add a link
Reference in a new issue