12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/bin/sh /etc/rc.common
- START=99
- adb_exec() {
- adb -s "$serial" shell "( $1 ) >/dev/null 2>&1"'; printf "\nEXIT_CODE: %i\n" $?' | head -c 64 | grep -qx 'EXIT_CODE: 0\r\?'
- }
- enablemodem_do() {
- logger -t adb-enablemodem 'INFO: waiting for device'
- adb wait-for-device
- serial="$(adb get-serialno)"
- vendor_id="$(adb -s "$serial" shell 'uci get product.usb.vid' | head -c 16 | tr -d '\r\n')"
- product_id="$(adb -s "$serial" shell 'uci get product.usb.pid' | head -c 16 | tr -d '\r\n')"
- case "$vendor_id:$product_id" in
- "0x2357:0x000D") # TP-LINK LTE MODULE
- case "$1" in
- start)
- if adb_exec '
- chmod +x /WEBSERVER/www/cgi-bin/*
- fds="$(ls /proc/$$/fd | grep -v "^[012]$")"
- for fd in $fds; do
- eval "exec $fd>&-"
- done
- start-stop-daemon -x httpd -S -- -h /WEBSERVER/www/
- '; then
- logger -t adb-enablemodem 'INFO: httpd on modem started'
- else
- logger -t adb-enablemodem 'ERROR: failed to start httpd on modem'
- fi
- option_newid='/sys/bus/usb-serial/drivers/option1/new_id'
- if [ -e "$option_newid" ]; then
- printf '%s %s' "$vendor_id" "$product_id" > "$option_newid"
- fi
- ;;
- stop)
- if adb_exec 'start-stop-daemon -x httpd -K'; then
- logger -t adb-enablemodem 'INFO: httpd on modem stopped'
- else
- logger -t adb-enablemodem 'ERROR: failed to stop httpd on modem'
- fi
- ;;
- esac
- ;;
- *)
- logger -t adb-enablemodem "ERROR: unknown device $vendor_id:$product_id"
- ;;
- esac
- }
- start() {
- ( enablemodem_do start ) &
- }
- stop() {
- ( enablemodem_do stop ) &
- }
- restart() {
- ( enablemodem_do stop; enablemodem_do start ) &
- }
|