From 83a6e3f45d68935796a841c220662dfef1e3d8bc Mon Sep 17 00:00:00 2001
From: Cassiano Aquino <cassianoaquino@me.com>
Date: Sun, 29 Sep 2019 01:41:49 +0100
Subject: [PATCH 1/3] services cleanup. powersave features and shellcheck fixes

---
 scripts/create_sibling.sh         | 5 ++++-
 scripts/linux_connection_share.sh | 8 ++++----
 sdcard/boot/config.txt            | 9 +++++++++
 sdcard/rootfs/etc/rc.local        | 2 ++
 4 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/scripts/create_sibling.sh b/scripts/create_sibling.sh
index 81bff79..d9f1027 100755
--- a/scripts/create_sibling.sh
+++ b/scripts/create_sibling.sh
@@ -195,6 +195,9 @@ function provision_raspbian() {
   # slows down boot
   systemctl disable apt-daily.timer apt-daily.service apt-daily-upgrade.timer apt-daily-upgrade.service
 
+  # unecessary services
+  systemctl disable triggerhappy bluetooth wpa_supplicant
+
 EOF
   sed -i'' 's/^#//g' etc/ld.so.preload
   cd "${REPO_DIR}"
@@ -213,7 +216,7 @@ usage: $0 [OPTIONS]
     -i <file>    # Provide the path of an already downloaded raspbian image
     -o <file>    # Name of the img-file (default: pwnagotchi.img)
     -s <size>    # Size which should be added to second partition (in Gigabyte) (default: 4)
-    -v <version> # Version of raspbian (Supported: $SUPPORTED_RASPBIAN_VERSIONS; default: latest)
+    -v <version> # Version of raspbian (Supported: ${SUPPORTED_RASPBIAN_VERSIONS[*]}; default: latest)
     -p           # Only run provisioning (assumes the image is already mounted)
     -d           # Only run dependencies checks
     -h           # Show this help
diff --git a/scripts/linux_connection_share.sh b/scripts/linux_connection_share.sh
index 57fe718..78df842 100755
--- a/scripts/linux_connection_share.sh
+++ b/scripts/linux_connection_share.sh
@@ -7,12 +7,12 @@ USB_IFACE_NET=10.0.0.0/24
 # host interface to use for upstream connection
 UPSTREAM_IFACE=${2:-enxe4b97aa99867}
 
-ip addr add $USB_IFACE_IP/24 dev $USB_IFACE
-ip link set $USB_IFACE up
+ip addr add "$USB_IFACE_IP/24" dev "$USB_IFACE"
+ip link set "$USB_IFACE" up
 
-iptables -A FORWARD -o $UPSTREAM_IFACE -i $USB_IFACE -s $USB_IFACE_NET -m conntrack --ctstate NEW -j ACCEPT
+iptables -A FORWARD -o "$UPSTREAM_IFACE" -i "$USB_IFACE" -s "$USB_IFACE_NET" -m conntrack --ctstate NEW -j ACCEPT
 iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
 iptables -t nat -F POSTROUTING
-iptables -t nat -A POSTROUTING -o $UPSTREAM_IFACE -j MASQUERADE
+iptables -t nat -A POSTROUTING -o "$UPSTREAM_IFACE" -j MASQUERADE
 
 echo 1 > /proc/sys/net/ipv4/ip_forward
diff --git a/sdcard/boot/config.txt b/sdcard/boot/config.txt
index 98231bc..9e57de0 100755
--- a/sdcard/boot/config.txt
+++ b/sdcard/boot/config.txt
@@ -1195,3 +1195,12 @@ dtoverlay=dwc2
 dtparam=spi=on
 dtoverlay=spi1-3cs
 
+# Powersave options
+# Disable power LED ~30ma
+dtparam=act_led_trigger=none
+dtparam=act_led_activelow=on
+# Disable bluetooth
+dtoverlay=pi3-disable-bt
+# Disable audio
+dtparam=audio=off
+
diff --git a/sdcard/rootfs/etc/rc.local b/sdcard/rootfs/etc/rc.local
index 15fb894..e93d2d8 100755
--- a/sdcard/rootfs/etc/rc.local
+++ b/sdcard/rootfs/etc/rc.local
@@ -10,5 +10,7 @@
 # bits.
 #
 # By default this script does nothing.
+# Powersave (Disable HDMI) ~30ma
+/opt/vc/bin/tvservice -o
 /root/pwnagotchi/scripts/startup.sh &
 exit 0

From 54de337fcd66b2d1bfce25c535d5e179ccc3855d Mon Sep 17 00:00:00 2001
From: Cassiano Aquino <cassianoaquino@me.com>
Date: Sun, 29 Sep 2019 02:22:20 +0100
Subject: [PATCH 2/3] add zombie kr option to screen to allow screen to stay
 open when process dies

---
 sdcard/rootfs/root/pwnagotchi/data/screenrc.auto   | 1 +
 sdcard/rootfs/root/pwnagotchi/data/screenrc.manual | 1 +
 2 files changed, 2 insertions(+)

diff --git a/sdcard/rootfs/root/pwnagotchi/data/screenrc.auto b/sdcard/rootfs/root/pwnagotchi/data/screenrc.auto
index 0d775f9..9319672 100644
--- a/sdcard/rootfs/root/pwnagotchi/data/screenrc.auto
+++ b/sdcard/rootfs/root/pwnagotchi/data/screenrc.auto
@@ -5,6 +5,7 @@ defscrollback 1024
 startup_message off
 altscreen on
 autodetach on
+zombie kr
 
 activity        "activity in %n (%t)"
 bell_msg        "bell in %n (%t)"
diff --git a/sdcard/rootfs/root/pwnagotchi/data/screenrc.manual b/sdcard/rootfs/root/pwnagotchi/data/screenrc.manual
index 4e66adf..1d62528 100644
--- a/sdcard/rootfs/root/pwnagotchi/data/screenrc.manual
+++ b/sdcard/rootfs/root/pwnagotchi/data/screenrc.manual
@@ -5,6 +5,7 @@ defscrollback 1024
 startup_message off
 altscreen on
 autodetach on
+zombie kr
 
 activity        "activity in %n (%t)"
 bell_msg        "bell in %n (%t)"

From 43282ad9d6b12240d7ec0bc99854972125ff3bf2 Mon Sep 17 00:00:00 2001
From: Cassiano Aquino <cassianoaquino@me.com>
Date: Sun, 29 Sep 2019 11:46:19 +0100
Subject: [PATCH 3/3] disable leds after blink runs to present user feedback

---
 sdcard/boot/config.txt                         | 4 ----
 sdcard/rootfs/root/pwnagotchi/scripts/blink.sh | 7 ++++++-
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/sdcard/boot/config.txt b/sdcard/boot/config.txt
index 9e57de0..4d69af8 100755
--- a/sdcard/boot/config.txt
+++ b/sdcard/boot/config.txt
@@ -1195,10 +1195,6 @@ dtoverlay=dwc2
 dtparam=spi=on
 dtoverlay=spi1-3cs
 
-# Powersave options
-# Disable power LED ~30ma
-dtparam=act_led_trigger=none
-dtparam=act_led_activelow=on
 # Disable bluetooth
 dtoverlay=pi3-disable-bt
 # Disable audio
diff --git a/sdcard/rootfs/root/pwnagotchi/scripts/blink.sh b/sdcard/rootfs/root/pwnagotchi/scripts/blink.sh
index 48345ef..b7e8977 100755
--- a/sdcard/rootfs/root/pwnagotchi/scripts/blink.sh
+++ b/sdcard/rootfs/root/pwnagotchi/scripts/blink.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-for i in `seq 1 $1`;
+for i in $(seq 1 "$1");
 do
 	echo 0 >/sys/class/leds/led0/brightness
 	sleep 0.3
@@ -10,3 +10,8 @@ done
 
 echo 0 >/sys/class/leds/led0/brightness
 sleep 0.3
+
+# Powersave options
+# Disable power LED ~30ma
+echo none >/sys/class/leds/led0/trigger
+echo 1 >/sys/class/leds/led0/brightness