2025-08-21 01:11:21 -07:00
2025-08-22 15:32:39 -07:00
2025-08-21 01:19:15 -07:00
2025-08-21 01:11:21 -07:00
2025-08-21 01:23:18 -07:00

Config Provisioner

Overview

Config Provisioner is an Android system service and broadcast receiver designed to automate device provisioning based on vendor-specific configuration. On device boot, it checks for a vendor configuration file (/vendor/etc/config_provisioner/vendor.cfg). If provisioning is enabled and a valid APK URL is provided, it downloads and installs a configuration APK, then configures the device setup wizard according to vendor preferences.

Key Features

  • Runs automatically on boot (including locked boot)
  • Checks for vendor configuration file
  • Downloads and installs a configuration APK if required
  • Configures Android Setup Wizard (enables/disables, marks setup complete)
  • Persists provisioning state to avoid repeated runs

Vendor Configuration File Format

The vendor configuration file is located at /vendor/etc/config_provisioner/vendor.cfg. It is a simple key-value file with one setting per line. Lines starting with # are comments and ignored.

Supported Keys

  • enable_setup_wizard (boolean: true/false/1/0)
    • Enables or disables the Android Setup Wizard after provisioning.
  • enable_provisioning (boolean: true/false/1/0)
    • Enables or disables the provisioning process.
  • vendor_id (string)
    • Identifier for the vendor/device.
  • network_timeout (integer, milliseconds)
    • Timeout for network operations (e.g., APK download).
  • config_apk_url (string, URL)
    • URL to the configuration APK to be downloaded and installed.

Example

# Vendor configuration for Config Provisioner
enable_setup_wizard=false
enable_provisioning=true
vendor_id=acme_corp
network_timeout=30000
config_apk_url=https://example.com/config/acme_config.apk

Default Values

If a key is missing, the following defaults are used:

Logging & Debugging

The service logs all configuration values and provisioning steps to logcat under the tags ConfigProvisioner and VendorConfig.

Permissions

The app requires system-level permissions to install packages, access network state, receive boot events, and modify setup wizard state.

License

Description
No description provided
Readme GPL-3.0 60 KiB
Languages
Java 100%