From 50dd651fab8174c97017bd8a0e17771d15b9a0f0 Mon Sep 17 00:00:00 2001 From: Cassiano Aquino <cassianoaquino@me.com> Date: Fri, 4 Oct 2019 23:15:47 +0100 Subject: [PATCH 1/2] move dependencies to binary or deb packages --- builder/pwnagotchi.yml | 79 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 64 insertions(+), 15 deletions(-) diff --git a/builder/pwnagotchi.yml b/builder/pwnagotchi.yml index 515ee70..e091dab 100644 --- a/builder/pwnagotchi.yml +++ b/builder/pwnagotchi.yml @@ -3,8 +3,9 @@ - 127.0.0.1 become: yes vars: - pwn_hostname: "pwnagotchi" - pwn_version: "master" + pwn_hostname: "{{ lookup('env', 'PWN_HOSTNAME') | default('pwnagotchi', true) }}" + pwn_version: "{{ lookup('env', 'PWN_VERSION') | default('master', true) }} " + bettercap_query: "assets[?contains(name, 'armv6l')].browser_download_url" tasks: @@ -57,6 +58,7 @@ - git - build-essential - python3-pip + - unzip - gawk - libopenmpi-dev - libatlas-base-dev @@ -87,6 +89,25 @@ - fonts-dejavu - fonts-dejavu-core - fonts-dejavu-extra + - python3-crypto + - python3-requests + - python3-yaml + - python3-smbus + - python3-inkyphat + - python3-numpy + - python3-pil + - python3-tweepy + - python3-opencv + - python3-termcolor + - python3-astor + - python3-backports.weakref + - python3-keras-applications + - python3-keras-preprocessing + - python3-six + - python3-protobuf + - python3-wrapt + - python3-wheel + - python3-mock - name: configure dphys-swapfile file: @@ -113,16 +134,48 @@ state: started enabled: yes - - name: build bettercap - command: go get -u github.com/bettercap/bettercap - environment: - GOPATH: /root/go - GOROOT: /usr/lib/go + - name: acquire python3 pip target + command: "python3 -c 'import sys;print(sys.path.pop())'" + register: pip_target - - name: install bettercap - copy: - src: /root/go/bin/bettercap - dest: /usr/bin/bettercap + - name: install pip packages that are not architecture tied + pip: + name: "{{ packages }}" + extra_args: "--no-deps --extra-index-url=https://www.piwheels.hostedpi.com/simple/ --prefer-binary --no-cache-dir --platform=armv6l --target={{ pip_target.stdout }}" + vars: + packages: + - absl-py + - enum34 + - gast + - google_pasta + - opt_einsum + - tensorboard + - scapy + - gym + - stable-baselines + - file_read_backwards + - tensorflow_estimator + + - name: install grpcio + command: "pip3 install --no-deps --extra-index-url=https://www.piwheels.hostedpi.com/simple/ --no-cache-dir --prefer-binary --platform=armv6l --only-binary=:all: --target={{ pip_target.stdout }} https://www.piwheels.hostedpi.com/simple/grpcio/grpcio-1.24.1-cp37-cp37m-linux_armv6l.whl" + + - name: install tensorflow + command: "pip3 install --no-deps --extra-index-url=https://www.piwheels.hostedpi.com/simple/ --no-cache-dir --prefer-binary --platform=armv6l --only-binary=:all: --target={{ pip_target.stdout }} https://storage.googleapis.com/tensorflow/raspberrypi/tensorflow-1.14.0-cp34-none-linux_armv6l.whl" + + - name: fetch bettercap release information + uri: + url: https://api.github.com/repos/bettercap/bettercap/releases/latest + return_content: yes + register: bettercap_release + + - name: download and install bettercap + unarchive: + src: "{{ bettercap_release.content | from_json | json_query(bettercap_query) | first }}" + dest: /usr/bin + remote_src: yes + exclude: + - README.md + - LICENSE.md mode: 0755 - name: clone bettercap caplets @@ -151,10 +204,6 @@ path: /tmp/pwnagotchi state: absent - - name: install python modules - pip: - requirements: /root/pwnagotchi/scripts/requirements.txt - - name: create cpuusage script copy: dest: /usr/bin/cpuusage From cc651c3290ff3b2538694b592f1df1ff9556a85e Mon Sep 17 00:00:00 2001 From: Cassiano Aquino <cassianoaquino@me.com> Date: Sat, 5 Oct 2019 17:31:14 +0100 Subject: [PATCH 2/2] many builder fixes and support for serial gadget --- builder/pwnagotchi.yml | 44 +++++++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/builder/pwnagotchi.yml b/builder/pwnagotchi.yml index e091dab..d2263a8 100644 --- a/builder/pwnagotchi.yml +++ b/builder/pwnagotchi.yml @@ -42,6 +42,19 @@ apt: update_cache: yes + - name: remove unecessary apt packages + apt: + name: "{{ packages }}" + state: absent + purge: yes + var: + packages: + - rasberrypi-net-mods + - dhcpcd5 + - triggerhappy + - wpa_supplicant + - nfs-common + - name: upgrade apt distro apt: upgrade: dist @@ -101,13 +114,14 @@ - python3-termcolor - python3-astor - python3-backports.weakref - - python3-keras-applications - - python3-keras-preprocessing + - python3-h5py - python3-six - python3-protobuf - python3-wrapt - python3-wheel - python3-mock + - python3-scipy + - python3-cloudpickle - name: configure dphys-swapfile file: @@ -125,8 +139,10 @@ - apt-daily.service - apt-daily-upgrade.timer - apt-daily-upgrade.service + - wpa_supplicant.service - bluetooth.service - triggerhappy.service + - ifup@wlan0.service - name: enable dphys-swapfile service systemd: @@ -134,33 +150,43 @@ state: started enabled: yes + - name: enable gadget serial port service + systemd: + name: getty@ttyGS0.service + state: started + enabled: yes + - name: acquire python3 pip target command: "python3 -c 'import sys;print(sys.path.pop())'" register: pip_target - - name: install pip packages that are not architecture tied + - name: install pip packages pip: name: "{{ packages }}" extra_args: "--no-deps --extra-index-url=https://www.piwheels.hostedpi.com/simple/ --prefer-binary --no-cache-dir --platform=armv6l --target={{ pip_target.stdout }}" vars: packages: - - absl-py + - inky + - smbus2 + - absl-py>=0.1.6 - enum34 - - gast + - gast==0.2.2 - google_pasta - opt_einsum - - tensorboard - scapy - gym + - keras_applications>=1.0.6 + - keras_preprocessing>=1.0.5 - stable-baselines - file_read_backwards - - tensorflow_estimator + - tensorflow_estimator>=1.14.0,<1.15.0 + - tensorboard>=1.13.0,<1.14.0 - name: install grpcio command: "pip3 install --no-deps --extra-index-url=https://www.piwheels.hostedpi.com/simple/ --no-cache-dir --prefer-binary --platform=armv6l --only-binary=:all: --target={{ pip_target.stdout }} https://www.piwheels.hostedpi.com/simple/grpcio/grpcio-1.24.1-cp37-cp37m-linux_armv6l.whl" - name: install tensorflow - command: "pip3 install --no-deps --extra-index-url=https://www.piwheels.hostedpi.com/simple/ --no-cache-dir --prefer-binary --platform=armv6l --only-binary=:all: --target={{ pip_target.stdout }} https://storage.googleapis.com/tensorflow/raspberrypi/tensorflow-1.14.0-cp34-none-linux_armv6l.whl" + command: "pip3 install --no-deps --extra-index-url=https://www.piwheels.hostedpi.com/simple/ --no-cache-dir --prefer-binary --platform=armv6l --only-binary=:all: --target={{ pip_target.stdout }} https://www.piwheels.org/simple/tensorflow/tensorflow-1.13.1-cp37-none-linux_armv6l.whl" - name: fetch bettercap release information uri: @@ -318,7 +344,7 @@ state: present backup: no regexp: '(.*)$' - line: '\1 modules-load=dwc2,g_ether' + line: '\1 modules-load=dwc2,g_cdc' - name: configure ssh lineinfile: