98 lines
2.6 KiB
Docker
98 lines
2.6 KiB
Docker
|
FROM ubuntu:22.04
|
||
|
|
||
|
ARG MAX_THREADS=1
|
||
|
ARG WS_VER=3.4.0
|
||
|
ARG MI_BRANCH=ubuntu22-py310
|
||
|
ARG WIRESHARK_URL=http://www.mobileinsight.net/wireshark-${WS_VER}-rbc-dissector.tar.xz
|
||
|
ADD 00-cpp_compat.patch /build/00-cpp_compat.patch
|
||
|
|
||
|
# Run apt update
|
||
|
RUN set -ex; \
|
||
|
export DEBIAN_FRONTEND=noninteractive; \
|
||
|
apt-get update; \
|
||
|
apt-get upgrade -y; \
|
||
|
apt-get install -y \
|
||
|
git \
|
||
|
python3 \
|
||
|
python3-pip \
|
||
|
python3-wxgtk4.0 \
|
||
|
python3-matplotlib \
|
||
|
cmake \
|
||
|
pkg-config \
|
||
|
wget \
|
||
|
libglib2.0-dev \
|
||
|
bison \
|
||
|
flex \
|
||
|
libpcap-dev \
|
||
|
libgcrypt-dev \
|
||
|
qtbase5-dev \
|
||
|
qtchooser \
|
||
|
qt5-qmake \
|
||
|
qtbase5-dev-tools \
|
||
|
qttools5-dev \
|
||
|
qtmultimedia5-dev \
|
||
|
libqt5svg5-dev \
|
||
|
libc-ares-dev \
|
||
|
libsdl2-mixer-2.0-0 \
|
||
|
libsdl2-image-2.0-0 \
|
||
|
libsdl2-2.0-0;
|
||
|
|
||
|
# Download resources
|
||
|
RUN set -ex; \
|
||
|
mkdir -p /build; \
|
||
|
cd /build; \
|
||
|
wget "$WIRESHARK_URL" -nv -O "wireshark-$WS_VER.tar.xz"; \
|
||
|
tar -xf "wireshark-$WS_VER.tar.xz"; \
|
||
|
git clone "https://github.com/mobile-insight/mobileinsight-core.git"; \
|
||
|
git -C mobileinsight-core checkout "$MI_BRANCH";
|
||
|
|
||
|
# Compile and install wireshark
|
||
|
RUN set -ex; \
|
||
|
cd "/build/wireshark-$WS_VER"; \
|
||
|
patch epan/epan.h < /build/00-cpp_compat.patch; \
|
||
|
cmake -DBUILD_wireshark=OFF .; \
|
||
|
make -j "$MAX_THREADS"; \
|
||
|
make install; \
|
||
|
ldconfig;
|
||
|
|
||
|
# Compile and install Wireshark dissector
|
||
|
Run set -ex; \
|
||
|
cd /build/mobileinsight-core/ws_dissector; \
|
||
|
g++ ws_dissector.cpp packet-aww.cpp -o ws_dissector \
|
||
|
$(pkg-config --libs --cflags glib-2.0) \
|
||
|
-I"/build/wireshark-$WS_VER" \
|
||
|
-L"/usr/local/lib" \
|
||
|
-lwireshark \
|
||
|
-lwsutil \
|
||
|
-lwiretap; \
|
||
|
strip ws_dissector; \
|
||
|
install -Dm 755 ws_dissector /usr/local/bin/ws_dissector;
|
||
|
|
||
|
# Compile and install MobileInsight
|
||
|
Run set -ex; \
|
||
|
cd /build/mobileinsight-core; \
|
||
|
pip3 install pyserial; \
|
||
|
python3 setup.py install;
|
||
|
|
||
|
# Install MobileInsight GUI
|
||
|
Run set -ex; \
|
||
|
cd /build/mobileinsight-core; \
|
||
|
mkdir -p /usr/local/share/mobileinsight; \
|
||
|
cp -r gui/* /usr/local/share/mobileinsight;\
|
||
|
ln -s /usr/local/share/mobileinsight/mi-gui /usr/local/bin/mi-gui;
|
||
|
|
||
|
# Install examples
|
||
|
Run set -ex; \
|
||
|
cd /build/mobileinsight-core; \
|
||
|
cp -r examples /opt/mobileinsight-examples;
|
||
|
|
||
|
# Link python3 to python
|
||
|
Run set -ex; \
|
||
|
cd /usr/bin; \
|
||
|
ln -s python3 python;
|
||
|
|
||
|
# Cleanup
|
||
|
Run set -ex; \
|
||
|
apt-get autoclean -y; \
|
||
|
rm -rf /build;
|