Skip to content

Commit

Permalink
fix: the auto-update plugin now also installs launchers and service f…
Browse files Browse the repository at this point in the history
…iles via setup.py (closes #470)
  • Loading branch information
evilsocket committed Oct 31, 2019
1 parent 279d885 commit 783ac61
Show file tree
Hide file tree
Showing 10 changed files with 73 additions and 62 deletions.
2 changes: 2 additions & 0 deletions builder/data/etc/network/interfaces.d/eth0-cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
allow-hotplug eth0
iface eth0 inet dhcp
2 changes: 2 additions & 0 deletions builder/data/etc/network/interfaces.d/lo-cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
auto lo
iface lo inet loopback
7 changes: 7 additions & 0 deletions builder/data/etc/network/interfaces.d/usb0-cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
allow-hotplug usb0
iface usb0 inet static
address 10.0.0.2
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.1
2 changes: 2 additions & 0 deletions builder/data/etc/network/interfaces.d/wlan0-cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
allow-hotplug wlan0
iface wlan0 inet static
2 changes: 2 additions & 0 deletions builder/data/usr/bin/hdmioff
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env bash
sudo /opt/vc/bin/tvservice -o
2 changes: 2 additions & 0 deletions builder/data/usr/bin/hdmion
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env bash
sudo /opt/vc/bin/tvservice -p
30 changes: 30 additions & 0 deletions builder/pwnagotchi.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,36 @@
"source": "data/usr/bin/monstart",
"destination": "/usr/bin/monstart"
},
{
"type": "file",
"source": "data/usr/bin/hdmion",
"destination": "/usr/bin/hdmion"
},
{
"type": "file",
"source": "data/usr/bin/hdmioff",
"destination": "/usr/bin/hdmioff"
},
{
"type": "file",
"source": "data/etc/network/interfaces.d/lo-cfg",
"destination": "/etc/network/interfaces.d/lo-cfg"
},
{
"type": "file",
"source": "data/etc/network/interfaces.d/wlan0-cfg",
"destination": "/etc/network/interfaces.d/wlan0-cfg"
},
{
"type": "file",
"source": "data/etc/network/interfaces.d/usb0-cfg",
"destination": "/etc/network/interfaces.d/usb0-cfg"
},
{
"type": "file",
"source": "data/etc/network/interfaces.d/eth0-cfg",
"destination": "/etc/network/interfaces.d/eth0-cfg"
},
{
"type": "file",
"source": "data/etc/systemd/system/pwngrid-peer.service",
Expand Down
49 changes: 0 additions & 49 deletions builder/pwnagotchi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -280,22 +280,6 @@
remote_src: yes
mode: 0755

- name: create hdmion script
copy:
dest: /usr/bin/hdmion
mode: 0755
content: |
#!/usr/bin/env bash
sudo /opt/vc/bin/tvservice -p
- name: create hdmioff script
copy:
dest: /usr/bin/hdmioff
mode: 0755
content: |
#!/usr/bin/env bash
sudo /opt/vc/bin/tvservice -o
- name: add HDMI powersave to rc.local
blockinfile:
path: /etc/rc.local
Expand Down Expand Up @@ -329,39 +313,6 @@
#
when: not user_config.stat.exists

- name: configure lo interface
copy:
dest: /etc/network/interfaces.d/lo-cfg
content: |
auto lo
iface lo inet loopback
- name: configure wlan interface
copy:
dest: /etc/network/interfaces.d/wlan0-cfg
content: |
allow-hotplug wlan0
iface wlan0 inet static
- name: configure usb interface
copy:
dest: /etc/network/interfaces.d/usb0-cfg
content: |
allow-hotplug usb0
iface usb0 inet static
address 10.0.0.2
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
gateway 10.0.0.1
- name: configure eth0 interface (pi2/3/4)
copy:
dest: /etc/network/interfaces.d/eth0-cfg
content: |
allow-hotplug eth0
iface eth0 inet dhcp
- name: enable ssh on boot
file:
path: /boot/ssh
Expand Down
13 changes: 1 addition & 12 deletions pwnagotchi/plugins/default/auto-update.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,20 +143,9 @@ def install(display, update):
if not os.path.exists(source_path):
source_path = "%s-%s" % (source_path, update['available'])

# setup.py is going to install data files for us
os.system("cd %s && pip3 install ." % source_path)

data_path = os.path.join(source_path, "builder/data")
for source in glob.glob("%s/**" % data_path, recursive=True):
if os.path.isfile(source):
dest = source.replace(data_path, '')
dest_path = os.path.dirname(dest)
if not os.path.isdir(dest_path):
os.makedirs(dest_path)
logging.info("[update] installing %s to %s ..." % (source, dest))
os.system("mv '%s' '%s'" % (source, dest))

os.system("systemctl daemon-reload")

return True


Expand Down
26 changes: 25 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,29 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from setuptools import setup, find_packages
import pwnagotchi
import os
import glob
import shutil

setup_path = os.path.dirname(__file__)
data_path = os.path.join(setup_path, "builder/data")

for source_filename in glob.glob("%s/**" % data_path, recursive=True):
if os.path.isfile(source_filename):
dest_filename = source_filename.replace(data_path, '')
dest_folder = os.path.dirname(dest_filename)

print("installing %s to %s ..." % (source_filename, dest_filename))
try:
if not os.path.isdir(dest_folder):
os.makedirs(dest_folder)

shutil.copyfile(source_filename, dest_filename)
except Exception as e:
print("error installing %s: %s" % (source_filename, e))

# reload systemd units
os.system("systemctl daemon-reload")

required = []
with open('requirements.txt') as fp:
Expand All @@ -10,6 +32,8 @@
if line != "":
required.append(line)

import pwnagotchi

setup(name='pwnagotchi',
version=pwnagotchi.version,
description='(⌐■_■) - Deep Reinforcement Learning instrumenting bettercap for WiFI pwning.',
Expand Down

0 comments on commit 783ac61

Please sign in to comment.