Android Workflow
Phone Provisioning
Target hardware is Ulefone Armor X12 running Android 13 Go Edition. PPSM provisions over USB using ADB where Android permits it.
Golden Phone Reference
Golden Phone Reference Specification is the current read-only target for provisioning, health checks, repair workflows, and regression comparison.
Instruction Language defines the PPSM human-instruction style, split checklist/demonstration layout, and reusable offline animation approach for wizard steps.
Current Milestone
PPSM has moved beyond read-only discovery into controlled provisioning on approved non-Golden Armor X12 phones. Golden Phone remains read-only.
Milestone 3 Framework Status
- PPSM has a backend-neutral provisioning framework under
src/modules/phoneProvisioning. - Workflow sessions are JSON-backed and resumable.
- The simulated device backend supports ready, unauthorized, low-battery, Wi-Fi-failed, application-missing, provisioned, and disconnected states.
- Health checks are independently registered and return structured status results.
- The Service Portal includes reusable workflow UI components for status cards, progress, instructions, waiting state, verification, completion, and failure.
Android Inspection and Mutation Boundary
- PPSM has separate Android backend interfaces for
DeviceDiscovery,DeviceInspection,DeviceMutation, andDeviceVerification. - Read-only inspection still comes first: ADB state, identity, battery, storage, app, Wi-Fi, policy, kiosk, screen settings, and time settings.
- Write operations are controlled and explicit: Wi-Fi configuration, application install/update, Device Owner/kiosk completion, screen settings, and time settings.
- Unauthorized-device wipe warning remains scare-only. PPSM must never wipe unauthorized personal devices.
Device Owner and Kiosk Completion
- PPSM can complete the Golden Phone kiosk target on an approved, non-Golden Armor X12 test phone.
- The verified target package is
com.example.pagepointaudiotest, matching the Golden Phone. - The verified Device Owner component is
com.example.pagepointaudiotest/.PagePointDeviceAdminReceiver. - The key provisioning order is: install APK without launching, set Device Owner, launch PagePoint, then apply Golden screen settings and verify lock task.
- The live Lisa test phone reached health
PASSfor Device Owner, Device Admin, boot receiver, lock task, kiosk UI, keyguard, rotation, screen timeout, Wi-Fi, application, permissions, storage, and battery. - Boot behavior is verified, but Android may return ADB before PagePoint receives
BOOT_COMPLETED. PPSM should allow a boot window before declaring kiosk failure.
Time and NTP Provisioning
- PPSM provisions Android global
ntp_serverto192.168.50.2. - PPSM enables Android automatic network time with
auto_time=1. - PPSM disables automatic timezone with
auto_time_zone=0. - PPSM sets the DYY9 timezone with
cmd alarm set-timezone America/New_York. - Health validation checks NTP server, auto-time, auto-timezone, timezone, and current phone date output.
- Test result: a fourth phone intentionally configured with wrong date/time and disabled NTP was corrected by the provisioning wizard.
Future note: America/New_York is correct and frozen for DYY9/Northeast deployment. Before PagePoint ships to another region, timezone should become a site configuration value while preserving the same validation logic.
Wizard Human and Automatic Phases
- The Provision Phone wizard separates Guided Human Setup, Control Transfer, and Automatic Provisioning.
- Before ADB authorization, PPSM explicitly tells the installer it is guiding only and cannot verify the current Android screen.
- When ADB authorization is detected, PPSM shows a distinct Phone Connected handoff screen before continuing.
- After handoff, PPSM advances automatically through inspection, Wi-Fi/time, app install/verification, kiosk completion, health checks, and ready/blocker state where it can verify the result.
- The provisioning footer is workflow-only: BACK near NEXT in the footer. The title-bar Home button remains the exit path.
Portrait-First Layout
- The animation/demonstration window is narrower and taller so it better matches what the installer sees on the phone.
- The animation area extends lower on the screen.
- Instructional text is larger and kept visible beside/below the animation area.
- NTP/time-zone status remains visible in the Wi-Fi/time step.
- No underlying provisioning workflow changes should be made for layout-only improvements unless a real bug appears.
Provisioning Checks
- ADB state, serial, model, Android version, battery, and charging state.
- Installed PagePoint package, version, signature, permissions, and launcher state.
- Current SSID, IP, gateway, DNS, Android validation result, PPOE reachability, and app/socket status.
- Device Owner, Device Admin, BootReceiver, lock task mode, lock-task allowlist, status/navigation suppression, immersive mode, keyguard disabled, rotation lock, and screen timeout.
- Time source: PPSM NTP server, automatic network time, timezone mode, configured timezone, and phone date.
Open Device Tests
- Repeat the full factory-reset flow on another Armor X12 to confirm the Device Owner/kiosk/time sequence is reproducible.
- Measure the safe post-reboot wait window before kiosk health failure.
- Define APK versioning and update/downgrade policy.
- Confirm what can be detected for battery optimization and default launcher state.