Advertisement
Guest User

VIMs : RNDIS Gadget

a guest
Jan 23rd, 2021
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.89 KB | None | 0 0
  1. #!/bin/sh
  2. #
  3. # Create Windows 10 compatible RNDIS USB Gadget
  4. #
  5.  
  6. . /etc/fenix-release
  7.  
  8. GADGET=/sys/kernel/config/usb_gadget/g1
  9. if [ -d $GADGET ]; then
  10.     echo "Exiting... RNDIS Gadget exists"
  11.     exit 0
  12. fi
  13.  
  14. F_RNDIS=$GADGET/functions/rndis.0
  15. SERIAL="$(grep Serial /proc/cpuinfo | grep -o -P '.{0,12}$')"
  16. MAC="$(echo ${SERIAL} | sed 's/\(\w\w\)/:\1/g' | cut -b 2-)"
  17. MAC_HOST="12$(echo ${MAC} | cut -b 3-)"
  18. MAC_DEV="02$(echo ${MAC} | cut -b 3-)"
  19. UDC="$(ls /sys/class/udc/| awk '{print $1}')"
  20.  
  21. mkdir $GADGET
  22.  
  23. echo "0x1d6b" > $GADGET/idVendor  # Linux Foundation
  24. echo "0x0104" > $GADGET/idProduct
  25. echo "0x0100" > $GADGET/bcdDevice
  26. echo "0x0200" > $GADGET/bcdUSB
  27.  
  28. echo "0xEF" > $GADGET/bDeviceClass
  29. echo "0x04" > $GADGET/bDeviceSubClass
  30. echo "0x01" > $GADGET/bDeviceProtocol
  31.  
  32. # Set Strings
  33. mkdir $GADGET/strings/0x409
  34. echo $SERIAL  > $GADGET/strings/0x409/serialnumber
  35. echo "Khadas" > $GADGET/strings/0x409/manufacturer
  36. echo $BOARD   > $GADGET/strings/0x409/product
  37.  
  38. # Create Config
  39. mkdir $GADGET/configs/c.1
  40. mkdir $GADGET/configs/c.1/strings/0x409
  41. echo "RNDIS Gadget" > $GADGET/configs/c.1/strings/0x409/configuration
  42. echo "500" > $GADGET/configs/c.1/MaxPower
  43. echo "0x80" > $GADGET/configs/c.1/bmAttributes #  USB_OTG_SRP | USB_OTG_HNP
  44.  
  45. # Create RNDIS function
  46. mkdir $F_RNDIS
  47. echo $MAC_HOST > $F_RNDIS/host_addr
  48. echo $MAC_DEV > $F_RNDIS/dev_addr
  49.  
  50. # OS Descriptors
  51. echo "1" > $GADGET/os_desc/use
  52. echo "0xbc" > $GADGET/os_desc/b_vendor_code
  53. echo "MSFT100" > $GADGET/os_desc/qw_sign
  54. mkdir -p $F_RNDIS/os_desc/interface.rndis
  55. echo "RNDIS" > $F_RNDIS/os_desc/interface.rndis/compatible_id
  56. echo "5162001" > $F_RNDIS/os_desc/interface.rndis/sub_compatible_id
  57.  
  58. # Bind function to configuration
  59. ln -s $F_RNDIS $GADGET/configs/c.1/
  60. ln -s $GADGET/configs/c.1/ $GADGET/os_desc
  61.  
  62. # Enable the Gadget
  63. echo $UDC > $GADGET/UDC
  64.  
  65. echo "Done creating RNDIS USB Gadget...$(cat $F_RNDIS/ifname)"
  66. exit 0
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement