diff --git a/README.md b/README.md index e7d5cbc..3233f00 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,52 @@ -# app_ConfigProvisioner +# 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`: true +- `enable_provisioning`: true +- `network_timeout`: 30000 +- `config_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. + +## License