diff --git a/app/build.gradle b/app/build.gradle
index 6d76b64..aa83e70 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -12,8 +12,8 @@ android {
applicationId "com.vectras.vm"
minSdk minApi
targetSdk targetApi
- versionCode 86
- versionName "3.8.2"
+ versionCode 87
+ versionName "3.8.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
@@ -103,12 +103,11 @@ dependencies {
implementation 'com.airbnb.android:lottie:6.7.1'
implementation 'org.apache.commons:commons-compress:1.28.0'
// implementation 'com.google.firebase:firebase-crashlytics-buildtools:3.0.6'
- implementation 'androidx.activity:activity-ktx:1.12.3'
+ implementation 'androidx.activity:activity-ktx:1.12.4'
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
implementation 'androidx.preference:preference-ktx:1.2.1'
implementation "androidx.documentfile:documentfile:1.1.0"
implementation 'androidx.core:core-ktx:1.17.0'
- implementation 'androidx.activity:activity-ktx:1.12.3'
compileOnly project(':shell-loader:stub')
implementation project(":terminal-view")
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 904ccab..ea4f6b6 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -7,7 +7,6 @@
-
@@ -92,6 +91,7 @@
android:exported="false" />
@@ -112,34 +112,31 @@
+ android:exported="false" />
+ android:configChanges="orientation|screenSize|keyboardHidden|smallestScreenSize|screenLayout"
+ android:exported="true" />
+ android:exported="true">
@@ -148,13 +145,13 @@
+ android:configChanges="orientation|screenSize|keyboardHidden|smallestScreenSize|screenLayout"
+ android:exported="true" />
"qemu-system-aarch64";
+ case "PPC" -> "qemu-system-ppc";
+ case "I386" -> "qemu-system-i386";
+ default -> "qemu-system-x86_64";
+ };
+ vterm.executeShellCommand2("killall -15 " + qemuProcess + "; sleep 1; killall -9 " + qemuProcess, false, null);
}
public static void killallqemuprocesses(Context context) {
Terminal vterm = new Terminal(context);
- vterm.executeShellCommand2("killall -15 qemu-system-i386 && killall -15 qemu-system-x86_64 && killall -15 qemu-system-aarch64 && killall -15 qemu-system-ppc", false, null);
+ vterm.executeShellCommand2("pkill -15 -f qemu-system-; sleep 1; pkill -9 -f qemu-system-", false, null);
}
public static void shutdownCurrentVM() {
diff --git a/app/src/main/java/com/vectras/vm/main/core/MainStartVM.java b/app/src/main/java/com/vectras/vm/main/core/MainStartVM.java
index 82a6595..f7c40f7 100644
--- a/app/src/main/java/com/vectras/vm/main/core/MainStartVM.java
+++ b/app/src/main/java/com/vectras/vm/main/core/MainStartVM.java
@@ -77,7 +77,8 @@ public class MainStartVM {
if (MainSettingsManager.getVmUi(context).equals("X11") && !VMManager.isVMRunning(context, vmID)) {
if (MainSettingsManager.getRunQemuWithXterm(context)) {
- runCommandFormat = String.format(runCommandFormat, "xterm -e bash -c \"%s\"");
+ String logFilePath = VMManager.getVMLogFilePath(context, vmID);
+ runCommandFormat = String.format(runCommandFormat, "xterm -e bash -c \"%s 2>&1 | tee " + logFilePath + "\"; cat " + logFilePath + "; rm " + logFilePath);
} else {
runCommandFormat = String.format(runCommandFormat, "bash -c \"%s\"");
}
diff --git a/app/src/main/java/com/vectras/vm/main/monitor/SystemMonitorFragment.java b/app/src/main/java/com/vectras/vm/main/monitor/SystemMonitorFragment.java
index cb56fa7..8b8e863 100644
--- a/app/src/main/java/com/vectras/vm/main/monitor/SystemMonitorFragment.java
+++ b/app/src/main/java/com/vectras/vm/main/monitor/SystemMonitorFragment.java
@@ -104,7 +104,7 @@ public class SystemMonitorFragment extends Fragment {
if (getContext() != null) {
requireActivity().runOnUiThread(this::getQemuInfo);
}
- }, 500, TimeUnit.MILLISECONDS);
+ }, 2000, TimeUnit.MILLISECONDS);
}));
binding.btStopvmvnc.setOnClickListener(v -> {
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 9130856..4d86184 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -91,7 +91,7 @@
密码
端口
中继转发
- 输入中继转发服务器地址 <b>仅在</b> 你使用<br><i>UltraVNC</i>类中继是可用
+ 输入中继转发服务器地址 <b>仅在</b> 您使用<br><i>UltraVNC</i>类中继是可用
不使用中继
中继信息
无
@@ -147,17 +147,17 @@
语言
保存更改
QEMU 创建命令
- 整一个!
- 杀死 QEMU
+ 安装
+ 终止 QEMU
正在安装…
为 Termux 设置声音
- 这使得在 Vectras VM上运行的虚拟机能够使用Termux播放音频(终于不是个哑巴了!)。如果您尚未设置Termux,请选择“开始设置”,将自动复制该命令到剪贴板,您需要粘贴该命令并在Termux中运行以完成设置。下次需要播放声音时请确保Termux正在运行
+ 这使得在 Vectras VM上运行的虚拟机能够使用Termux播放音频。如果您尚未设置Termux,请选择“开始设置”,将自动复制该命令到剪贴板,您需要粘贴该命令并在Termux中运行以完成设置。下次需要播放声音时请确保Termux正在运行
已复制
开始设置
未安装 Termux
您需要在设置之前安装 Termux
- 就等你了…
- 哇袄!
+ 正在等您…
+ 哎呀!
警告!
您设备上的 Android 操作系统或CPU不支持64位,这意味着虚拟机在运行时性能较差且不稳定
全部删除
@@ -170,7 +170,7 @@
所有虚拟机都将被删除。您想继续吗?
删除所有虚拟机
新建
- 什么都没有¯\\_(ツ)_/¯
+ 这里什么都没有
点击底部的“创建”按钮,开始创建新的虚拟机。或者…
允许访问存储空间
您需要允许访问存储空间才能继续
@@ -203,9 +203,9 @@
因必要文件缺失导致系统不工作。该问题可能由安装过程中出差错引发。想要再次进行首次启动时的安装吗?错误码:PROOT_IS_MISSING_0.
发生错误,虚拟机未能启动. 两个及以上的设备不能同时接入同一个插槽.请检查相关设置. 错误码: DRIVE_INDEX_0_EXISTS.
发生错误,虚拟机未能启动. X11用不了. 我们推荐你切换至VNC,确定切换吗?错误码:X11_NOT_AVAILABLE.
- 已切换至VNC. 你现在可以再试试启动虚拟机
+ 已切换至VNC. 您现在可以再试试启动虚拟机
恢复
- 如果你在删除虚拟机时选择保留文件, 你可以把它们恢复回来
+ 如果您在删除虚拟机时选择保留文件, 您可以把它们恢复回来
已恢复
QEMU参数为空. 部分虚拟机的硬件将由QEMU自动设定
出现错误,无法导出:
@@ -219,11 +219,11 @@
成功修复. 部分虚拟机可能被移至回收站 (Recycle bin) 文件夹
"修复失败. 所有虚拟机均被移至回收站 (Recycle bin) "
允许分配大于实际空间的运行内存(memory overcommit)
- A potentially harmful command was detected and it has been blocked. Please check this virtual machine and try again.
+ 检测到潜在有害的命令,已被阻止。请检查此虚拟机并重试。
复制文件
总是复制文件至虚拟机而非直接使用
重装系统(Proot)
- 如果你发现Vectras出现严重问题, 你可以重新安装系统. 所有虚拟机都将保留
+ 如果您发现Vectras出现严重问题, 您可以重新安装系统. 所有虚拟机都将保留
小工具
运行虚拟机时出现问题: 虚拟机所需要的文件或文件夹不存在
创建新虚拟机时自动新建硬盘
@@ -285,7 +285,7 @@
未连接
帮助
首选项
- 在这里你可以像Termux一样设置一些额外按键 (可以看看 这个) 以及其余项 (e.g. META).\n 留空则使用默认值
+ 在这里您可以像Termux一样设置一些额外按键 (可以看看 这个) 以及其余项 (e.g. META).\n 留空则使用默认值
取消
@@ -293,24 +293,24 @@
X11
关于软件
加入我们的电报频道
- 加入我们的电报群获取最新的信息,并且为软件的添砖加瓦畅所欲言
+ 加入我们的电报群获取最新的信息,分享您的意见和建议
加入
不再提示
正在准备中…请保持网络连接
- 已完成 10%\\n请坐和放宽
- 已完成 20%\\n别着急
- 已完成 30%\\n再等等
- 已完成 40%\\n**少女祈祷中**
- 已完成 50%\\n在下了在下了
- 已完成 75%\n快了快了
- 只要能到达那个地方…
- Completed 95%\nKeep it up…
+ 已完成 10%\\n不会太久…
+ 已完成 20%\\n不会太久…
+ 已完成 30%\\n不会太久…
+ 已完成 40%\\n不会太久…
+ 已完成 50%\n不会太久…
+ 已完成 75%\n请勿断开连接…
+ 继续加油…
+ 已完成 95%\n继续加油…
已完成 95%
显示详细日志
请授予必要权限
- 在使用前你必须授予存储权限
+ 在使用前您必须授予存储权限
在设置中找到本软件的存储权限并设置为允许
- 你想要自动设置还是自行选择已经下载好的初始化包
+ 您想要自动设置还是自行选择已经下载好的初始化包
自动
手动
正在准备就绪
@@ -318,7 +318,7 @@
设置的过程中出现了问题. 要重试吗?
显示日志
需要初始化!
- 你可以选择让软件自动下载或者选择初始化包完成手动设置
+ 您可以选择让软件自动下载或者选择初始化包完成手动设置
手动安装
Alpine Xfce4
@@ -374,7 +374,7 @@
启用无障碍权限实现自动开启系统快捷手势的捕获
需要授予WRITE_SECURE_SETTINGS权限
不捕获Meta/Win/Mod4键
- 允许你在捕获按键的同时使用DeX快捷键
+ 允许您在捕获按键的同时使用DeX快捷键
长按实现不自动解除
显示输出
鼠标指针
@@ -392,7 +392,7 @@
正在连接镜像站:
镜像站
欢迎使用Vectras VM。让我们开始吧!
- 正在处理中...\n请坐和放宽,这需要一些时间.
+ 正在处理中...\n这可能需要几分钟.
从公测频道获取更新
用户配置
编辑配置
@@ -435,7 +435,7 @@
已更改
更改失败
输入设备ID(如cdrom)
- 你必须输入设备ID
+ 您必须输入设备ID
这不是一个可移动设备
无匹配的结果
虚拟机列表数据已损坏,要修复吗?
@@ -448,9 +448,9 @@
停止
是
否
- 位置
+ 未知
前往设置
- 就一小会…
+ 请稍候…
新建虚拟机
作者
不兼容ARM架构
@@ -467,11 +467,11 @@
更新
新版本可用
确定
- 你正在使用Beta版本
+ 您正在使用Beta版本
现在获取新版公测版
- 没有信号AWSL
+ 没有信号
要退出吗
- 你只能在Vectras VM完成配置后导入该文件
+ 您只能在Vectras VM完成配置后导入该文件
无法创建虚拟机目录,可能由未授予权限、内部存储空间不足或其他原因造成
和
这不是用于运行QEMU的命令
@@ -481,21 +481,21 @@
命令不允许包含\"|\"
原因
镜像容量太大,试试QCOW2?
- 通过使用此 ROM 的任何文件或任何以任何方式包含内容的文件,你同意Vectras VM 的开发者和贡献者以及此 ROM 或这些文件的创建者不会对你及你的物品发生的任何意外问题负责。但如果此 ROM 或这些文件的创建者被确认有恶意行为,该创建者将承担责任。这也意味着你已同意此 ROM 所包含的操作系统的所有者或提供者的条款和政策。
+ 通过使用此 ROM 的任何文件或任何以任何方式包含内容的文件,您同意Vectras VM 的开发者和贡献者以及此 ROM 或这些文件的创建者不会对您及您的物品发生的任何意外问题负责。但如果此 ROM 或这些文件的创建者被确认有恶意行为,该创建者将承担责任。这也意味着您已同意此 ROM 所包含的操作系统的所有者或提供者的条款和政策。
我同意
看过来!
- 当你导入任何 ROM 或使用包含任何内容的文件时,即表示接受所有这些条款。点击此处阅读全文。
- 加入Telegram群组! 多个人多双筷子
+ 当您导入任何 ROM 或使用包含任何内容的文件时,即表示接受所有这些条款。点击此处阅读全文。
+ 如果想的话,现在就加入 Telegram。
跳过
捐赠
- 如果你喜欢 Vectras VM,你可以在 Patreon 上支持我们。非常感谢!
+ 如果您喜欢 Vectras VM,您可以在 Patreon 上支持我们。非常感谢!
即刻访问
一切就绪!
I386不支持共享文件夹,功能已关闭
使用UEFI(仅对x64生效)
移除虚拟机文件
保留虚拟机文件
- 要移除吗?你可以决定相关文件的去留
+ 要移除吗?您可以决定相关文件的去留
macOS
SD卡
秒,请稍等
@@ -513,7 +513,7 @@
自动检查更新
启动时检查
加入公测频道
- 成为第一个吃螃蟹的人
+ 您将提前收到更新,体验最新功能。
点击选择语言
内存
内存大小(MB)
@@ -523,12 +523,12 @@
您可以运行适用于 ARM 的 Windows、Linux 以及其他操作系统。
可以以比 x86_64 更高的兼容性运行旧的 x86 操作系统。
可以运行为 PowerPC 架构设计的较旧版本 macOS 以及其他操作系统。
- 你可以导入采用CVBI格式的虚拟机整合包
+ 您可以导入采用CVBI格式的虚拟机整合包
深入了解开源虚拟机QEMU
创建命令
为Vectras VM新建虚拟机实现更便利的个性化
选择CPU架构或导入虚拟机
- 你还可以将CVBI文件拖拽至“导入”选项卡
+ 您还可以将CVBI文件拖拽至“导入”选项卡
复制
搜索
无匹配的结果
@@ -561,7 +561,7 @@
更换或弹出设备
更换可移动设备
更换磁盘文件
- 你必须输入设备ID
+ 您必须输入设备ID
这不是一个可移动设备
电源
想要关机还是重置?这些操作可能会在虚拟机内引发问题
@@ -572,9 +572,9 @@
开放用于连接的端口
数字请设置得小一些
若不需要密码,留空就行
- 你设置的VNC端口已经被占用。解除占用,换个别的吧
+ 您设置的VNC端口已经被占用。请解除占用并更换其他端口。
前往设置
- 你需要为该显示设置序号
+ 您需要为该显示设置序号
停止
新建虚拟机
无效路径
@@ -584,11 +584,11 @@
CVBI文件处理失败,文件已经损坏或者路径不可读
无法创建虚拟机,故CVBI文件处理失败
无法处理该预览图
- 你的存储空间爆红了!去删点东西吧
+ 您设备的可用存储空间太低,请清理。
此虚拟机数据已损坏,需要修复
虚拟机缓存文件夹创建失败。请稍后重试
正在检查更新
- 就一小会…
+ 请稍候…
更新内容
更新就绪
已是最新版
@@ -606,7 +606,7 @@
得做点什么
此虚拟机数据已损坏,需要修复
开始修复
- 配置运行环境需要更多的存储空间,去清理一下再来吧
+ 您的设备没有足够的存储空间来完成设置。请清理后重试。
无信号
点击重试
强制刷新
@@ -620,7 +620,7 @@
删除文件时出错,稍后重试
文件已删除
打开主文件夹
- 你正在使用 X11而非 VNC。要使用 VNC,请进入设置-> QEMU,向下滚动到底部,然后在用户界面中选择\"VNC\"。
+ 您正在使用 X11而非 VNC。要使用 VNC,请进入设置-> QEMU,向下滚动到底部,然后在用户界面中选择"VNC"。
没有可用于进行该操作的APP
文件夹不存在
共享文件夹体积不应超过516MB,请删除部分文件
@@ -629,8 +629,8 @@
发生错误,虚拟机无法启动。另一个进程正在使用该虚拟机所需文件,请解除占用
无法新建用于存储CVBI的文件夹
快速开始
- 只要你在多任务里不划掉它,下次打开 Vectras VM 时可以更快启动。
- 你的设备的 Android (a64binder?)或 CPU 不支持 64 位,这意味着此功能无法使用。
+ 只要您在多任务里不划掉它,下次打开 Vectras VM 时可以更快启动。
+ 您的设备的 Android (a64binder?)或 CPU 不支持 64 位,这意味着此功能无法使用。
文件处理失败,文件已经损坏或者路径不可读
激活或者取消QEMU窗口的激活
主题
@@ -638,13 +638,13 @@
亮色主题
暗色主题
需要重启生效
- 莫奈取色
+ 动态色彩
根据系统自动取色
重启
编辑
正在导入…
完成
- 请呆在这里不要走动
+ 请稍后,不要离开
正在导出…
开发者
我们的社区
@@ -658,7 +658,7 @@
自适应体积计算
在导入 ROM 时跳过大小计算可以使导入速度更快,但导入进度将不会显示。
CRC校验
- 在导出 ROM 时检查和检测数据错误,你可以关闭此功能加快导出速度
+ 在导出 ROM 时检查和检测数据错误,您可以关闭此功能加快导出速度
无法连接到 Alpine Linux 服务器或服务器暂时不可用,请检查您的网络连接、更换其他镜像源或稍后再试。
安装系统文件时发生错误。
正在复制文件
@@ -668,7 +668,7 @@
更换可移动设备
已弹出
已更换
- 你必须输入设备ID
+ 您必须输入设备ID
无匹配的结果
虚拟机列表数据已损坏,要修复吗?
得做点什么
@@ -681,8 +681,8 @@
CVBI文件处理失败,文件已经损坏或者路径不可读
无法创建虚拟机文件夹,故CVBI文件处理失败
无法处理该预览图
- 你的存储空间爆红了!去删点东西吧
- 配置运行环境需要更多的存储空间,去清理一下再来吧
+ 您设备的可用存储空间太低,请清理。
+ 您的设备没有足够的存储空间来完成设置。请清理后重试。
检查更新
更新内容
更新就绪
@@ -697,16 +697,16 @@
开放用于连接的端口
数字请设置得小一些
若不需要密码,留空就行
- 你设置的VNC端口已经被占用。解除占用,或者换个别的吧
- 你需要为该显示设置序号
+ 您设置的VNC端口已经被占用。请解除占用并更换其他端口。
+ 您需要为该显示设置序号
资源概览
状态:
端口:
通过点击系统监视器中的停止按钮来关闭此虚拟机。要控制它,请连接到此端口:
存储空间
- 在使用前你必须授予存储权限
+ 在使用前您必须授予存储权限
授予存储权限
- 安卓电池优化(MIUI神隐模式/ColorOS后台行为控制等)\n 应当为Vectras VM设置为“无限制”…\n 详情参阅 https://developer.android.com/about/versions/oreo/background\n 以及 https://developer.android.com/guide/components/foreground-services#background-start-restrictions\n\n \n\n也可查阅 https://dontkillmyapp.com 获取关于厂商针对特定app杀后台的问题\n 按照不同的厂商你需要允许Vectras VM自启动, 关闭DuraSpeed(又称“MTK快霸”)\n 或者在DuraSpeed中为Vectras VM设置白名单,\n 放行 `后台弹出界面`权限
+ 安卓电池优化(MIUI神隐模式/ColorOS后台行为控制等)\n 应当为Vectras VM设置为“无限制”…\n 详情参阅 https://developer.android.com/about/versions/oreo/background\n 以及 https://developer.android.com/guide/components/foreground-services#background-start-restrictions\n\n \n\n也可查阅 https://dontkillmyapp.com 获取关于厂商针对特定app杀后台的问题\n 按照不同的厂商您需要允许Vectras VM自启动, 关闭DuraSpeed(又称“MTK快霸”)\n 或者在DuraSpeed中为Vectras VM设置白名单,\n 放行 `后台弹出界面`权限
禁用电池优化
"放行“在其他应用上层显示”权限(在MIUI显示为“显示悬浮窗”)\n 对于Vectras VM在后台启动前台活动(Activity)是必要的\n 参阅 https://developer.android.com/guide/components/activities/background-starts 了解详情 "
允许“在其他应用上层显示”权限
@@ -715,9 +715,22 @@
未连接
帮助
首选项
- 在这里你可以像Termux一样设置一些额外按键 (可以看看 这个) 以及其余项 (e.g. META).\\n 留空则使用默认值
+ 在这里您可以像Termux一样设置一些额外按键 (可以看看 这个) 以及其余项 (e.g. META).\n 留空则使用默认值
日志级别
日志级别已设置到 \"%1$s\"
返回显示屏
X11用户界面环境
+ 软件和驱动
+ 您设备的 CPU 支持 3dfx 加速。但它可能不稳定或无法正常工作。
+ 您设备的 CPU 不支持 3dfx 加速。
+ 3dfx 不可用。
+ X11 显示
+ X11 显示设置。
+ 使用 X11 显示
+ X11 显示当前不可用,请尝试关闭并重新打开 Vectras VM。
+ 使用 Xterm 运行 Qemu
+ 使用 Qemu 监视器更轻松地运行命令,无需切换。
+ 前往 Termux:X11 设置。
+ 使用 SDL
+ 如果您想使用 3dfx 并玩老游戏,请开启此选项(仅适用于 x86_64 和 i386)。
diff --git a/web/data/UpdateConfig.json b/web/data/UpdateConfig.json
index 09c07cb..a86fe9f 100644
--- a/web/data/UpdateConfig.json
+++ b/web/data/UpdateConfig.json
@@ -5,11 +5,11 @@
"url": "https://github.com/xoureldeen/Vectras-VM-Android/releases",
"Message": "3.8.0
\nBugs fixed.",
"cancellable": true,
- "versionCodeBeta":"86",
- "versionNameBeta":"3.8.2",
- "versionNameBetas":"3.0.0,3.1.0,3.2.1,3.2.2,3.2.3,3.2.4,3.2.5,3.2.6,3.2.7,3.2.8,3.2.9,3.2.10,3.3.1,3.3.2,3.3.3,3.3.4,3.3.5,3.3.6,3.3.7,3.3.8,3.3.9,3.4.1,3.4.2,3.4.3,3.4.4,3.4.5,3.4.6,3.4.7,3.4.8,3.4.9,3.5.1,3.5.2,3.5.3,3.5.4,3.5.5,3.5.6,3.5.7,3.5.8,3.5.9,3.6.1,3.6.2,3.6.3,3.6.4,3.6.5,3.6.6,3.6.7,3.6.8,3.6.9,3.7.1,3.7.2,3.7.3,3.7.4,3.7.5,3.7.6,3.7.7,3.7.8,3.7.9,3.8.0,3.8.1,3.8.2",
+ "versionCodeBeta":"87",
+ "versionNameBeta":"3.8.3",
+ "versionNameBetas":"3.0.0,3.1.0,3.2.1,3.2.2,3.2.3,3.2.4,3.2.5,3.2.6,3.2.7,3.2.8,3.2.9,3.2.10,3.3.1,3.3.2,3.3.3,3.3.4,3.3.5,3.3.6,3.3.7,3.3.8,3.3.9,3.4.1,3.4.2,3.4.3,3.4.4,3.4.5,3.4.6,3.4.7,3.4.8,3.4.9,3.5.1,3.5.2,3.5.3,3.5.4,3.5.5,3.5.6,3.5.7,3.5.8,3.5.9,3.6.1,3.6.2,3.6.3,3.6.4,3.6.5,3.6.6,3.6.7,3.6.8,3.6.9,3.7.1,3.7.2,3.7.3,3.7.4,3.7.5,3.7.6,3.7.7,3.7.8,3.7.9,3.8.0,3.8.1,3.8.2,3.8.3",
"sizeBeta": "45 MB",
"urlBeta": "https://github.com/AnBui2004/Vectras-VM-Emu-Android/releases",
- "MessageBeta": "3.8.2
Bugs fixed.",
+ "MessageBeta": "3.8.3
Bugs fixed.",
"cancellableBeta": true
}