作者:cui115588 | 来源:互联网 | 2023-10-15 18:39
Platform:QuectelChip:SC66OS:Android9.0Kernel:4.4.153现象拿到源码编译烧录;执行adbdevices能认到设备但是设备序列号却是?
Platform: Quectel
Chip: SC66
OS: Android9.0
Kernel: 4.4.153
现象
拿到源码 编译 烧录;执行adb devices 能认到设备但是设备序列号却是?
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/4fe2676dcd696f2f.png)
查看设备序列号:cat proc/cmdline
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/9c35e2fcaf333c54.png)
网上说的好多种方法是 修改节点:/sys/class/android_usb/android0/iSerial即可,但目前所调设备无此节点
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/6d67f0adafd22c88.png)
调试
1.进入设备输入: find . -name serialnumber
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/53fdab6d333fc79c.png)
2.进入所示路径,查看其值
cat /config/usb_gadget/g1/strings/0x409/serialnumber
cat /config/usb_gadget/g2/strings/0x409/serialnumber
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/5c6d6d0950c899a2.png)
3.g1路径下的值和adb devices 设备所显示的值是一样的,故修改g1路径下的值
cat /config/usb_gadget/g1/strings/0x409/serialnumber
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/3803947cd4391ab7.png)
4.修改完后退出adb 查看adb devices 发现没有生效 要执行下adb kill-server 重新启动adb
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/bd7bdb665fd15bbc.png)
代码 修改
#在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
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/2e326dfab34c0bb0.png)
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/f8dc70ce72e4ace1.png)
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–放开屏蔽掉的代码
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/cf159c4d589ffa81.png)
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
编译烧录看现象
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/8663c1d087fc64b9.png)
方法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
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/491971a5de093999.png)
编译烧录看现象:
![《[SC66 Android9.0]修改Android序列号》](https://img7.php1.cn/3cdc5/cd05/5a0/42dc92eea658b067.png)