坑多多之USB ethernet

BUG背景

硬件平台:autochips ac8257

Android版本:9.0 r3

设备通过USB外接TBOX,通过TBOX上网,等效与外接一USB以太网网卡。所有问题的根源为最初设计的没有考虑USB网卡热插拔。

问题一 system_server被杀

复现方法

不断拔插USB设备,可用脚本来模拟。

USB网络共享

辅助测试设备 USB OTG口(Device模式) - USB公对公连接线 - 待测设备USB OTG口(Host模式),辅助测试设备用“热点和网络共享”-》“USB网络共享”给待测设备共享网络来复现问题。

模拟触摸屏点击

辅助测试设备用input tap模拟触摸屏点击,来自动切换。两次触摸之间的时间不能太短,太短界面响应不过来,实践经验时间间隔3秒最容易复习问题。

#!/bin/bash

function usb_tether_switch() {
    adb shell input tap 1020 300
    sleep 3
}

function enter_tether_page() {
    adb shell am start com.android.settings/.TetherSettings
}

function auto_test() {
    enter_tether_page

    i=0
    while :
    do
        i=$((i+1))
        echo "`date +%Y%m%d_%H%M%S` $i"
        usb_tether_switch
    done
}

auto_test
复位USB Hub

不断复位待测设备的USB Hub来复现问题。

错误日志一

E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: EthernetServiceThread
E AndroidRuntime: java.lang.ArrayIndexOutOfBoundsException: length=2; index=-1
E AndroidRuntime:        at com.android.internal.util.StateMachine$SmHandler.getCurrentState(StateMachine.java:1151)
E AndroidRuntime:        at com.android.internal.util.StateMachine$SmHandler.access$1300(StateMachine.java:681)
E AndroidRuntime:        at com.android.internal.util.StateMachine.toString(StateMachine.java:2088)
E AndroidRuntime:        at java.lang.String.valueOf(String.java:2896)
E AndroidRuntime:        at java.lang.StringBuilder.append(StringBuilder.java:132)
E AndroidRuntime:        at com.android.server.ethernet.EthernetNetworkFactory$NetworkInterfaceState.toString(EthernetNetworkFactory.java:434)
E AndroidRuntime:        at java.lang.String.valueOf(String.java:2896)
E AndroidRuntime:        at java.lang.StringBuilder.append(StringBuilder.java:132)
E AndroidRuntime:        at com.android.server.ethernet.EthernetNetworkFactory.networkForRequest(EthernetNetworkFactory.java:217)
E AndroidRuntime:        at com.android.server.ethernet.EthernetNetworkFactory.acceptRequest(EthernetNetworkFactory.java:82)
E AndroidRuntime:        at android.net.NetworkFactory.evalRequest(NetworkFactory.java:234)
E AndroidRuntime:        at android.net.NetworkFactory.evalRequests(NetworkFactory.java:253)
E AndroidRuntime:        at android.net.NetworkFactory.handleSetFilter(NetworkFactory.java:204)
E AndroidRuntime:        at android.net.NetworkFactory.handleMessage(NetworkFactory.java:149)
E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:106)
E AndroidRuntime:        at android.os.Looper.loop(Looper.java:193)
E AndroidRuntime:        at android.os.HandlerThread.run(HandlerThread.java:65)

错误日志二

E/AndroidRuntime(  650): *** FATAL EXCEPTION IN SYSTEM PROCESS: EthernetServiceThread
E/AndroidRuntime(  650): java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again
E/AndroidRuntime(  650):        at java.lang.Thread.nativeCreate(Native Method)
E/AndroidRuntime(  650):        at java.lang.Thread.start(Thread.java:733)
E/AndroidRuntime(  650):        at com.android.internal.util.StateMachine.<init>(StateMachine.java:1305)
E/AndroidRuntime(  650):        at android.net.ip.IpClient.<init>(IpClient.java:706)
E/AndroidRuntime(  650):        at android.net.ip.IpClient.<init>(IpClient.java:689)
E/AndroidRuntime(  650):        at com.android.server.ethernet.EthernetNetworkFactory$NetworkInterfaceState.start(EthernetNetworkFactory.java:305)
E/AndroidRu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值