| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Copyright (C) 2017 Google Inc. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <!-- |
| 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.android.car.setupwizard" |
| wizard:firstAction="device_owner_warning"> |
| |
| <!-- Security warning [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" /> |
| <result wizard:action="factory_reset" /> |
| </WizardAction> |
| |
| <WizardAction id="factory_reset" |
| wizard:uri="intent:#Intent;action=com.google.android.setupwizard.FACTORY_RESET;end"> |
| <!-- Factory reset should cause a reboot, but if it returns unexpectedly, |
| continue on to check_frp --> |
| <result wizard:action="check_frp" /> |
| </WizardAction> |
| |
| |
| <!-- Wait to check factory reset protection status [RECOMMENDED] --> |
| <WizardAction id="check_frp" |
| wizard:uri="intent:#Intent;action=com.google.android.setupwizard.CHECK_FRP;end"> |
| <result wizard:action="bluetooth_settings" /> |
| </WizardAction> |
| |
| <!-- Bluetooth selection [REQUIRED, CUSTOMIZABLE] --> |
| <WizardAction id="bluetooth_settings" |
| wizard:uri="intent:#Intent;action=com.android.setupwizard.BLUETOOTH_SETTINGS;end"> |
| <result wizard:action="network_settings" /> |
| </WizardAction> |
| |
| |
| <!-- Users must be given the opportunity to set up an internet connection, using the given |
| screens or a custom flow. --> |
| <!-- Network selection [REQUIRED, CUSTOMIZABLE] --> |
| <WizardAction id="network_settings" |
| wizard:uri="intent:#Intent;action=com.android.setupwizard.NETWORK_SETTINGS;end"> |
| <result wizard:name="see_all_wifi" |
| wizard:resultCode="101" |
| wizard:action="wifi_settings" /> |
| <result wizard:name="use_cellular" |
| wizard:resultCode="102" |
| wizard:action="activate_mobile_data" /> |
| <result wizard:name="skip" |
| wizard:resultCode="1" |
| wizard:action="no_network_flow" /> |
| <result wizard:action="captive_portal" /> |
| </WizardAction> |
| |
| <!-- Mobile data activation --> |
| <WizardAction id="activate_mobile_data" |
| wizard:uri="intent:#Intent;action=com.android.setupwizard.ACTIVATE_MOBILE_DATA;end"> |
| <result wizard:action="captive_portal" /> |
| </WizardAction> |
| |
| <!-- Wi-Fi setup --> |
| <WizardAction id="wifi_settings" |
| wizard:uri="intent:#Intent;action=com.android.setupwizard.WIFI_SETTINGS;end"> |
| <result wizard:action="captive_portal" /> |
| </WizardAction> |
| |
| |
| <!-- Resolve captive portal access, and wait for check-in [REQUIRED] --> |
| <WizardAction id="captive_portal" |
| wizard:uri="intent:#Intent;action=com.android.setupwizard.CAPTIVE_PORTAL;end"> |
| <result wizard:action="gms_checkin" /> |
| </WizardAction> |
| <WizardAction id="gms_checkin" |
| wizard:uri="intent:#Intent;action=com.google.android.setupwizard.GMS_CHECKIN;end"> |
| <result wizard:action="ota_update" /> |
| </WizardAction> |
| |
| |
| <!-- Update system packages [REQUIRED] --> |
| <WizardAction id="ota_update" |
| wizard:uri="intent:#Intent;action=com.google.android.setupwizard.OTA_UPDATE;end"> |
| <result wizard:name="skip" |
| wizard:resultCode="1" |
| wizard:action="early_update" /> |
| <result wizard:action="system_update" /> |
| </WizardAction> |
| |
| <WizardAction id="system_update" |
| wizard:uri="intent:#Intent;action=android.settings.SYSTEM_UPDATE_SETTINGS;end"> |
| <!-- System update should cause a reboot, but if it returns unexpectedly, continue on to |
| early update --> |
| <result wizard:action="early_update" /> |
| </WizardAction> |
| |
| |
| <!-- Update other important packages [REQUIRED] --> |
| <WizardAction id="early_update" |
| wizard:uri="intent:#Intent;action=com.google.android.setupwizard.EARLY_UPDATE;end"> |
| <result wizard:action="zero_touch" /> |
| </WizardAction> |
| |
| |
| <!-- Zero touch provisioning (for enterprise) [RECOMMENDED] --> |
| <WizardAction id="zero_touch" |
| wizard:script="android.resource://com.google.android.setupwizard/xml/wizard_script_zero_touch_flow" > |
| <result wizard:name="dpm_user_complete" |
| wizard:resultCode="111" /> |
| <result wizard:action="load_account_intent" /> |
| </WizardAction> |
| |
| |
| <!-- Add an account [REQUIRED] --> |
| <WizardAction id="load_account_intent" |
| wizard:uri="intent:#Intent;action=com.google.android.setupwizard.LOAD_ADD_ACCOUNT_INTENT;B.showTapAndGo=false;end"> |
| <result wizard:action="account_setup" /> |
| </WizardAction> |
| |
| <WizardAction id="account_setup" |
| wizard:uri="intent:#Intent;action=com.google.android.setupwizard.ACCOUNT_SETUP;end"> |
| <result wizard:name="skip" |
| wizard:resultCode="1" |
| wizard:action="no_account_flow" /> |
| <!-- Alternate flow if managed provisioning already set the user up (for enterprise) [RECOMMENDED] --> |
| <result wizard:name="dpm_user_complete" |
| wizard:resultCode="111" /> |
| <result wizard:action="gms_account_checkin" /> |
| </WizardAction> |
| |
| |
| <!-- Checkin with Gservices using account. If it fails, VPA will not be available. [REQUIRED] --> |
| <WizardAction id="gms_account_checkin" |
| wizard:uri="intent:#Intent;action=com.google.android.setupwizard.GMS_ACCOUNT_CHECKIN;end"> |
| <result wizard:name="skip" |
| wizard:resultCode="1" |
| wizard:action="mfm_check" /> |
| <result wizard:action="start_vpa" /> |
| </WizardAction> |
| |
| |
| <!-- Initiate VPA (required for Play Auto-Installs) [RECOMMENDED] --> |
| <WizardAction id="start_vpa" |
| wizard:uri="intent:#Intent;action=com.google.android.setupwizard.START_VPA;end"> |
| <result wizard:action="mfm_check" /> |
| </WizardAction> |
| |
| |
| <!-- Branch to script for setting up with or without an account [REQUIRED] --> |
| <WizardAction id="mfm_check" |
| wizard:uri="intent:#Intent;action=com.google.android.setupwizard.ACCOUNT_CHECK;end"> |
| <result wizard:name="skip" |
| wizard:resultCode="1" |
| wizard:action="no_account_flow" /> |
| <result wizard:action="account_flow" /> |
| </WizardAction> |
| |
| |
| <!-- Set up with an account [REQUIRED] --> |
| <WizardAction id="account_flow" |
| wizard:script="android.resource://com.google.android.setupwizard/xml/wizard_script_new_device_account_flow" /> |
| |
| |
| <!-- Set up without an account [REQUIRED] --> |
| <WizardAction id="no_account_flow" |
| wizard:script="android.resource://com.google.android.setupwizard/xml/wizard_script_no_account_flow" /> |
| |
| |
| <!-- Set up without a network connection [RECOMMENDED] --> |
| <WizardAction id="no_network_flow" |
| wizard:script="android.resource://com.google.android.setupwizard/xml/wizard_script_no_network_flow" /> |
| |
| </WizardScript> |