blob: 108fab2accc6549ecc9bc3244ad7fb0c16743570 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Legend:
REQUIRED Must be included in final scripting solution
RECOMMENDED Associated with an optional feature; may have
dependencies on other recommended actions
CUSTOMIZABLE Available for modification, within UX standards
Each top-level comment tag applies to one or more script instructions, until the next top-level
comment tag. A comment tag on a result code applies only to that result code.
The wizard:uris recorded here have the inconvenience of being generated by hand, but they allow
for the full spread of launch flags (we need FLAG_ACTIVITY_NEW_TASK [0x10000000]), where the
<intent> tag processed by Intent.parseIntent() does not.
adb shell am to-intent-uri -a com.android.setupwizard.WELCOME -f 0x10000000 \-\-ez firstRun true
-->
<WizardScript xmlns:wizard="http://schemas.android.com/apk/res/com.google.android.setupwizard"
wizard:version="2">
<!-- Preliminary setup for OEMs [CUSTOMIZABLE] -->
<WizardAction id="oem_pre_setup"
wizard:uri="intent:#Intent;action=com.android.setupwizard.OEM_PRE_SETUP;end" />
<!-- Welcome screen with language selection [RECOMMENDED, CUSTOMIZABLE] -->
<WizardAction id="welcome"
wizard:uri="intent:#Intent;action=com.android.setupwizard.WELCOME;end">
<result wizard:name="start_qr_provision"
wizard:resultCode="101"
wizard:action="check_user_unlock_qr" />
<result wizard:name="dpm_user_complete"
wizard:resultCode="111"
wizard:action="check_user_unlock_dpm_user_complete" />
<result wizard:name="check_user_unlock_work_setup_interrupted_qr_scan"
wizard:resultCode="114"
wizard:action="check_user_unlock_work_setup_interrupted_qr_scan" />
<result wizard:name="check_user_unlock_work_setup_interrupted_consumer_flow"
wizard:resultCode="115"
wizard:action="check_user_unlock_work_setup_interrupted_consumer_flow" />
<result wizard:action="check_user_unlock" />
</WizardAction>
<WizardAction id="check_user_unlock_work_setup_interrupted_qr_scan"
wizard:uri="intent:#Intent;action=com.android.setupwizard.CHECK_USER_UNLOCK;end" />
<WizardAction id="work_setup_interrupted_qr_scan"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.WORK_SETUP_INTERRUPTED;end">
<result wizard:name="continue_start_qr_scan"
wizard:resultCode="1"
wizard:action="check_user_unlock_qr" />
<result wizard:action="factory_reset" />
</WizardAction>
<WizardAction id="check_user_unlock_work_setup_interrupted_consumer_flow"
wizard:uri="intent:#Intent;action=com.android.setupwizard.CHECK_USER_UNLOCK;end" />
<WizardAction id="work_setup_interrupted_consumer_flow"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.WORK_SETUP_INTERRUPTED;end">
<result wizard:name="continue_start_consumer_flow"
wizard:resultCode="1"
wizard:action="check_user_unlock" />
<result wizard:action="factory_reset" />
</WizardAction>
<WizardAction id="check_user_unlock_qr"
wizard:uri="intent:#Intent;action=com.android.setupwizard.CHECK_USER_UNLOCK;end">
<result wizard:action="qr_provision_flow" />
</WizardAction>
<WizardAction id="check_user_unlock_dpm_user_complete"
wizard:uri="intent:#Intent;action=com.android.setupwizard.CHECK_USER_UNLOCK;end">
<result wizard:action="oem_post_setup" />
</WizardAction>
<WizardAction id="check_user_unlock"
wizard:uri="intent:#Intent;action=com.android.setupwizard.CHECK_USER_UNLOCK;end" />
<!-- Check which existing profile should be enabled [RECOMMENDED, CUSTOMIZABLE] -->
<WizardAction id="slots_selection"
wizard:uri="intent:#Intent;action=com.android.setupwizard.SLOTS_SELECTION;end">
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="sim_missing" />
<result wizard:action="carrier_setup" />
</WizardAction>
<!-- Notify user if expected SIM is not found [RECOMMENDED, CUSTOMIZABLE] -->
<WizardAction id="sim_missing"
wizard:uri="intent:#Intent;action=com.android.setupwizard.SIM_MISSING;end">
<result wizard:name="esim"
wizard:resultCode="101"
wizard:action="esim_intro" />
<result wizard:name="esim_only"
wizard:resultCode="102"
wizard:action="carrier_setup" />
</WizardAction>
<WizardAction id="sim_ready"
wizard:uri="intent:#Intent;action=com.android.setupwizard.SIM_READY;end" >
<result wizard:action="carrier_setup" />
</WizardAction>
<WizardAction id="esim_intro"
wizard:uri="intent:#Intent;action=com.android.setupwizard.ESIM_INTRO;end" />
<!-- Activate carrier services [RECOMMENDED] -->
<WizardAction id="carrier_setup"
wizard:uri="intent:#Intent;action=com.android.setupwizard.CARRIER_SETUP;end">
<result wizard:name="all_subscriptions_completed"
wizard:resultCode="98765"
wizard:action="sim_setup" />
<!-- Return to carrier_setup to check for other subscriptions for multi-SIM -->
<result wizard:action="carrier_setup" />
</WizardAction>
<!-- On multi-SIM devices, choose which SIM to use for voice, data, and text [RECOMMENDED, CUSTOMIZABLE] -->
<WizardAction id="sim_setup"
wizard:uri="intent:#Intent;action=com.android.setupwizard.SIM_SETUP;end" />
<!-- Security warning (for enterprise) [RECOMMENDED] -->
<WizardAction id="device_owner_warning"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.DEVICE_OWNER_WARNING;end">
<result wizard:name="skip"
wizard:resultCode="1"
wizard:action="check_frp" />
</WizardAction>
<!-- Factory reset should cause a reboot, but if it returns unexpectedly, continue on to check_frp -->
<WizardAction id="factory_reset"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.FACTORY_RESET;end" />
<!-- Wait to check factory reset protection status [RECOMMENDED] -->
<WizardAction id="check_frp"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.CHECK_FRP;end" />
<!-- Network selection and packages update [REQUIRED, CUSTOMIZABLE] -->
<WizardAction id="connect_and_update"
wizard:script="android.resource://com.shiftos.partner.customization/raw/wizard_script_connect_and_update_flow">
<result wizard:name="no_connection"
wizard:resultCode="1"
wizard:action="no_network_flow" />
</WizardAction>
<!-- Zero touch provisioning (for enterprise) [RECOMMENDED] -->
<WizardAction id="zero_touch"
wizard:script="android.resource://com.shiftos.partner.customization/raw/wizard_script_zero_touch_flow" >
<result wizard:name="dpm_user_complete"
wizard:resultCode="111"
wizard:action="post_dpm_user_flow" />
<result wizard:name="add_personal_account"
wizard:resultCode="120"
wizard:action="add_personal_account" />
</WizardAction>
<!-- Restore from an existing account or device [RECOMMENDED, CUSTOMIZABLE] -->
<WizardAction id="unified_restore_flow"
wizard:script="android.resource://com.shiftos.partner.customization/raw/wizard_script_unified_restore_flow">
<result wizard:action="oem_post_setup" />
</WizardAction>
<!-- Set up without a network connection [RECOMMENDED] -->
<WizardAction id="no_network_flow"
wizard:script="android.resource://com.shiftos.partner.customization/raw/wizard_script_no_network_flow">
<result wizard:action="oem_post_setup" />
</WizardAction>
<!-- Add personal account after work profile provisioning [REQUIRED] -->
<WizardAction id="add_personal_account"
wizard:script="android.resource://com.shiftos.partner.customization/raw/wizard_script_add_personal_account_flow" />
<!-- Flow to run after a user-led device policy managed setup. [RECOMMENDED] -->
<WizardAction id="post_dpm_user_flow"
wizard:script="android.resource://com.shiftos.partner.customization/raw/wizard_script_post_dpm_user_flow">
<result wizard:action="oem_post_setup" />
</WizardAction>
<!-- QR provision flow (for enterprise) [RECOMMENDED] -->
<WizardAction id="qr_provision_flow"
wizard:script="android.resource://com.shiftos.partner.customization/raw/wizard_script_qr_provision_flow" />
<!-- OEM completion [CUSTOMIZABLE] -->
<WizardAction id="oem_post_setup"
wizard:uri="intent:#Intent;action=com.android.setupwizard.OEM_POST_SETUP;end" />
<!-- Google kid account setup. Must be the last setup action. [REQUIRED] -->
<WizardAction id="kid_post_setup"
wizard:uri="intent:#Intent;action=com.google.android.setupwizard.KID_POST_SETUP;end" />
<!-- Leave Setup Wizard [REQUIRED] -->
<WizardAction id="exit"
wizard:uri="intent:#Intent;action=com.android.setupwizard.EXIT;end" />
</WizardScript>