]>
Commit | Line | Data |
---|---|---|
bc85b807 | 1 | #!/bin/bash |
2 | # this file is from: https://github.com/ckuethe/usbarmory/wiki/USB-Gadgets | |
3 | echo "creating composite mass-storage, serial, ethernet, hid..." | |
4 | modprobe libcomposite | |
5 | ||
6 | # assumes a disk image exists here... | |
7 | FILE=/home/pi/hardpass/usbdisk.img | |
8 | mkdir -p ${FILE/img/d} | |
9 | mount -o loop,ro,offset=2048 -t vfat $FILE ${FILE/img/d} | |
10 | cd /sys/kernel/config/usb_gadget/ | |
11 | ||
12 | mkdir -p g1 | |
13 | cd g1 | |
14 | #echo '' > UDC | |
15 | ||
16 | echo 0x1d6b > idVendor # Linux Foundation | |
17 | echo 0x0104 > idProduct # Multifunction Composite Gadget | |
18 | echo 0x0100 > bcdDevice # v1.0.0 | |
19 | echo 0x0200 > bcdUSB # USB2 | |
20 | ||
21 | mkdir -p strings/0x409 | |
22 | echo "fedcba9876543210" > strings/0x409/serialnumber | |
23 | echo "girst" > strings/0x409/manufacturer | |
24 | echo "Hardpass" > strings/0x409/product | |
25 | ||
26 | N="usb0" | |
27 | mkdir -p functions/acm.$N | |
28 | mkdir -p functions/ecm.$N | |
29 | mkdir -p functions/hid.$N | |
30 | mkdir -p functions/mass_storage.$N | |
31 | ||
32 | # first byte of address must be even | |
33 | HOST="48:6f:73:74:50:43" # "HostPC" | |
34 | SELF="42:61:64:55:53:42" # "BadUSB" | |
35 | echo $HOST > functions/ecm.$N/host_addr | |
36 | echo $SELF > functions/ecm.$N/dev_addr | |
37 | ||
38 | echo 1 > functions/mass_storage.$N/stall | |
39 | echo 0 > functions/mass_storage.$N/lun.0/cdrom | |
40 | echo 0 > functions/mass_storage.$N/lun.0/ro | |
41 | echo 0 > functions/mass_storage.$N/lun.0/nofua | |
42 | echo $FILE > functions/mass_storage.$N/lun.0/file | |
43 | ||
44 | echo 1 > functions/hid.usb0/protocol | |
45 | echo 1 > functions/hid.usb0/subclass | |
46 | echo 8 > functions/hid.usb0/report_length | |
47 | echo -ne \\x05\\x01\\x09\\x06\\xa1\\x01\\x05\\x07\\x19\\xe0\\x29\\xe7\\x15\\x00\\x25\\x01\\x75\\x01\\x95\\x08\\x81\\x02\\x95\\x01\\x75\\x08\\x81\\x03\\x95\\x05\\x75\\x01\\x05\\x08\\x19\\x01\\x29\\x05\\x91\\x02\\x95\\x01\\x75\\x03\\x91\\x03\\x95\\x06\\x75\\x08\\x15\\x00\\x25\\x65\\x05\\x07\\x19\\x00\\x29\\x65\\x81\\x00\\xc0 > functions/hid.usb0/report_desc | |
48 | ||
49 | ||
50 | C=1 | |
51 | mkdir -p configs/c.$C/strings/0x409 | |
52 | echo "Config $C: ECM network" > configs/c.$C/strings/0x409/configuration | |
53 | echo 250 > configs/c.$C/MaxPower | |
54 | ln -s functions/acm.$N configs/c.$C/ | |
55 | ln -s functions/ecm.$N configs/c.$C/ | |
56 | ln -s functions/mass_storage.$N configs/c.$C/ | |
57 | ln -s functions/hid.$N configs/c.$C/ | |
58 | ||
59 | # this lists available UDC drivers | |
60 | ls /sys/class/udc > UDC | |
61 | ||
62 | ifconfig $N 10.0.0.1 netmask 255.255.255.252 up | |
63 | route add -net default gw 10.0.0.2 | |
64 | echo "done. " | |
65 | #echo "initializing demo menu..." | |
66 | #while 1; do | |
67 | # /home/pi/hardpass/oled/run.sh | |
68 | #done & | |
69 | echo "starting shutdown 'daemon'" | |
70 | /home/pi/hardpass/shutdown/shutdown-button.sh & |