linux shell /etc/init.d/functions 加了个函数不起作用

本文描述了在Linux环境下,如何解决在/etc/init.d/functions中定义的函数无法调用的问题。通过调整函数在文件中的位置,即将其移至return 0指令上方,成功解决了函数未被识别的情况。

1.在/etc/init.d/functions中加了个函数test(){echo "I am oldboy."}

然后.或source /etc/init.d/functions

调用函数 test提示没有test command

后来在test函数上面发现了return 0,将test函数移到return 0上面就可以了。

diff --git a/VENDOR.13/device/qcom/sepolicy_vndr/generic/vendor/common/kernel.te b/VENDOR.13/device/qcom/sepolicy_vndr/generic/vendor/common/kernel.te index 95f64bf9bf..a6b1ed65b3 100644 --- a/VENDOR.13/device/qcom/sepolicy_vndr/generic/vendor/common/kernel.te +++ b/VENDOR.13/device/qcom/sepolicy_vndr/generic/vendor/common/kernel.te @@ -47,3 +47,5 @@ dontaudit kernel kernel:system module_request; allow kernel mnt_vendor_file:dir search; allow kernel mnt_vendor_file:file { read open }; +allow kernel block_device:blk_file { read write open }; +allow kernel vendor_init:fd use; diff --git a/VENDOR.13/device/qcom/sepolicy_vndr/generic/vendor/common/vendor_init.te b/VENDOR.13/device/qcom/sepolicy_vndr/generic/vendor/common/vendor_init.te index 43c977f784..adafc37f84 100644 --- a/VENDOR.13/device/qcom/sepolicy_vndr/generic/vendor/common/vendor_init.te +++ b/VENDOR.13/device/qcom/sepolicy_vndr/generic/vendor/common/vendor_init.te @@ -117,6 +117,8 @@ get_prop(vendor_init, vendor_media_performance_class); allow vendor_init tee_device:chr_file getattr; +allow vendor_init block_device:blk_file { read write open }; + # Allow vendor init to read vendor_pcie_prop get_prop(vendor_init, vendor_pcie_prop); diff --git a/VENDOR.13/vendor/qcom/opensource/usb/etc/init.qcom.usb.rc b/VENDOR.13/vendor/qcom/opensource/usb/etc/init.qcom.usb.rc old mode 100644 new mode 100755 index c4fbdfe32f..861c6b792f --- a/VENDOR.13/vendor/qcom/opensource/usb/etc/init.qcom.usb.rc +++ b/VENDOR.13/vendor/qcom/opensource/usb/etc/init.qcom.usb.rc @@ -845,6 +845,35 @@ on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb,serial_cdev write /config/usb_gadget/g1/UDC ${sys.usb.controller} setprop sys.usb.state ${sys.usb.config} +on property:sys.usb.config=diag,adb,serial_cdev,mass_storage && property:sys.usb.configfs=2 + write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file "/dev/block/mmcblk1p1" + +on property:sys.usb.config=diag,adb,serial_cdev,mass_storage && property:sys.usb.configfs=1 + start adbd + +on property:sys.usb.ffs.ready=1 && property:sys.usb.config=diag,adb,serial_cdev,mass_storage && property:sys.usb.configfs=1 + write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_adb_mass_storage" + write /config/usb_gadget/g1/functions/mass_storage.0/lun.0/file "/dev/block/mmcblk1p1" + rm /config/usb_gadget/g1/configs/b.1/f1 + rm /config/usb_gadget/g1/configs/b.1/f2 + rm /config/usb_gadget/g1/configs/b.1/f3 + rm /config/usb_gadget/g1/configs/b.1/f4 + rm /config/usb_gadget/g1/configs/b.1/f5 + rm /config/usb_gadget/g1/configs/b.1/f6 + rm /config/usb_gadget/g1/configs/b.1/f7 + rm /config/usb_gadget/g1/configs/b.1/f8 + rm /config/usb_gadget/g1/configs/b.1/f9 + symlink /config/usb_gadget/g1/configs/b.1 /config/usb_gadget/g1/os_desc/b.1 + write /config/usb_gadget/g1/idVendor 0x05C6 + write /config/usb_gadget/g1/idProduct 0x901f + write /config/usb_gadget/g1/functions/diag.diag/pid 0x901f + symlink /config/usb_gadget/g1/functions/${vendor.usb.diag.func.name}.diag /config/usb_gadget/g1/configs/b.1/f1 + symlink /config/usb_gadget/g1/functions/ffs.adb /config/usb_gadget/g1/configs/b.1/f2 + symlink /config/usb_gadget/g1/functions/cser.dun.0 /config/usb_gadget/g1/configs/b.1/f3 + symlink /config/usb_gadget/g1/functions/mass_storage.0 /config/usb_gadget/g1/configs/b.1/f4 + write /config/usb_gadget/g1/UDC ${sys.usb.controller} + setprop sys.usb.state ${sys.usb.config} + on property:sys.usb.config=diag,serial_cdev,rmnet,dpl && property:sys.usb.configfs=1 write /config/usb_gadget/g1/configs/b.1/strings/0x409/configuration "diag_dun_rmnet_dpl" rm /config/usb_gadget/g1/configs/b.1/f1 diff --git a/VENDOR.13/vendor/qcom/opensource/usb/etc/init.qcom.usb.sh b/VENDOR.13/vendor/qcom/opensource/usb/etc/init.qcom.usb.sh index 77a955265e..b8dc506198 100644 --- a/VENDOR.13/vendor/qcom/opensource/usb/etc/init.qcom.usb.sh +++ b/VENDOR.13/vendor/qcom/opensource/usb/etc/init.qcom.usb.sh @@ -47,13 +47,13 @@ target=`getprop ro.board.platform` # Override USB default composition # # If USB persist config not set, set default configuration -if [ "$(getprop persist.vendor.usb.config)" == "" -a "$(getprop ro.build.type)" != "user" ]; then +if [ "$(getprop ro.build.type)" != "user" ]; then if [ "$esoc_name" != "" ]; then setprop persist.vendor.usb.config diag,diag_mdm,qdss,qdss_mdm,serial_cdev,dpl,rmnet,adb else case "$(getprop ro.baseband)" in "apq") - setprop persist.vendor.usb.config diag,adb,serial_cdev + setprop persist.vendor.usb.config diag,adb,serial_cdev,mass_storage ;; *) case "$soc_hwplatform" in diff --git a/VENDOR.13/vendor/qcom/opensource/usb/hal/usb_compositions.conf b/VENDOR.13/vendor/qcom/opensource/usb/hal/usb_compositions.conf index 263fef49a1..f1eb092136 100644 --- a/VENDOR.13/vendor/qcom/opensource/usb/hal/usb_compositions.conf +++ b/VENDOR.13/vendor/qcom/opensource/usb/hal/usb_compositions.conf @@ -10,6 +10,7 @@ mass_storage 0x05C6 0xF000 mass_storage,adb 0x05C6 0x9015 adb,mass_storage diag,adb 0x05C6 0x901D diag,adb,serial_cdev 0x05C6 0x901F +diag,adb,serial_cdev,mass_storage 0x05C6 0x901F diag 0x05C6 0x900E diag,serial_cdev,rmnet,adb 0x05C6 0x9091 diag,serial_cdev,rmnet 0x05C6 0x9092 如上修改会出现先出现U盘模式,后出现MTP,我想默认MTP,不要出现U盘模式,但是要同时支持U盘功能,怎么修改?
10-15
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值