Repository navigation
v4.0, MotoSetupWizard, first-boot, ad-enrollment, complete
v4.0 — MotoSetupWizard: ODM First-Boot Provisioning Gate & Ad Platform Enrollment
What's new
MotoSetupWizard/— Complete decompile + XML scripts of/system/priv-app/MotoSetupWizard/- 25 wizard script XMLs (main flow + 24 sub-flows)
moto-settings.jar(ODM ContentProvider: Global/Secure/System)MotoFinishActivity(the gate: checkin + clearAllActvity)TaboolaWrapper/GlanceWrapper/ApnSettingWrapper(carrier-gated ad activation)connect_and_update_flow.xml(CCC OTA injection before GMS checkin)- Longcheer evidence: developer names, internal tickets,
com.longcheer.android.gmsintegrationresource
Architecture documented
- 26-step main flow (14 ODM-injected = 54%)
- 7 ODM triggers (OEM_PRE/POST_SETUP, Glance, Taboola, PAKS, CCC OTA, MOTO_FINISH)
- Silent ad enrollment: Glance (InMobi) + Taboola — carrier-gated, NOT user opt-in
- PAKS: carrier financing lock via DPM (BIND_DEVICE_ADMIN)
- CCC OTA: forced FOTA before user reaches home screen
moto-settings.jar: ODM key-value store (survives reboot, FOTA-updatable)
The "gate" confirmed
Setup Wizard completes
→ oem_post_setup (step 12)
→ com.longcheer.android.gmsintegration receiver
→ UnisocProxyManagerService activated
→ IUnionPnP profiles loaded
→ rkpdapp PeriodicProvisioner starts
→ UniWifiApp / UniTelephonyApp / RadioInteractorApp activate
→ taboola_setting (step 22)
→ com.taboola.ody.action.START_OOBE
→ paks_financed_setup (step 23)
→ com.motorola.paks.action.financed_setup
→ moto_finish (step 24)
→ MotoFinishActivity.loadNext()
→ setValueForCheckin("suw_onb", "dev_act", "sc_ls")
→ clearAllActvity()
→ ODM control surface:
Research complete
v1.0 → v4.0 covers the full lifecycle:
- v1.0: What runs (apps, Passpoint)
- v2.0: How it's isolated (APEX, VINTF, TEE, EL2)
- v3.0: How it controls (framework extension, HALs, kernel)
- v4.0: When it activates (first-boot gate, ad enrollment, ODM trigger)
NOT a CVE. NOT an exploit.
Architecture documentation of ODM control surface.
All components are legitimate vendor features.
MotoSetupWizard (com.ape.setupwizard) — ODM First-Boot Provisioning Gate & Ad Platform Enrollment
"The party starts here." — The wizard is the invitation. The ODM is the host.
The user never sees who's in charge.
Full Changelog: v3.0...v4.0