- 插上usb线没有充电图标 也不能识别usb
一般都出现在设备重启之后.
充电芯片加载失败.
./AP_Logs/APLog_0002_2025_1010_0434/boot.last/logcat_all.log:02-04 21:07:43.206 494 494 E sc8960x-charger 0-006b : sc8960x read field 52 fail: -107
./AP_Logs/APLog_0002_2025_1010_0434/boot.last/logcat_all.log:02-04 21:07:43.225 494 494 E sc8960x-charger 0-006b : read device version failed(-107)
./AP_Logs/APLog_0002_2025_1010_0434/boot.last/logcat_all.log:02-04 21:07:43.251 494 494 I sc8960x-charger 0-006b: sc8960x prob failed
2 .插上usb线有充电图标 也不能识别usb
//从日志上推测
ro.boot.bootreason\]: \[reboot,shell
//开机动画完成
10-14 14:41:56.131 2025 2116 I wm_boot_animation_done: 21081
//adb 就出现了问题
10-14 14:41:56.746 1852 2799 W adbd : timed out while waiting for FUNCTIONFS_BIND , trying again
//猜测脚本中断了,人工拔插USB线。 中断时间在大概7分钟
Tue Oct 14 19:48:44 2025\] sc8960x-charger 0-006b: **sc8960x_plug_out**
查看代码:
上层adbd 无法收到通讯。
packages/modules/adb/daemon/usb.cpp
monitor_thread_ = std::thread([this]() {
adb_thread_setname("UsbFfs-monitor");
LOG(INFO) << "UsbFfs-monitor thread spawned";
bool bound = false;
bool enabled = false;
bool running = true;
while (running) {
adb_pollfd pfd [2] = {
{ .fd = control_fd_.get(), .events = POLLIN, .revents = 0 },
{ .fd = monitor_event_fd_.get(), .events = POLLIN, .revents = 0 },
};
// If we don't see our first bind within a second, try again.
int timeout_ms = bound ? -1 : 1000;
int rc = TEMP_FAILURE_RETRY(adb_poll (pfd , 2, timeout_ms));
if (rc == -1) {
PLOG(FATAL) << "poll on USB control fd failed";
} else if (rc == 0) {
//一直得到不到通讯.
LOG(WARNING) << "timed out while waiting for FUNCTIONFS_BIND, trying again ";
break;
}