Permissions reference
Every Android permission CX Agent declares: why it is needed, what breaks if you deny it, and how to revoke it.
CX Agent asks for a permission only when a feature needs it. You can review them in Settings → Permissions and approvals → Permissions and revoke runtime permissions anytime in Android Settings → Apps → CX Agent → Permissions.
Runtime permissions (you grant these)#
| Permission | Why | If denied |
|---|---|---|
Notifications (POST_NOTIFICATIONS) |
Reply-finished alerts, monitors, morning brief, downloads, background services. | No alerts; background services that need a notification (web server, Telegram bot) won't start. |
Camera (CAMERA) |
Take Picture & Ask, GPS Cam, QR scanner, take_photo. |
Camera features unavailable; you can still pick photos from the gallery. |
Microphone (RECORD_AUDIO) |
Voice input, voice mode, record_audio. |
Type instead. |
Location (ACCESS_FINE/COARSE_LOCATION) |
GPS Cam stamp, get_location, maps "near me", geofence workflow triggers, Wi-Fi SSID on Android 10+. |
No location stamp, nearby search asks for a place, geofences don't fire. |
Calendar (READ/WRITE_CALENDAR) |
"What's on my calendar", morning brief schedule, proactive suggestions. | Calendar answers and suggestions unavailable. |
Nearby devices (BLUETOOTH_CONNECT) |
Bluetooth connected/disconnected workflow triggers. | Bluetooth triggers can't read paired devices. |
Local network (ACCESS_LOCAL_NETWORK, Android 17+) |
SSH to LAN hosts, web server LAN access. | LAN connections fail; internet still works. |
Special access#
| Access | Why |
|---|---|
Termux RUN_COMMAND (com.termux.permission.RUN_COMMAND) |
Run commands in the Termux app. Also needs allow-external-apps=true in Termux. |
Biometric (USE_BIOMETRIC) |
Archive unlock, passwords screen, verify_fingerprint. |
Do Not Disturb access (ACCESS_NOTIFICATION_POLICY) |
Changing ring/notification volume with set_volume. |
| Notification access | Only in builds made with notification access (see Notification access). |
| Battery optimisation whitelist | Recommended for the Telegram bot and background jobs; opened from Telegram/Doctor screens (CX does not request the restricted permission itself). |
Granted automatically#
| Permission | Why |
|---|---|
| Internet, network state, Wi-Fi state | All online features; reconnect after network changes; Wi-Fi info. |
| Wi-Fi multicast | Local network discovery (mDNS) for the web server. |
| Foreground services (special use, media playback, data sync) | Keep a reply running when you leave the app, Telegram bot, web server, Linux install, read aloud and media playback, browser downloads. |
| Wake lock | Keep the CPU awake briefly for jobs and wake_screen. |
Run at startup (RECEIVE_BOOT_COMPLETED) |
Re-arm scheduled jobs, monitors, widgets, workflows and the Telegram bot after reboot or update. |
| Vibrate | Haptics, vibrate. |
Set alarm (SET_ALARM) |
Hand alarms to the Clock app. |
| Set wallpaper | set_wallpaper. |
| Promoted notifications | Live-update style progress notifications on new Android versions. |
CX keyboard API (AGENT_KEYBOARD_API) |
Talk to the companion CX keyboard app (same signing key only). |
Storage (WRITE_EXTERNAL_STORAGE, Android 9 and older only) |
Save files on old Android versions. |
Removed on purpose#
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, NEARBY_WIFI_DEVICES, advertising-ID permissions (AD_ID, ad services) and phone-state are stripped from the app. WRITE_SETTINGS is not declared, so set_brightness is disabled (brightness can only be read).
How to revoke#
Android Settings → Apps → CX Agent → Permissions (runtime), → Special app access (DND, battery), or uninstall Termux permissions in Termux. CX keeps working; only the related feature stops.