史上最强Android保活思路:深入剖析腾讯TIM的进程永生技术(9)
2023-04-30 来源:飞速影视
从这里,可以发现com.tencent.tim: Daemon进程是由于其中一个线程Thread-89所杀,但从名字来看Thread-xxx,很明显是系统自动生成的编号。
问题3:进程内的名叫“Thread-89”的线程具有什么特点,如何做到把进程杀掉?
从下面的截图,可以看出MSF进程的这个特殊的线程当前在执行flock_lock操作,这个明显是一个文件加锁的操作, 这个方法很快就引起了我的注意。同理Daemon进程也有一个这样的线程, 离真相有近了一步。
再来看看调用栈情况:
Cmd line: com.tencent.tim:Daemon"Thread-89"prio=10 tid=12 Native| group="main"sCount=1 dsCount=0 obj=0x32c07460 self=0xf3382000 | sysTid=10712 nice=-8 cgrp=bg_non_interactive sched=0/0handle=0xee824930 | state=S schedstat=( 44972457 14188383 124 ) utm=1 stm=3 core=0 HZ=100 | stack=0xee722000-0xee724000 stackSize=1038KB | held mutexes= kernel: __switch_to 0x74/0x8c kernel: flock_lock_file_wait 0x2a4/0x318 kernel: SyS_flock 0x19c/0x1a8 kernel: el0_svc_naked 0x20/0x28 native: #00 pc 000423d4 /system/lib/libc.so (flock 8) native: #01 pc 0000195d /data/app/com.tencent.tim-1/lib/arm/libdaemon_acc.so (_Z9lock_filePc 64) ... native: #29 pc 0000191f /data/app/com.tencent.tim-1/lib/arm/libdaemon_acc.so (_Z9lock_filePc 2) native: #30 pc 0000191d /data/app/com.tencent.tim-1/lib/arm/libdaemon_acc.so (_Z9lock_filePc) native: #31 pc 0000191b /data/app/com.tencent.tim-1/lib/arm/libdaemon_acc.so (_Z18notify_and_waitforPcS_ 102) ... native: #63 pc 000018d1 /data/app/com.tencent.tim-1/lib/arm/libdaemon_acc.so (_Z18notify_and_waitforPcS_ 28) at com.libwatermelon.WaterDaemon.doDaemon2(Native method) at com.libwatermelon.strategy.WaterStrategy2$2.run(WaterStrategy2.java:111)
本站仅为学习交流之用,所有视频和图片均来自互联网收集而来,版权归原创者所有,本网站只提供web页面服务,并不提供资源存储,也不参与录制、上传
若本站收录的节目无意侵犯了贵司版权,请发邮件(我们会在3个工作日内删除侵权内容,谢谢。)
www.fs94.org-飞速影视 粤ICP备74369512号