Permissions and Storage
This project depends heavily on permissions and local storage layout, so both deserve a dedicated reference page.
Core permissions
Based on the current Flutter authorization page and AndroidManifest.xml, the most important permissions are:
| Permission | Purpose |
|---|---|
| Background execution | Reduces process cleanup and helps companion and automation tasks stay alive |
| Overlay permission | Allows the agent to render above other apps |
| Installed apps access | Lets the agent know which target apps are available on the device |
| Accessibility service | Enables real clicks, input, scrolling, and screen reading |
Additional permissions visible in the manifest
POST_NOTIFICATIONSREQUEST_IGNORE_BATTERY_OPTIMIZATIONSQUERY_ALL_PACKAGESRECORD_AUDIOSYSTEM_ALERT_WINDOWREAD_MEDIA_IMAGESMANAGE_EXTERNAL_STORAGEREQUEST_INSTALL_PACKAGESSCHEDULE_EXACT_ALARMREAD_CALENDARWRITE_CALENDARFOREGROUND_SERVICE_*
Together these support notifications, audio recording, screenshots, alarms, update installs, calendar actions, and foreground-service behavior.
Shizuku
The authorization page treats Shizuku as an advanced capability. A practical interpretation is:
- the core execution chain may not strictly require it
- but broader system-level operations and compatibility can improve when it is available
Workspace directories
According to AgentWorkspaceManager.kt, the app maintains a stable workspace layout:
workspace/
├── attachments/
├── workspace/
├── public/
├── shared/
├── offloads/
├── browser/
└── .omnibot/
├── agent/config.json
├── memory/
│ ├── SOUL.md
│ ├── CHAT.md
│ ├── MEMORY.md
│ ├── short-memories/
│ └── index/
├── skills/
└── models/
├── OmniInfer-llama/
├── OmniInfer-mnn/
└── OmniInfer-qnn/Why these directories matter
SOUL.md: identity, tone, and behavioral boundariesCHAT.md: default chat promptMEMORY.md: long-term stable memoryshort-memories/: daily procedural memorymodels/: local model assets
Database storage
The Room database file name is derived from:
omnibot_cache_databaseossThe current schema version is:
11Typical entities
conversationsmessagesagent_conversation_entriestoken_usage_recordsexecution_records
This shows the app stores not just chat history, but also agent execution traces and token usage locally.
Lightweight configuration storage
MMKV mainly holds:
- MCP enablement, host, port, and token
- UI preferences
- fast-changing lightweight settings
Compared with Room, this is the better fit for frequently updated toggles and runtime flags.
Default MCP behavior
The local MCP service currently defaults to:
8899and uses Bearer token authentication. For debugging network issues, the first thing to test is usually:
/mcp/healthIf that does not respond, investigate networking, port exposure, and the enablement switch before you dig into higher-level agent behavior.
