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;