遇到一个挂断Volte电话后,过了一会掉网又自动恢复的问题。
经分析log,AP发送了power off 和on 命令给modem。所以是AP侧问题。
08-28 11:32:03.814 8076 8103 D RILJ : [3650]> RADIO_POWER on = false [SUB0]
08-28 11:32:03.831 8076 8103 D RILJ : [3655]> RADIO_POWER on = false [SUB1]
08-28 11:32:04.754 8076 8076 D RILJ : [3690]> RADIO_POWER on = true [SUB0]
08-28 11:32:06.204 8076 8076 D RILJ : [3749]> RADIO_POWER on = true [SUB1]
快速的发送这一组命令,一般是RIL重启了。是RIL自己问题导致的么?
08-28 11:32:03.797 8076 8076 D RILJ : RIL: init preferredNetworkType=22 cdmaSubscription=0)
08-28 11:32:03.808 902 902 D RILC : setResponseFunctions
08-28 11:32:03.808 902 902 D RILC : rilConnectedInd
08-28 11:32:03.809 902 902 D RILC : radioStateChangedInd: radioState 10
08-28 11:32:03.809 902 902 I RILC : RIL Daemon version: Qualcomm RIL 1.0
08-28 11:32:03.810 8076 8103 D RILJ : Unsol response received; Sending ack to ril.cpp [SUB0]
08-28 11:32:03.811 8076 8103 D RILJ : [UNSL]< UNSOL_RIL_CONNECTED [SUB0]
08-28 11:32:03.811 8076 8076 D RILJ : [3649]> GET_HARDWARE_CONFIG [SUB0]
08-28 11:32:03.839 1086 1086 I RILC : RIL Daemon version: Qualcomm RIL 1.0
08-28 11:32:03.849 8076 8076 D QTIRILJ : QtiRIL
08-28 11:32:03.857 8076 8103 D QTIRILJ : QtiRadio interface service started
PHONE重启会重新初始化RIL,是不是phone重启呢?
果真,systemlog如下,因为phone anr导致重启phone。:
08-28 11:32:03.381 1258 1299 E ActivityManager: ANR in com.android.phone
08-28 11:32:03.381 1258 1299 E ActivityManager: PID: 1973
08-28 11:32:03.381 1258 1299 E ActivityManager: Reason: Broadcast of Intent { act=com.android.internal.telephony.data-stall flg=0x14 (has extras) }
08-28 11:32:03.387 1258 1299 I ActivityManager: Killing 1973:com.android.phone/1001 (adj -800): bg anr
08-28 11:32:03.580 1258 2480 I ActivityManager: Process com.android.phone (pid 1973) has died: pers PER
08-28 11:32:03.614 1258 2480 I ActivityManager: Start proc 8076:com.android.phone/1001 for restart com.android.phone
anr原因呢,这要看anr目录下的日志了,如下,可以看到卡在调用camera模块的函数。所以此问题转给camere处理了^_^
"main" prio=5 tid=1 Native
| group="main" sCount=1 dsCount=0 flags=1 obj=0x7282c6b0 self=0x7787cc2a00
| sysTid=1973 nice=0 cgrp=default sched=0/0 handle=0x780c8919a8
| state=S schedstat=( 9952400971 6060426900 27050 ) utm=446 stm=549 core=4 HZ=100
| stack=0x7fe71dd000-0x7fe71df000 stackSize=8MB
| held mutexes=
kernel: (couldn't read /proc/self/task/1973/stack)
native: #00 pc 000000000006a79c /system/lib64/libc.so (__ioctl+4)
native: #01 pc 0000000000024708 /system/lib64/libc.so (ioctl+136)
native: #02 pc 00000000000549e8 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+256)
native: #03 pc 000000000005562c /system/lib64/libbinder.so (android::IPCThreadState::waitForResponse(android::Parcel*, int*)+60)
native: #04 pc 0000000000055490 /system/lib64/libbinder.so (android::IPCThreadState::transact(int, unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+224)
native: #05 pc 000000000004c2c8 /system/lib64/libbinder.so (android::BpBinder::transact(unsigned int, android::Parcel const&, android::Parcel*, unsigned int)+72)
native: #06 pc 000000000011f7e4 /system/lib64/libandroid_runtime.so (???)
native: #07 pc 0000000000911464 /system/framework/arm64/boot-framework.oat (Java_android_os_BinderProxy_transactNative__ILandroid_os_Parcel_2Landroid_os_Parcel_2I+196)
at android.os.BinderProxy.transactNative(Native method)
at android.os.BinderProxy.transact(Binder.java:793)
at android.hardware.camera2.ICameraDeviceUser$Stub$Proxy.disconnect(ICameraDeviceUser.java:286)
at android.hardware.camera2.impl.ICameraDeviceUserWrapper.disconnect(ICameraDeviceUserWrapper.java:65)
at android.hardware.camera2.impl.CameraDeviceImpl.close(CameraDeviceImpl.java:1062)
- locked <0x006b2d21> (a java.lang.Object)
at com.qualcomm.ims.vt.Camera2.close(Camera2.java:149)
at com.qualcomm.ims.vt.CameraController.closeCamera(CameraController.java:105)
at com.qualcomm.ims.vt.CameraController.doClose(CameraController.java:302)
- locked <0x0de87546> (a java.lang.Object)
at com.qualcomm.ims.vt.CameraController.close(CameraController.java:165)
at com.qualcomm.ims.vt.CameraController.onMediaDeinitialized(CameraController.java:365)
at com.qualcomm.ims.vt.ImsMedia.notifyOnMediaDeinitialized(ImsMedia.java:231)
at com.qualcomm.ims.vt.ImsMedia.deInit(ImsMedia.java:222)
at com.qualcomm.ims.vt.MediaController.onCallSessionRemoved(MediaController.java:359)
at org.codeaurora.ims.ImsServiceClassTracker.notifyCallRemoved(ImsServiceClassTracker.java:979)
at org.codeaurora.ims.ImsServiceClassTracker.handleCalls(ImsServiceClassTracker.java:498)
- locked <0x09d97307> (a java.util.HashMap)
at org.codeaurora.ims.ImsServiceSub.handleCalls(ImsServiceSub.java:1216)
at org.codeaurora.ims.ImsServiceSub.-wrap5(ImsServiceSub.java:-1)
at org.codeaurora.ims.ImsServiceSub$ImsServiceSubHandler.handleMessage(ImsServiceSub.java:1629)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:187)
at android.app.ActivityThread.main(ActivityThread.java:6674)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
PS:如果出现两个卡同时掉网又恢复的情况,不可能这么巧,一般是modem fatal,RIL crash,或者phone 重启这三种情况。