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