Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.40 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. ####
  4. # Default profile
  5. USB_IDVENDOR=0fce
  6. USB_IDPRODUCT=7169
  7. USB_IPRODUCT="Unknown"
  8. USB_ISERIAL="Unknown"
  9. USB_IMANUFACTURER="GNU/Linux Device"
  10. USB_IFACE=""
  11.  
  12. ####
  13. # Override profile
  14. if [ -f /etc/default/hybris-device ]; then
  15. source /etc/default/hybris-device
  16. fi
  17.  
  18. ANDROID_USB=/sys/class/android_usb/android0
  19. GADGET_DIR=/config/usb_gadget
  20. USB_FUNCTIONS=rndis
  21. LOCAL_IP=10.15.19.82
  22.  
  23. write() {
  24. echo -n "$2" > "$1"
  25. }
  26.  
  27. # This sets up the USB with whatever USB_FUNCTIONS are set to via configfs
  28. usb_setup_configfs() {
  29. G_USB_ISERIAL=$GADGET_DIR/g1/strings/0x409/serialnumber
  30.  
  31. mkdir $GADGET_DIR/g1
  32. write $GADGET_DIR/g1/idVendor $USB_IDVENDOR
  33. write $GADGET_DIR/g1/idProduct $USB_IDPRODUCT
  34. mkdir $GADGET_DIR/g1/strings/0x409
  35. write $GADGET_DIR/g1/strings/0x409/serialnumber "$USB_ISERIAL"
  36. write $GADGET_DIR/g1/strings/0x409/manufacturer "$USB_IMANUFACTURER"
  37. write $GADGET_DIR/g1/strings/0x409/product "$USB_IPRODUCT"
  38.  
  39. if echo $USB_FUNCTIONS | grep -q "rndis"; then
  40. mkdir $GADGET_DIR/g1/functions/rndis.usb0
  41. mkdir $GADGET_DIR/g1/functions/rndis_bam.rndis
  42. fi
  43. echo $USB_FUNCTIONS | grep -q "mass_storage" && mkdir $GADGET_DIR/g1/functions/storage.0
  44.  
  45. mkdir $GADGET_DIR/g1/configs/c.1
  46. mkdir $GADGET_DIR/g1/configs/c.1/strings/0x409
  47. write $GADGET_DIR/g1/configs/c.1/strings/0x409/configuration "$USB_FUNCTIONS"
  48.  
  49. if echo $USB_FUNCTIONS | grep -q "rndis"; then
  50. ln -s $GADGET_DIR/g1/functions/rndis.usb0 $GADGET_DIR/g1/configs/c.1
  51. ln -s $GADGET_DIR/g1/functions/rndis_bam.rndis $GADGET_DIR/g1/configs/c.1
  52. fi
  53. echo $USB_FUNCTIONS | grep -q "mass_storage" && ln -s $GADGET_DIR/g1/functions/storage.0 $GADGET_DIR/g1/configs/c.1
  54.  
  55. echo "$(ls /sys/class/udc)" > $GADGET_DIR/g1/UDC
  56. }
  57.  
  58. # This sets up the USB with whatever USB_FUNCTIONS are set to via android_usb
  59. usb_setup_android_usb() {
  60. G_USB_ISERIAL=$ANDROID_USB/iSerial
  61. write $ANDROID_USB/enable 0
  62. write $ANDROID_USB/idVendor $USB_IDVENDOR
  63. write $ANDROID_USB/idProduct $USB_IDPRODUCT
  64. write $ANDROID_USB/iManufacturer "$USB_IMANUFACTURER"
  65. write $ANDROID_USB/iProduct "$USB_IPRODUCT"
  66. write $ANDROID_USB/iSerial "$USB_ISERIAL"
  67. write $ANDROID_USB/functions $USB_FUNCTIONS
  68. write $ANDROID_USB/enable 1
  69. }
  70.  
  71. # This determines which USB setup method is going to be used
  72. usb_setup() {
  73. mkdir /config || true
  74. mount -t configfs none /config || true
  75.  
  76. if [ -e $ANDROID_USB/enable ]; then
  77. usb_setup_android_usb $1
  78. fi
  79. if [ -d $GADGET_DIR ]; then
  80. usb_setup_configfs $1
  81. fi
  82. }
  83.  
  84. usb_info() {
  85. write $ANDROID_USB/iSerial "$1"
  86. echo "$1" >> /var/log/usb_info.log
  87. }
  88.  
  89. ip_setup() {
  90. if [ -n "$USB_IFACE" ]; then
  91. ifconfig $USB_IFACE $LOCAL_IP netmask 255.255.255.0
  92. return
  93. fi
  94.  
  95. ifconfig rndis0 $LOCAL_IP netmask 255.255.255.0 && USB_IFACE=rndis0
  96. if [ -z "$USB_IFACE" ]; then
  97. ifconfig usb0 $LOCAL_IP && USB_IFACE=usb0
  98. fi
  99.  
  100. if [ -z "$USB_IFACE" ]; then
  101. usb_info "could not setup USB tethering!"
  102. return 1
  103. fi
  104.  
  105. usb_info "$USB_IMANUFACTURER on $USB_IFACE $LOCAL_IP"
  106. }
  107.  
  108. dhcpd_start() {
  109. INTERFACES="$USB_IFACE"
  110. mkdir -p /run/hybris-usb
  111. touch /run/hybris-usb/dhcpd4.leases
  112. /usr/sbin/dhcpd -4 -q -cf /etc/hybris-usb/dhcpd.conf -pf /run/hybris-usb/dhcpd4.pid -lf /run/hybris-usb/dhcpd4.leases
  113. }
  114.  
  115. usb_setup
  116. ip_setup
  117. dhcpd_start
  118.  
  119. exit $?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement