Platform: Quectel Chip: SC66 OS: Android9.0 Kernel: 4.4.153
现象
拿到源码 编译 烧录;执行adb devices 能认到设备但是设备序列号却是? 查看设备序列号:cat proc/cmdline 网上说的好多种方法是 修改节点:/sys/class/android_usb/android0/iSerial即可,但目前所调设备无此节点
调试
1.进入设备输入: find . -name serialnumber 2.进入所示路径,查看其值 cat /config/usb_gadget/g1/strings/0x409/serialnumber cat /config/usb_gadget/g2/strings/0x409/serialnumber 3.g1路径下的值和adb devices 设备所显示的值是一样的,故修改g1路径下的值 cat /config/usb_gadget/g1/strings/0x409/serialnumber 4.修改完后退出adb 查看adb devices 发现没有生效 要执行下adb kill-server 重新启动adb
代码 修改
#在init.xxx.rc 里面加上打印日志
write /dev/kmsg "[serialnumber]=== dhh === start serialnumber"
在dmesg 里面可以看到打印的信息
方法1
device\qcom\common\rootdir\etc\init.msm.usb.configfs.rc符合条件处(1)加上如下代码,dmesg查看是否有所添加的打印 (1)符合条件查看:USB相关的属性:# getprop |grep usb
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /dev/kmsg "init.msm.usb.configs.rc [serialnumber]=== dhh === start serialnumber"
#看dmesg有没有此打印 是否生效
注意:设备起来 adb devices 出现的还是?要反应几十秒之后才出现序列号,还要修改如下 device\qcom\common\rootdir\etc\init.qcom.usb.sh–放开屏蔽掉的代码
serialnumber=`cat /config/usb_gadget/g1/strings/0x409/serialnumber` 2> /dev/null
if [ "$serialnumber" == "" ]; then
serialno=?
echo $serialno > /config/usb_gadget/g1/strings/0x409/serialnumber
fi
编译烧录看现象
方法2
device\qcom\common\rootdir\etc\init.qcom.usb.rc
on boot
.............
添加如下
write /config/usb_gadget/g1/strings/0x409/serialnumber ${ro.serialno}
write /dev/kmsg "init.qcom.usb.rc [serialnumber]=== dhh === start serialnumber"
#看dmesg有没有此打印 是否生效
device\qcom\common\rootdir\etc\init.qcom.usb.sh–放开屏蔽掉的代码
serialnumber=`cat /config/usb_gadget/g1/strings/0x409/serialnumber` 2> /dev/null
if [ "$serialnumber" == "" ]; then
serialno=?
echo $serialno > /config/usb_gadget/g1/strings/0x409/serialnumber
fi
编译烧录看现象:
|