507 lines
18 KiB
Bash
507 lines
18 KiB
Bash
![]() |
#!/vendor/bin/sh
|
||
|
# Copyright (c) 2012, Code Aurora Forum. All rights reserved.
|
||
|
#
|
||
|
# Redistribution and use in source and binary forms, with or without
|
||
|
# modification, are permitted provided that the following conditions are
|
||
|
# met:
|
||
|
# * Redistributions of source code must retain the above copyright
|
||
|
# notice, this list of conditions and the following disclaimer.
|
||
|
# * Redistributions in binary form must reproduce the above
|
||
|
# copyright notice, this list of conditions and the following
|
||
|
# disclaimer in the documentation and/or other materials provided
|
||
|
# with the distribution.
|
||
|
# * Neither the name of Code Aurora Forum, Inc. nor the names of its
|
||
|
# contributors may be used to endorse or promote products derived
|
||
|
# from this software without specific prior written permission.
|
||
|
#
|
||
|
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
||
|
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
||
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
||
|
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||
|
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||
|
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
||
|
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
||
|
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
#
|
||
|
#
|
||
|
# Allow unique persistent serial numbers for devices connected via usb
|
||
|
# User needs to set unique usb serial number to persist.usb.serialno and
|
||
|
# if persistent serial number is not set then Update USB serial number if
|
||
|
# passed from command line
|
||
|
#
|
||
|
|
||
|
dbg_on=0
|
||
|
log_dbg()
|
||
|
{
|
||
|
echo "${0##*/}: $*"
|
||
|
[ $dbg_on ] && echo "${0##*/}: $*" > /dev/kmsg
|
||
|
}
|
||
|
|
||
|
log_info()
|
||
|
{
|
||
|
echo "${0##*/}: $*"
|
||
|
echo "${0##*/}: $*" > /dev/kmsg
|
||
|
}
|
||
|
|
||
|
target=`getprop ro.board.platform`
|
||
|
usb_action=`getprop vendor.usb.mmi-usb-sh.action`
|
||
|
log_dbg "mmi-usb-sh: action = \"$usb_action\""
|
||
|
sys_usb_config=`getprop vendor.usb.config`
|
||
|
factory_usb_config="usbnet"
|
||
|
factory_usb_config_adb="usbnet,adb"
|
||
|
|
||
|
tcmd_ctrl_adb ()
|
||
|
{
|
||
|
ctrl_adb=`getprop vendor.tcmd.ctrl_adb`
|
||
|
log_info "mmi-usb-sh: vendor.tcmd.ctrl_adb = $ctrl_adb"
|
||
|
case "$ctrl_adb" in
|
||
|
"0")
|
||
|
if [[ "$sys_usb_config" == *adb* ]]
|
||
|
then
|
||
|
# *** ALWAYS expecting adb at the end ***
|
||
|
new_usb_config=${sys_usb_config/,adb/}
|
||
|
log_info "mmi-usb-sh: disabling adb ($new_usb_config)"
|
||
|
setprop persist.vendor.usb.config $new_usb_config
|
||
|
setprop vendor.usb.config $new_usb_config
|
||
|
setprop persist.vendor.factory.allow_adb 0
|
||
|
fi
|
||
|
;;
|
||
|
"1")
|
||
|
if [[ "$sys_usb_config" != *adb* ]]
|
||
|
then
|
||
|
# *** ALWAYS expecting adb at the end ***
|
||
|
new_usb_config="$sys_usb_config,adb"
|
||
|
log_info "mmi-usb-sh: enabling adb ($new_usb_config)"
|
||
|
setprop persist.vendor.usb.config $new_usb_config
|
||
|
setprop vendor.usb.config $new_usb_config
|
||
|
setprop persist.vendor.factory.allow_adb 1
|
||
|
fi
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
case "$usb_action" in
|
||
|
"")
|
||
|
;;
|
||
|
"vendor.tcmd.ctrl_adb")
|
||
|
tcmd_ctrl_adb
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
# soc_ids for 8937
|
||
|
if [ -f /sys/devices/soc0/soc_id ]; then
|
||
|
soc_id=`cat /sys/devices/soc0/soc_id`
|
||
|
else
|
||
|
soc_id=`cat /sys/devices/system/soc/soc0/id`
|
||
|
fi
|
||
|
|
||
|
case "$target" in
|
||
|
"msm8937")
|
||
|
setprop vendor.usb.rps_mask 0
|
||
|
setprop vendor.rmnet_vnd.rps_mask 0
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
case "$soc_id" in
|
||
|
"294" | "295")
|
||
|
setprop vendor.usb.rps_mask 40
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
case "$soc_id" in
|
||
|
"313" | "320")
|
||
|
qcom_usb_config="diag,serial_smd,rmnet_ipa"
|
||
|
qcom_adb_usb_config="diag,serial_smd,rmnet_ipa,adb"
|
||
|
bpt_usb_config="diag,serial_smd,rmnet_bam_ipa"
|
||
|
bpt_adb_usb_config="diag,serial_smd,rmnet_bam_ipa,adb"
|
||
|
setprop vendor.usb.rndis.func.name "rndis_bam"
|
||
|
setprop vendor.usb.rmnet.inst.name "rmnet"
|
||
|
setprop vendor.usb.dpl.inst.name "dpl"
|
||
|
;;
|
||
|
*)
|
||
|
qcom_usb_config="diag,serial_smd,rmnet_qti_bam"
|
||
|
qcom_adb_usb_config="diag,serial_smd,rmnet_qti_bam,adb"
|
||
|
bpt_usb_config="diag,serial_smd,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial_smd,rmnet,adb"
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
"msm8953")
|
||
|
#Set RPS Mask for Tethering to CPU4
|
||
|
setprop vendor.usb.rps_mask 10
|
||
|
setprop vendor.rmnet_vnd.rps_mask 0
|
||
|
if [ -d /config/usb_gadget/g1 ]; then
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.rndis.func.name "rndis_bam"
|
||
|
setprop vendor.usb.rmnet.func.name "rmnet_bam"
|
||
|
else
|
||
|
qcom_usb_config="diag,serial_smd,serial_tty,rmnet_bam,mass_storage"
|
||
|
qcom_adb_usb_config="diag,serial_smd,serial_tty,rmnet_bam,mass_storage,adb"
|
||
|
bpt_usb_config="diag,serial_smd,serial_tty,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial_smd,serial_tty,rmnet,adb"
|
||
|
fi
|
||
|
setprop vendor.usb.controller "7000000.dwc3"
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"msm8996")
|
||
|
#Set RPS Mask for Tethering to CPU2
|
||
|
setprop vendor.usb.rps_mask 2
|
||
|
setprop vendor.rmnet_vnd.rps_mask 0f
|
||
|
qcom_usb_config="diag,serial_cdev,serial_tty,rmnet_bam,mass_storage"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,serial_tty,rmnet_bam,mass_storage,adb"
|
||
|
bpt_usb_config="diag,serial_cdev,serial_tty,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial_cdev,serial_tty,rmnet,adb"
|
||
|
setprop vendor.usb.controller "6a00000.dwc3"
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"msm8998")
|
||
|
#Set RPS Mask for Tethering to CPU2
|
||
|
setprop vendor.usb.rps_mask 70
|
||
|
setprop vendor.rmnet_vnd.rps_mask 0d
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "a800000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.hcd_mask 80
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"sdm660")
|
||
|
#Set RPS Mask for Tethering to CPU2
|
||
|
setprop vendor.usb.rps_mask 30
|
||
|
setprop vendor.rmnet_vnd.rps_mask 4
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "a800000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "rndis_bam"
|
||
|
setprop vendor.usb.rmnet.func.name "rmnet_bam"
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"sdm845")
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"sdm710")
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"sm6150")
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.hcd_mask 80
|
||
|
setprop vendor.usb.rps_mask 40
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"trinket")
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "4e00000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"kona")
|
||
|
qcom_usb_config="diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet"
|
||
|
qcom_adb_usb_config="diag,diag_mdm,qdss,qdss_mdm,serial_cdev,serial_cdev_mdm,dpl,rmnet,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"lito")
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"bengal")
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "4e00000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.diag.func.name "diag"
|
||
|
;;
|
||
|
"lahaina")
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet,dpl,qdss"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,dpl,qdss,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.diag.func.name "ffs"
|
||
|
factory_usb_config="diag,usbnet"
|
||
|
factory_usb_config_adb="diag,usbnet,adb"
|
||
|
;;
|
||
|
"holi")
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet,dpl,qdss"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,dpl,qdss,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
factory_usb_config="diag,usbnet"
|
||
|
factory_usb_config_adb="diag,usbnet,adb"
|
||
|
setprop vendor.usb.controller "4e00000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.diag.func.name "ffs"
|
||
|
;;
|
||
|
"taro")
|
||
|
qcom_usb_config="diag,serial_cdev,rmnet,dpl,qdss"
|
||
|
qcom_adb_usb_config="diag,serial_cdev,rmnet,dpl,qdss,adb"
|
||
|
bpt_usb_config="diag,serial,rmnet"
|
||
|
bpt_adb_usb_config="diag,serial,rmnet,adb"
|
||
|
setprop vendor.usb.controller "a600000.dwc3"
|
||
|
setprop vendor.usb.rndis.func.name "gsi"
|
||
|
setprop vendor.usb.rmnet.func.name "gsi"
|
||
|
setprop vendor.usb.diag.func.name "ffs"
|
||
|
factory_usb_config="diag,usbnet"
|
||
|
factory_usb_config_adb="diag,usbnet,adb"
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
## This is needed to switch to the qcom rndis driver.
|
||
|
diag_extra=`getprop persist.vendor.usb.config.extra`
|
||
|
if [ "$diag_extra" == "" ]; then
|
||
|
setprop persist.vendor.usb.config.extra none
|
||
|
fi
|
||
|
|
||
|
#
|
||
|
# Allow USB enumeration with default PID/VID
|
||
|
#
|
||
|
usb_config=`getprop persist.vendor.usb.config`
|
||
|
mot_usb_config=`getprop persist.vendor.mot.usb.config`
|
||
|
bootmode=`getprop ro.bootmode`
|
||
|
buildtype=`getprop ro.build.type`
|
||
|
securehw=`getprop ro.boot.secure_hardware`
|
||
|
cid=`getprop ro.vendor.boot.cid`
|
||
|
diagmode=`getprop persist.vendor.radio.usbdiag`
|
||
|
|
||
|
log_info "mmi-usb-sh: persist usb configs = \"$usb_config\", \"$mot_usb_config\", \"$diagmode\""
|
||
|
|
||
|
|
||
|
phonelock_type=`getprop persist.sys.phonelock.mode`
|
||
|
usb_restricted=`getprop persist.sys.usb.policylocked`
|
||
|
log_info "mmi-usb-sh: phonelock.mode=$phonelock_type, usb.policylocked=$usb_restricted, securehw=$securehw, buildtype=$buildtype, cid=$cid"
|
||
|
if [ "$securehw" == "1" ] && [ "$buildtype" == "user" ] && [ "$(($cid))" != 0 ]
|
||
|
then
|
||
|
if [ "$usb_restricted" == "1" ]
|
||
|
then
|
||
|
echo 1 > /sys/class/android_usb/android0/secure
|
||
|
else
|
||
|
case "$phonelock_type" in
|
||
|
"1" )
|
||
|
echo 1 > /sys/class/android_usb/android0/secure
|
||
|
;;
|
||
|
* )
|
||
|
echo 0 > /sys/class/android_usb/android0/secure
|
||
|
;;
|
||
|
esac
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# ##DIAG# mode option
|
||
|
case "$diagmode" in
|
||
|
"1" )
|
||
|
case "$usb_config" in
|
||
|
"$bpt_usb_config" | "$bpt_adb_usb_config" )
|
||
|
;;
|
||
|
* )
|
||
|
case "$securehw" in
|
||
|
"1" )
|
||
|
setprop persist.vendor.usb.config $bpt_usb_config
|
||
|
;;
|
||
|
*)
|
||
|
setprop persist.vendor.usb.config $bpt_adb_usb_config
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
esac
|
||
|
exit 0
|
||
|
;;
|
||
|
* )
|
||
|
# Do nothing. USB enumeration will be set by bootmode
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
|
||
|
|
||
|
case "$bootmode" in
|
||
|
"bp-tools" )
|
||
|
case "$usb_config" in
|
||
|
"$bpt_usb_config" | "$bpt_adb_usb_config" )
|
||
|
;;
|
||
|
* )
|
||
|
case "$securehw" in
|
||
|
"1" )
|
||
|
setprop persist.vendor.usb.config $bpt_usb_config
|
||
|
setprop persist.vendor.usb.bp-tools.config $bpt_usb_config
|
||
|
setprop persist.vendor.usb.bp-tools.func $bpt_usb_config
|
||
|
;;
|
||
|
*)
|
||
|
setprop persist.vendor.usb.config $bpt_adb_usb_config
|
||
|
setprop persist.vendor.usb.bp-tools.config $bpt_adb_usb_config
|
||
|
setprop persist.vendor.usb.bp-tools.func $bpt_adb_usb_config
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
"mot-factory" )
|
||
|
allow_adb=`getprop persist.vendor.factory.allow_adb`
|
||
|
case "$allow_adb" in
|
||
|
"1")
|
||
|
if [ "$usb_config" != $factory_usb_config_adb ]
|
||
|
then
|
||
|
setprop persist.vendor.usb.config $factory_usb_config_adb
|
||
|
setprop persist.vendor.usb.mot-factory.config $factory_usb_config_adb
|
||
|
setprop persist.vendor.usb.mot-factory.func $factory_usb_config_adb
|
||
|
fi
|
||
|
;;
|
||
|
*)
|
||
|
if [ "$usb_config" != $factory_usb_config ]
|
||
|
then
|
||
|
setprop persist.vendor.usb.config $factory_usb_config
|
||
|
setprop persist.vendor.usb.mot-factory.config $factory_usb_config
|
||
|
setprop persist.vendor.usb.mot-factory.func $factory_usb_config
|
||
|
fi
|
||
|
;;
|
||
|
esac
|
||
|
# Disable Host Mode LPM for Factory mode
|
||
|
echo 1 > /sys/module/dwc3_msm/parameters/disable_host_mode_pm
|
||
|
;;
|
||
|
"qcom" )
|
||
|
case "$usb_config" in
|
||
|
"$qcom_usb_config" | "$qcom_adb_usb_config" )
|
||
|
;;
|
||
|
* )
|
||
|
case "$securehw" in
|
||
|
"1" )
|
||
|
setprop persist.vendor.usb.config $qcom_usb_config
|
||
|
setprop persist.vendor.usb.qcom.config $qcom_usb_config
|
||
|
setprop persist.vendor.usb.qcom.func $qcom_usb_config
|
||
|
;;
|
||
|
*)
|
||
|
setprop persist.vendor.usb.config $qcom_adb_usb_config
|
||
|
setprop persist.vendor.usb.qcom.config $qcom_adb_usb_config
|
||
|
setprop persist.vendor.usb.qcom.func $qcom_adb_usb_config
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
* )
|
||
|
if [ "$buildtype" == "user" ] && [ "$phonelock_type" != "1" ] && [ "$usb_restricted" != "1" ]
|
||
|
then
|
||
|
echo 1 > /sys/class/android_usb/android0/secure
|
||
|
log_info "Disabling enumeration until bootup!"
|
||
|
fi
|
||
|
|
||
|
case "$usb_config" in
|
||
|
"mtp,adb" | "mtp" | "adb")
|
||
|
;;
|
||
|
*)
|
||
|
case "$mot_usb_config" in
|
||
|
"mtp,adb" | "mtp" | "adb")
|
||
|
setprop persist.vendor.usb.config $mot_usb_config
|
||
|
;;
|
||
|
*)
|
||
|
case "$securehw" in
|
||
|
"1" )
|
||
|
setprop persist.vendor.usb.config mtp
|
||
|
;;
|
||
|
*)
|
||
|
setprop persist.vendor.usb.config adb
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
ffs_mtp=`getprop vendor.usb.use_ffs_mtp`
|
||
|
new_persist_usb_config=`getprop persist.vendor.usb.config`
|
||
|
if [ "$ffs_mtp" == "1" ] && [ "$new_persist_usb_config" == "mtp" ]
|
||
|
then
|
||
|
setprop persist.vendor.usb.config none
|
||
|
fi
|
||
|
|
||
|
adb_early=`getprop ro.boot.adb_early`
|
||
|
if [ "$adb_early" == "1" ]; then
|
||
|
echo 0 > /sys/class/android_usb/android0/secure
|
||
|
log_info "Enabling enumeration after bootup, count = $count !"
|
||
|
new_persist_usb_config=`getprop persist.vendor.usb.config`
|
||
|
if [[ "$new_persist_usb_config" != *adb* ]]; then
|
||
|
setprop persist.vendor.usb.config "adb"
|
||
|
setprop vendor.usb.config "adb"
|
||
|
else
|
||
|
setprop vendor.usb.config $new_persist_usb_config
|
||
|
fi
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
if [ "$buildtype" == "user" ] && [ "$phonelock_type" != "1" ] && [ "$usb_restricted" != "1" ]
|
||
|
then
|
||
|
count=0
|
||
|
bootcomplete=`getprop vendor.boot_completed`
|
||
|
log_info "mmi-usb-sh - bootcomplete = $bootcomplete"
|
||
|
while [ "$bootcomplete" != "1" ]; do
|
||
|
log_dbg "Sleeping till bootup!"
|
||
|
sleep 1
|
||
|
count=$((count+1))
|
||
|
if [ $count -gt 90 ]
|
||
|
then
|
||
|
log_info "mmi-usb-sh - Timed out waiting for bootup"
|
||
|
break
|
||
|
fi
|
||
|
bootcomplete=`getprop vendor.boot_completed`
|
||
|
done
|
||
|
echo 0 > /sys/class/android_usb/android0/secure
|
||
|
log_info "Enabling enumeration after bootup, count = $count !"
|
||
|
exit 0
|
||
|
fi
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
new_persist_usb_config=`getprop persist.vendor.usb.config`
|
||
|
if [ "$sys_usb_config" != "$new_persist_usb_config" ]; then
|
||
|
setprop vendor.usb.config $new_persist_usb_config
|
||
|
fi
|