1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun[ ! -e /dev/pts ] && mkdir -p /dev/pts
4*4882a593Smuzhiyun[ ! -e /dev/pts/0 ] && mount devpts /dev/pts -t devpts
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun# TODO enable the lines below once we have support for getprop
7*4882a593Smuzhiyun# retrieve the product info from Android
8*4882a593Smuzhiyun# manufacturer=$(getprop ro.product.manufacturer Android)
9*4882a593Smuzhiyun# model=$(getprop ro.product.model Android)
10*4882a593Smuzhiyun# serial=$(getprop ro.serialno 0123456789ABCDEF)
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun#below are now needed in order to use FunctionFS for ADB, tested to work with 3.4+ kernels
13*4882a593Smuzhiyunif grep -q functionfs /proc/filesystems; then
14*4882a593Smuzhiyun    mkdir -p /dev/usb-ffs/adb
15*4882a593Smuzhiyun    mount -t functionfs adb /dev/usb-ffs/adb
16*4882a593Smuzhiyun    #android-gadget-setup doesn't provide below 2 and without them it won't work, so we provide them here.
17*4882a593Smuzhiyun    echo adb > /sys/class/android_usb/android0/f_ffs/aliases
18*4882a593Smuzhiyun    echo ffs > /sys/class/android_usb/android0/functions
19*4882a593Smuzhiyunfi
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunmanufacturer="$(cat /system/build.prop | grep -o 'ro.product.manufacturer=.*' | cut -d'=' -f 2)"
22*4882a593Smuzhiyunmodel="$(cat /system/build.prop | grep -o 'ro.product.model=.*' | cut -d'=' -f 2)"
23*4882a593Smuzhiyun# get the device serial number from /proc/cmdline directly(since we have no getprop on
24*4882a593Smuzhiyun# GNU/Linux)
25*4882a593Smuzhiyunserial="$(cat /proc/cmdline | sed 's/.*androidboot.serialno=//' | sed 's/ .*//')"
26*4882a593Smuzhiyun
27*4882a593Smuzhiyunecho $serial > /sys/class/android_usb/android0/iSerial
28*4882a593Smuzhiyunecho $manufacturer > /sys/class/android_usb/android0/iManufacturer
29*4882a593Smuzhiyunecho $model > /sys/class/android_usb/android0/iProduct
30*4882a593Smuzhiyun
31*4882a593Smuzhiyunecho "0" > /sys/class/android_usb/android0/enable
32*4882a593Smuzhiyunecho "18d1" > /sys/class/android_usb/android0/idVendor
33*4882a593Smuzhiyunecho "D002" > /sys/class/android_usb/android0/idProduct
34*4882a593Smuzhiyunecho "adb" > /sys/class/android_usb/android0/functions
35*4882a593Smuzhiyunecho "1" >  /sys/class/android_usb/android0/enable
36*4882a593Smuzhiyun
37*4882a593Smuzhiyunsleep 4
38