当前位置:网站首页>Chrome浏览器的crash问题

Chrome浏览器的crash问题

2022-07-06 08:23:00 jeephao

背景

测试报了个GMS版本上出现Chrome浏览器播放youtube视频,直接闪退crash.

 附上Chrome浏览器报错打印的堆栈信息,网上一搜还是有很多看上去类似的bug, 不过有时候还是具体案例需要具体分析. 基本就只知道ThreadPoolSingl 这个线程引发,但是为什么会发生呢?

而且进一步发现一个问题是,此时camera app也是无法打开的,暂时还没办法了解这两者之间有什么关联.

06-01 10:47:46.584  1325  1412 I chatty  : uid=1000(system) ActivityManager expire 7 lines
06-01 10:47:47.107  1325  1462 I chatty  : uid=1000(system) batterystats-wo expire 10 lines
06-01 10:47:51.456  1325  7132 I chatty  : uid=1000(system) Binder:1325_15 expire 2 lines
06-01 10:47:53.442  1325  9253 I chatty  : uid=1000(system) Binder:1325_1A expire 3 lines
06-01 10:47:53.679  1325  1325 I chatty  : uid=1000 system_server expire 2 lines
06-01 10:47:53.986  9259  9328 F libc    : Fatal signal 5 (SIGTRAP), code -6 (SI_TKILL) in tid 9328 (ThreadPoolSingl), pid 9259 (.android.chrome)
06-01 10:47:54.198 10220 10220 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-01 10:47:54.198 10220 10220 F DEBUG   : Build fingerprint: 'xxx/xxx/xxx-1:10/QKQ1.200407.002/217.01.00.0031:user/release-keys'
06-01 10:47:54.198 10220 10220 F DEBUG   : Revision: 'sdm450'
06-01 10:47:54.198 10220 10220 F DEBUG   : ABI: 'arm'
06-01 10:47:54.199 10220 10220 F DEBUG   : Timestamp: 2022-06-01 10:47:54+0800
06-01 10:47:54.199 10220 10220 F DEBUG   : pid: 9259, tid: 9328, name: ThreadPoolSingl  >>> com.android.chrome <<<
06-01 10:47:54.199 10220 10220 F DEBUG   : uid: 10139
06-01 10:47:54.199 10220 10220 F DEBUG   : signal 5 (SIGTRAP), code -6 (SI_TKILL), fault addr --------
06-01 10:47:54.199 10220 10220 F DEBUG   : Abort message: '[FATAL:jni_android.cc(249)] Please include Java exception stack in crash report
06-01 10:47:54.199 10220 10220 F DEBUG   : '
06-01 10:47:54.199 10220 10220 F DEBUG   :     r0  00000000  r1  00000000  r2  7fffffff  r3  00000000
06-01 10:47:54.199 10220 10220 F DEBUG   :     r4  bb0e442c  r5  0000004f  r6  aa993320  r7  0000004f
06-01 10:47:54.199 10220 10220 F DEBUG   :     r8  bb0e4878  r9  bb0e487c  r10 e928f260  r11 bb0e442c
06-01 10:47:54.199 10220 10220 F DEBUG   :     ip  bb0e43f0  sp  bb0e4418  lr  e927dfc3  pc  a948ec74
06-01 10:47:54.201 10220 10220 F DEBUG   : 
06-01 10:47:54.201 10220 10220 F DEBUG   : backtrace:
06-01 10:47:54.201 10220 10220 F DEBUG   :       #00 pc 01c8dc74  /system/product/app/TrichromeLibrary/TrichromeLibrary.apk!libmonochrome.so (offset 0x665000) (BuildId: 2e75332e045e71dbc9a5c7b8964276faac6e441d)

继续从log中追踪,发现了一些ThreadPoolSingl线程发起读取camera属性的selinux权限Log

06-01 10:51:26.455 13271 13271 W ThreadPoolSingl: type=1400 audit(0.0:473): avc: denied { read } for name="u:object_r:persist_camera_prop:s0" dev="tmpfs" ino=15713 scontext=u:r:untrusted_app:s0:c139,c256,c512,c768 tcontext=u:object_r:persist_camera_prop:s0 tclass=file permissive=0
06-01 10:51:26.455 13271 13271 I chatty  : uid=10139(com.android.chrome) identical 1 line
06-01 10:51:26.455 13271 13271 W ThreadPoolSingl: type=1400 audit(0.0:475): avc: denied { read } for name="u:object_r:persist_camera_prop:s0" dev="tmpfs" ino=15713 scontext=u:r:untrusted_app:s0:c139,c256,c512,c768 tcontext=u:object_r:persist_camera_prop:s0 tclass=file permissive=0
06-01 10:51:26.473 13271 13352 E libc    : Access denied finding property "vendor.camera.aux.packagelist"
06-01 10:51:26.474 13271 13352 I chatty  : uid=10139(com.android.chrome) identical 1 line
06-01 10:51:26.474 13271 13352 E libc    : Access denied finding property "vendor.camera.aux.packagelist"
06-01 10:51:26.483   815  1770 W ServiceManager: Permission failure: android.permission.CAMERA from uid=10139 pid=13271
06-01 10:51:26.465 13271 13271 W ThreadPoolSingl: type=1400 audit(0.0:476): avc: denied { read } for name="u:object_r:persist_camera_prop:s0" dev="tmpfs" ino=15713 scontext=u:r:untrusted_app:s0:c139,c256,c512,c768 tcontext=u:object_r:persist_camera_prop:s0 tclass=file permissive=0
06-01 10:51:26.484 13271 13352 E libc    : Access denied finding property "vendor.camera.aux.packagelist"

另外,也通过反编译chrome浏览器apk,发现也是有一些类似扫描二维码的功能,需要调用camera,最主要的标志是类似这样的属性vendor.camera.aux.packagelist确实能在chrome浏览器中搜索到.

简单定位到这里,不由得开始怀疑是单台机器的camera硬件存在问题,由此之前的保留现场不敢重启和恢复出厂担心复现不了的疑虑基本就小了很多

尝试重启,现象依然存在;

恢复出厂,现象依然存在.

紧接着就开启最后一步的验证,

直接和没有问题的机器调换camera模组,结果就是这么不出意料的确认下来了,换了camera之后,camera能打开,浏览器播放youtube也正常了.而被交换的机器完美复现问题.

至此,这个问题算是告一段落,稍微回想了下,现在来看,并不是特别难分析,但是如果一直在最初的chrome只要播放youtube就crash的点上去分析定位,还真没这么顺利;刚好有个camera打不开的问题,相当于给了一个明确的方向。

遇到问题,如何排查,感触一下确认有效的方向对解决一个问题的效率还是有蛮大的影响的,但是偶尔也需要有绕弯的时候,毕竟会让自己深入去挖掘更多之前不想触碰的知识点.

原网站

版权声明
本文为[jeephao]所创,转载请带上原文链接,感谢
https://blog.csdn.net/jeephao/article/details/125104452