#!/bin/sh
#
# Set the USB Gadget serial ID which is used as device ID by ADB
#
# Copyright (c) 2017 Valeo
#

INTERFACE=android0

# Check first if the /data/adb_devid already has an id saved from earlier boot up.
# If yes use it to retrieve adb devices else use the msm ID and save it to /data/adb_devid for subsequent boot ups.

if [ -e "/data/adb_devid" ]
then
    cat /data/adb_devid > /sys/class/android_usb/$INTERFACE/iSerial
else
    ret_val=`cat /proc/cmdline | grep "androidboot.serialno" |wc -l`

    if  [ $ret_val -eq 1 ]
    then
        serial_no=`cat /proc/cmdline | awk '{ for ( n=1; n<=NF; n++ ) if($n ~ "androidboot.serial") print $n }' | awk '{split($0,a, "=");print a[2]}'`
        echo $serial_no > /sys/class/android_usb/$INTERFACE/iSerial
    else
        cat /proc/sys/kernel/random/boot_id | cut -d- -f5 > /sys/class/android_usb/$INTERFACE/iSerial
    fi
    cat /sys/class/android_usb/$INTERFACE/iSerial > /data/adb_devid
    sync
fi
