BEARER_BITMASK, PROFILE_ID, MAX_CONNS, WAIT_TIME, MAX_CONNS_TIME, and MODEM_COGNITIVE were removed from the public API; replace with raw column name strings so the APN insertion code compiles against Android 16.
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:
enable_setup_wizard: trueenable_provisioning: truenetwork_timeout: 30000config_apk_url: https://default.example.com/config.apk
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.