config.json — WebUI X Configuration
config.json defines the configuration for the WebUI X modules in your system. It is parsed using Moshi into a strongly-typed Kotlin data class, allowing flexible and safe management of WebUI X behaviors, permissions, and dynamic dex loading.
/data/adb/modules/<ID>/webroot/config.json/data/adb/modules/<ID>/webroot/config.mmrl.json
Overview
The config file controls essential WebUI X features like:
- Minimum required versions and packages
- Permissions granted to the UI
- Window and navigation behavior
- Security policies
- Dynamic loading of additional dex or apk files
- UI metadata like title and icon
JSON Structure
{
"modId": "string",
"require": {
"packages": [
{
"code": -1,
"packageName": "string or array of strings",
"supportText": "string",
"supportLink": "string"
}
]
},
"permissions": ["string", "..."],
"historyFallback": false,
"title": "string",
"icon": "string",
"windowResize": true,
"backHandler": true,
"backInterceptor": null,
"refreshInterceptor": "string",
"exitConfirm": true,
"pullToRefresh": false,
"historyFallbackFile": "index.html",
"autoStatusBarsStyle": true,
"dexFiles": [
{
"type": "dex | apk",
"path": "string",
"className": "string",
"cache": true,
}
],
"killShellWhenBackground": true,
"contentSecurityPolicy": "string",
"caching": true,
"cachingMaxAge": 86400
}Properties
require
object — Requirements for WebUI X compatibility.
packages— List of required package sets with optional support info.code(int, default -1) — Status or error code associated.packageName(string or string array) — Package(s) required.supportText(string, optional) — Message to display regarding package.supportLink(string, optional) — URL for more info on package requirements.
permissions
string[] — List of permission strings granted to the WebUI X instance, e.g., "wx.permission.ROOT_PATH".
historyFallback
boolean — If true, fallback to the historyFallbackFile when URL not found. Default false.
title
string — Title displayed in the WebUI X or shortcut.
icon
string — Path relative to the module's webroot pointing to the icon file used for shortcuts or UI.
windowResize
boolean — Enables window resizing behavior. Default true.
backHandler
boolean? — Enables handling back button presses internally. Default true.
backInterceptor
any — Custom logic or object for intercepting back presses. Usually null.
refreshInterceptor
string? — Type of refresh interceptor used; "javascript" or "native".
exitConfirm
boolean — Enable confirmation dialog before exiting. Default true.
pullToRefresh
boolean — Enables pull-to-refresh gesture. Default false.
historyFallbackFile
string — Filename fallback for history navigation. Default "index.html".
autoStatusBarsStyle
boolean — Automatically style Android status bars. Default true.
dexFiles Since v53 Stable on v108
array of objects — Specifies external .dex or .apk files to load additional JavaScript interfaces dynamically.
Each object includes:
type:"dex"or"apk"— File type.path: Path to the.dexor.apkfile (relative to module root).className: Fully qualified Java class name to load from the dex/apk.cache: Boolean to enable caching of loaded interface instances. Defaulttrue.- If you try to load any native library (
*.so) be aware that you always needcachetotrue
- If you try to load any native library (
killShellWhenBackground Since v96
boolean — Whether to terminate shell processes when app goes to background. Default true.
contentSecurityPolicy Since v181
string — Content Security Policy header for WebUI X. Supports placeholders like {domain}.
Default value:
default-src 'self' data: blob: {domain};
script-src 'self' 'unsafe-inline' 'unsafe-eval' {domain};
style-src 'self' 'unsafe-inline' {domain};
connect-src *caching Since v181
boolean — Enables caching of WebUI X resources. Default true.
cachingMaxAge Since v181
int — Maximum cache age in seconds. Default 86400 (24 hours).