1*33f37583SAndroid Build Coastguard Worker# Only trigger if persist.debug.trigger_watchdog.apex is non-empty. 2*33f37583SAndroid Build Coastguard Workeron boot && property:persist.debug.trigger_watchdog.apex=* 3*33f37583SAndroid Build Coastguard Worker setprop debug.trigger_watchdog.status start 4*33f37583SAndroid Build Coastguard Worker exec -- /system/bin/log -t TriggerWatchdog "Starting trigger_watchdog" 5*33f37583SAndroid Build Coastguard Worker exec_background u:r:su:s0 -- /system/bin/sh /system/bin/trigger_watchdog.sh 6*33f37583SAndroid Build Coastguard Worker 7*33f37583SAndroid Build Coastguard Worker# Only trigger if persist.debug.trigger_reboot_after_activation is non-empty. 8*33f37583SAndroid Build Coastguard Workeron boot && property:debug.trigger_reboot_once_after_activation=1 && property:persist.debug.trigger_reboot_after_activation=* 9*33f37583SAndroid Build Coastguard Worker setprop debug.trigger_watchdog.status start 10*33f37583SAndroid Build Coastguard Worker exec -- /system/bin/log -t TriggerWatchdog "Rebooting once after activation" 11*33f37583SAndroid Build Coastguard Worker exec_background u:r:su:s0 -- /system/bin/sh /system/bin/trigger_reboot.sh 12*33f37583SAndroid Build Coastguard Worker 13*33f37583SAndroid Build Coastguard Workeron boot && property:persist.debug.trigger_reboot_twice_after_activation=1 && property:persist.debug.trigger_reboot_after_activation=* 14*33f37583SAndroid Build Coastguard Worker setprop debug.trigger_watchdog.status start 15*33f37583SAndroid Build Coastguard Worker exec -- /system/bin/log -t TriggerWatchdog "Checking checkpointing revert" 16*33f37583SAndroid Build Coastguard Worker exec_background u:r:su:s0 -- /system/bin/sh /system/bin/trigger_reboot.sh 17*33f37583SAndroid Build Coastguard Worker 18*33f37583SAndroid Build Coastguard Workeron boot && property:persist.debug.trigger_updatable_crashing_for_testing=1 19*33f37583SAndroid Build Coastguard Worker # Mock the fact that a service was crashing. 20*33f37583SAndroid Build Coastguard Worker setprop sys.init.updatable_crashing_process_name test_process 21*33f37583SAndroid Build Coastguard Worker setprop sys.init.updatable_crashing 1 22*33f37583SAndroid Build Coastguard Worker 23*33f37583SAndroid Build Coastguard Workeron boot && property:test.apex_revert_test_force_reboot=1 24*33f37583SAndroid Build Coastguard Worker exec_start rebooting_service 25*33f37583SAndroid Build Coastguard Worker 26*33f37583SAndroid Build Coastguard Worker# Simulate a situation when userspace reboot fails to remount userdata. Since triggers in 27*33f37583SAndroid Build Coastguard Worker# rootdir/init.rc are guaranteed to be executed before ones in other .rc files, by the time this is 28*33f37583SAndroid Build Coastguard Worker# executed init already executed `on userspace-reboot-fs-remount` trigger in rootdir/init.rc, 29*33f37583SAndroid Build Coastguard Worker# meaning that /system/bin/vdc checkpoint markBootAttempt was already called. 30*33f37583SAndroid Build Coastguard Workeron userspace-reboot-fs-remount && property:test.apex_userspace_reboot_simulate_remount_failed=1 31*33f37583SAndroid Build Coastguard Worker exec_start rebooting_service 32*33f37583SAndroid Build Coastguard Worker 33*33f37583SAndroid Build Coastguard Worker# Simulate a situation when userspace reboot fails during a shutdown sequence. This is a very crude 34*33f37583SAndroid Build Coastguard Worker# simulation, better one would be to actually start a service that ignores SIGKILL. 35*33f37583SAndroid Build Coastguard Workeron userspace-reboot-requested && property:test.apex_userspace_reboot_simulate_shutdown_failed=1 36*33f37583SAndroid Build Coastguard Worker exec_start rebooting_service 37*33f37583SAndroid Build Coastguard Worker 38*33f37583SAndroid Build Coastguard Workerservice rebooting_service /system/bin/false 39*33f37583SAndroid Build Coastguard Worker reboot_on_failure reboot,apex-revert-test 40*33f37583SAndroid Build Coastguard Worker disabled 41