一. monkey 测试自动关机-- monkey 误操作导致关机
设备通过system ui发起了重启/关机流程:
11-27 20:16:11.882107 14761 14761 I Monkey : :Sending Touch (ACTION_UP): 0:(516.8933,642.3959)
11-27 20:16:11.883881 14761 14761 I Monkey : Sleeping for 1000 milliseconds
11-27 20:16:11.884261 3357 3357 V ViewRootImpl[ActionsDialog]: enqueueInputEvent: event = MotionEvent { action=ACTION_UP, actionButton=0, id[0]=0, x[0]=516.8933, y[0]=642.3959, toolType[0]=TOOL_TYPE_UNKNOWN, buttonState=0, classification=NONE, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=121284441, downTime=121284437, deviceId=-1, source=0x1002, displayId=0, eventId=-1024454333 },processImmediately = true,mProcessInputEventsScheduled = false, this = android.view.ViewRootImpl@e8facf2
11-27 20:16:11.936457 1033 1033 D ShutdownThread: Notifying thread to start shutdown longPressBehavior=5
修改方案:
SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java
@VisibleForTesting
final class ShutDownAction extends SinglePressAction implements LongPressAction {
ShutDownAction() {
super(R.drawable.ic_lock_power_off,
R.string.global_action_power_off);
}
@Override
public boolean onLongPress() {
//BEGIN
//DATE20211203,Modify XIBIN
// don't actually trigger the bugreport if we are running stability
// tests via monkey
if (ActivityManager.isUserAMonkey()) {
return false;
}
//END
mUiEventLogger.log(GlobalActionsEvent.GA_SHUTDOWN_LONG_PRESS);
if (!mUserManager.hasUserRestriction(UserManager.DISALLOW_SAFE_BOOT)) {
mWindowManagerFuncs.reboot(true);
return true;
}
return false;
}
@Override
public void onPress() {
//BEGIN
//DATE20211203,Modify XIBIN
// don't actually trigger the bugreport if we are running stability
// tests via monkey
if (ActivityManager.isUserAMonkey()) {
return;
}
//END
mUiEventLogger.log(GlobalActionsEvent.GA_SHUTDOWN_PRESS);
// shutdown by making sure radio and power are handled accordingly.
mWindowManagerFuncs.shutdown();
}
@VisibleForTesting
final class RestartAction extends SinglePressAction implements LongPressAction {
RestartAction() {
super(R.drawable.ic_restart, R.string.global_action_restart);
}
@Override
public boolean onLongPress() {
//BEGIN
//DATE20211203,Modify XIBIN
// don't actually trigger the bugreport if we are running stability
// tests via monkey
if (ActivityManager.isUserAMonkey()) {
return false;
}
//END
mUiEventLogger.log(GlobalActionsEvent.GA_REBOOT_LONG_PRESS);
if (!mUserManager.hasUserRestriction(UserManager.DISALLOW_SAFE_BOOT)) {
mWindowManagerFuncs.reboot(true);
return true;
}
return false;
}
@Override
public void onPress() {
//BEGIN
//DATE20211203,Modify XIBIN
// don't actually trigger the bugreport if we are running stability
// tests via monkey
if (ActivityManager.isUserAMonkey()) {
return;
}
//TINNO END
mUiEventLogger.log(GlobalActionsEvent.GA_REBOOT_PRESS);
mWindowManagerFuncs.reboot(false);
}
二. 跑的过程中上层发生重启,譬如:system server 发生crash.
1. system server 发生crash
05-05 19:22:06.628 1354 1393 I DropBoxManagerService: add tag=system_server_wtf isTagEnabled=true flags=0x2
05-05 19:22:06.628 1354 1384 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: android.ui
05-05 19:22:06.628 1354 1384 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.SearchManager.launchAssist(android.os.Bundle)' on a null object reference
05-05 19:22:06.628 1354 1384 E AndroidRuntime: at com.android.server.policy.PhoneWindowManager.launchAssistAction(PhoneWindowManager.java:3421)
05-05 19:22:06.628 1354 1384 E AndroidRuntime: at com.android.server.policy.PhoneWindowManager.access$400(PhoneWindowManager.java:243)
05-05 19:22:06.628 1354 1384 E AndroidRuntime: at com.android.server.policy.PhoneWindowManager$PolicyHandler.handleMessage(PhoneWindowManager.java:689)
05-05 19:22:06.628 1354 1384 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
05-05 19:22:06.628 1354 1384 E AndroidRuntime: at android.os.Looper.loop(Looper.java:223)
05-05 19:22:06.628 1354 1384 E AndroidRuntime: at android.os.HandlerThread.run(HandlerThread.java:67)
05-05 19:22:06.628 1354 1384 E AndroidRuntime: at com.android.server.ServiceThread.run(ServiceThread.java:44)
05-05 19:22:06.628 1354 1384 E AndroidRuntime: at com.android.server.UiThread.run(UiThread.java:45)
2. /重启广播
05-05 19:23:19.381 1000 12806 12821 I uc_send_user_broadcast: [0,android.intent.action.BOOT_COMPLETED]
三. adbd 被杀
有可能是在开发者选项里面打开或者关闭debug:
<6>[ 3013.807676] [05-05 18:31:06.675]Killing 'adbd' (6077), adj -1000,