以下教程在版本V6.4.6测试有效,其它版本请自测。
执行的命令如无特殊说明均在PowerShell中执行。
教程中的模拟器安装目录为D:\Program Files\Netease\MuMu\,相关操作自行更改。
新版MuMu模拟器支持安卓15,开启Root权限后自带KernelSU非常方便,值得体验。
1. 去除开屏广告
1.1 原理
开屏广告并不是写死在 MuMuNxDevice.exe 里,而是一个下载型 campaign overlay。imageManager.json 相当于本地广告索引:
normalImageUrl / hoverImageUrl / pressedImageUrl:广告图片资源;
linkUrl:广告点击跳转;
display:是否展示;
campaignId:广告缓存目录标识。
MuMu 会把开屏广告下载到:
%APPDATA%\Netease\MuMuPlayer\data\startupImage
核心配置文件:
%APPDATA%\Netease\Netease\MuMuPlayer\data\startupImage\imageManager.json
1.2 解决办法
设置imageManager.json为只读属性,使下载配置时间戳字段失效。
attrib +R "$env:APPDATA\Netease\MuMuPlayer\data\startupImage\imageManager.json"
2. 去桌面广告
2.1 原理
模拟器进入 Android 桌面后看到的广告主要来自两个 Android 包:
app.lawnchair
com.mumu.store
其中:
app.lawnchair 是 MuMu 定制桌面;
com.mumu.store 提供广告 Widget、每日发现、游戏中心/推荐入口等内容。
常见桌面广告表现:
- 顶部搜索/游戏搜索栏;
- 广告轮播 Widget;
- “每日新发现”;
- 游戏中心/推荐图标;
- 热门活动、限时等 Store Widget。
桌面数据库:
/data/data/app.lawnchair/databases/launcher_4_7_6_1.db
里面这些是广告:
| 类型 |
数据库位置 |
内容 |
| 大图广告组件 |
favorites._id=9 |
AdBannerWidgetProvider |
| 每日发现广告组件 |
favorites._id=10 |
DailyDiscoveryWidgetProvider |
| 游戏中心图标 |
favorites._id=11 |
com.mumu.store/.MainActivity |
| 搜索框广告 |
不在数据库里 |
由 com.mumu.store 动态提供 |
| 启动弹窗广告 |
不在数据库里 |
由 com.mumu.store 动态提供 |
2.2 解决办法
开启ROOT后刷入提供的模块可以去除广告+搜索栏,同时保留小工具的谷歌安装器和Re管理器以及应用商店。
安卓15可刷入 mumu-lawnchair-search-ads-cleaner-qianxiao.zip
安卓12可刷入 mumu-lawnchair-search-ads-cleaner-qianxiao-magisk.zip
2.3 模块说明
如果以后版本更新发生变化可以通过以下说明自行调试模块。
2.3.1 隐藏 MuMu 搜索广告栏
MuMu 定制 Lawnchair 会读取系统属性:
nemud.player_engine
清理脚本强制设置:
resetprop nemud.player_engine WOAPRO
如果 resetprop 不可用,则退回:
setprop nemud.player_engine WOAPRO
这个属性会影响 Lawnchair 的 MuMu 定制功能开关。当前观测结果是:设置为 WOAPRO 后,顶部 MuMu 搜索/推广栏不再出现。
因为 MuMu 启动时可能会重写 nemud.* 属性,所以脚本不是只设置一次,而是在启动后一段时间内反复设置,保证桌面初始化后仍然生效。
脚本不会禁用整个 com.mumu.store,因为“小工具”里的谷歌安装器、RE 文件管理器等下载入口还需要它。
只禁用广告相关组件:
com.mumu.store/.widget.appWidgetProvider.AdBannerWidgetProvider
com.mumu.store/.widget.appWidgetProvider.DailyDiscoveryWidgetProvider
com.mumu.store/.widget.appWidgetProvider.HotActivityWidgetProvider
com.mumu.store/.widget.appWidgetProvider.FlashSaleWidgetProvider
com.mumu.store/.widget.receiver.WidgetOperateReceiver
对应命令:
pm disable com.mumu.store/.widget.appWidgetProvider.AdBannerWidgetProvider
pm disable com.mumu.store/.widget.appWidgetProvider.DailyDiscoveryWidgetProvider
pm disable com.mumu.store/.widget.appWidgetProvider.HotActivityWidgetProvider
pm disable com.mumu.store/.widget.appWidgetProvider.FlashSaleWidgetProvider
pm disable com.mumu.store/.widget.receiver.WidgetOperateReceiver
技术效果:
- Widget Provider 被禁用后,Lawnchair 无法再加载这些广告小组件;
- Receiver 被禁用后,广告 Widget 的刷新/操作广播无法继续工作;
com.mumu.store 主包仍保持启用,避免影响正常工具下载。
2.3.3 清理 Lawnchair 桌面数据库
桌面上的图标和 Widget 记录保存在:
/data/user/0/app.lawnchair/databases/launcher*.db
注意:这是 MuMu 内部 Android 系统路径,不是 Windows 文件路径。需要在 MuMu 的 root shell 里看,普通 Windows 资源管理器里找不到;普通 adb shell 如果没有 root 权限,也可能看不到 /data/user/0/...。
当前 Android 15 实例实测存在的文件名是:
/data/user/0/app.lawnchair/databases/launcher_4_7_6.db
等价路径还有:
/data/data/app.lawnchair/databases/launcher_4_7_6.db
其中 /data/user/0/app.lawnchair 和 /data/data/app.lawnchair 指向同一份应用私有数据。不同 Lawnchair/MuMu 版本后缀可能变化,所以文档和脚本里用 launcher*.db 通配。
推荐这样验证:
& "D:\Program Files\Netease\MuMu\nx_main\mumu-cli.exe" sh -v 0 -c 'ls -la /data/user/0/app.lawnchair/databases; find /data -xdev -path "*/app.lawnchair/databases/launcher*.db" 2>/dev/null'
脚本使用系统内置:
/system/bin/sqlite3
执行清理 SQL:
DELETE FROM favorites
WHERE appWidgetProvider LIKE 'com.mumu.store/%'
OR intent LIKE '%component=com.mumu.store/.MainActivity%'
OR intent LIKE '%component=com.mumu.store/%';
技术效果:
- 删除桌面数据库里已经存在的广告 Widget 记录;
- 删除指向 MuMu Store 广告/游戏中心的桌面入口;
- 防止仅禁用组件但桌面仍残留空白 Widget。
2.3.4 重启桌面让清理立即生效
清理后执行:
am force-stop app.lawnchair
sleep 1
input keyevent HOME
作用:
- 强制 Lawnchair 退出;
- 回到 HOME 重新启动 Lawnchair;
- 让数据库和组件状态重新加载;
- 立即看到干净桌面。
2.3.5 开机自动执行
模拟器当前有 /data/adb 环境和 KernelSU 相关文件:
/data/adb/ksud
/data/adb/ksu/bin/resetprop
脚本被安装到:
/data/adb/modules/mumu_hide_lawnchair_search
/data/adb/service.d/99-hide-mumu-lawnchair-search.sh
开机后,KernelSU/Magisk 兼容服务会执行模块 service.sh 或 service.d 脚本,脚本再完成:
- 设置
nemud.player_engine=WOAPRO;
- 禁用广告组件;
- 清理 Lawnchair DB;
- 重启桌面。
所以模拟器重启后不需要手动再跑一次。
2.4 ADB调试流程
在 Windows PowerShell 里执行。
开启模拟器的adb功能,更改IP为自己的内网IP和端口号,目录为自己的安装目录。
该调试流程直接禁用商店组件,如需小工具中的谷歌安装器和RE管理器,请先下载后再执行调试。
相关的备份步骤如不需要可自行跳过。
在安卓15模拟器中执行。
1. 设置 ADB 和设备地址
$adb = "D:\Program Files\Netease\MuMu\nx_main\adb.exe"
$dev = "192.168.31.222:5555"
连接设备:
& $adb connect $dev
& $adb -s $dev devices
如果需要 root:
& $adb -s $dev root
Start-Sleep -Seconds 2
& $adb connect $dev
2. 停止桌面和应用中心
& $adb -s $dev shell am force-stop app.lawnchair
& $adb -s $dev shell am force-stop com.mumu.store
3. 先备份桌面数据库
$bak = "D:\backup\manual-$(Get-Date -Format yyyyMMdd-HHmmss)"
New-Item -ItemType Directory -Force $bak | Out-Null
& $adb -s $dev pull /data/data/app.lawnchair/databases/launcher_4_7_6_1.db "$bak\launcher_4_7_6_1.db.bak"
& $adb -s $dev pull /data/data/app.lawnchair/shared_prefs/com.android.launcher3.prefs.xml "$bak\com.android.launcher3.prefs.xml.bak"
4. 查看当前桌面广告项
& $adb -s $dev shell "sqlite3 /data/data/app.lawnchair/databases/launcher_4_7_6_1.db 'SELECT _id,title,appWidgetProvider,intent FROM favorites ORDER BY _id;'"
你会看到类似这些:
9||com.mumu.store/com.mumu.store.widget.appWidgetProvider.AdBannerWidgetProvider|
10||com.mumu.store/com.mumu.store.widget.appWidgetProvider.DailyDiscoveryWidgetProvider|
11|游戏中心||#Intent;...component=com.mumu.store/.MainActivity;end
5. 禁用广告来源 com.mumu.store
& $adb -s $dev shell pm disable-user --user 0 com.mumu.store
执行后会显示类似:
Package com.mumu.store new state: disabled-user
这一步会让:
- 大图广告无法加载
- 每日发现广告无法加载
- 搜索框广告无法加载
- 启动弹窗广告无法加载
- 游戏中心不可用
禁用顶部搜索框可以把模拟器桌面识别环境临时改成 WOAPRO,然后重启 Lawnchair。这个属性是临时运行时属性,模拟器一重启就会恢复成默认环境,Lawnchair 又会重新判断并动态创建顶部 mumu_search_bar 搜索框,所以它会回来,持久化需要设置开机自动执行,方法自己搜索:
& $adb -s $dev shell "setprop nemud.player_engine WOAPRO; am force-stop app.lawnchair; input keyevent HOME"
6. 删除桌面数据库里的广告组件和游戏中心图标
为了避免 PowerShell 引号问题,建议用 SQL 文件。
创建 SQL 文件:
@'
DELETE FROM favorites
WHERE appWidgetProvider LIKE 'com.mumu.store/%'
OR intent LIKE '%component=com.mumu.store/.MainActivity%';
SELECT _id,title,appWidgetProvider,intent
FROM favorites
ORDER BY _id;
'@ | Set-Content -Encoding ASCII "$bak\remove_mumu_launcher_ads.sql"
推送到模拟器:
& $adb -s $dev push "$bak\remove_mumu_launcher_ads.sql" /data/local/tmp/remove_mumu_launcher_ads.sql
执行删除:
& $adb -s $dev shell "sqlite3 /data/data/app.lawnchair/databases/launcher_4_7_6_1.db '.read /data/local/tmp/remove_mumu_launcher_ads.sql'"
7. 重启桌面
& $adb -s $dev shell am force-stop app.lawnchair
& $adb -s $dev shell input keyevent 3
Start-Sleep -Seconds 3
如果没自动回桌面,再执行:
& $adb -s $dev shell am start -a android.intent.action.MAIN -c android.intent.category.HOME
验证是否删除干净
1. 看 com.mumu.store 是否已禁用
& $adb -s $dev shell pm list packages -d
应该能看到:
package:com.mumu.store
2. 看桌面数据库是否没有广告项
& $adb -s $dev shell "sqlite3 /data/data/app.lawnchair/databases/launcher_4_7_6_1.db 'SELECT _id,title,appWidgetProvider FROM favorites ORDER BY _id;'"
干净状态应该类似:
1|设置|
2|图库|
3|文件|
4|浏览器|
5|应用分身|
6|小工具|
7|RE文件管理器|
8|谷歌安装器|
12|KernelSU|
不应该再有:
AdBannerWidgetProvider
DailyDiscoveryWidgetProvider
游戏中心
com.mumu.store
3. 验证界面 UI
& $adb -s $dev shell uiautomator dump /sdcard/ui_check.xml
& $adb -s $dev pull /sdcard/ui_check.xml "$bak\ui_check.xml"
Select-String -Path "$bak\ui_check.xml" -Pattern "广告轮播|每日新发现|游戏中心|searchAdListView|com.mumu.store"
如果没有输出,说明这些广告 UI 已经没了。
当前处理后的状态是:
- 两个广告组件没了
- 游戏中心图标没了
- 搜索框还在,但不再显示广告列表,只显示普通占位:
搜索游戏和应用
如果你想恢复
重新启用应用中心:
& $adb -s $dev shell pm enable com.mumu.store
然后重启桌面:
& $adb -s $dev shell am force-stop app.lawnchair
& $adb -s $dev shell input keyevent 3
如果要恢复原始桌面数据库,可以把备份推回去:
& $adb -s $dev shell am force-stop app.lawnchair
& $adb -s $dev push "$bak\launcher_4_7_6_1.db.bak" /data/local/tmp/launcher_4_7_6_1.db
& $adb -s $dev shell "cp /data/local/tmp/launcher_4_7_6_1.db /data/data/app.lawnchair/databases/launcher_4_7_6_1.db && chown u0_a18:u0_a18 /data/data/app.lawnchair/databases/launcher_4_7_6_1.db && chmod 660 /data/data/app.lawnchair/databases/launcher_4_7_6_1.db"
& $adb -s $dev shell input keyevent 3
3. 开屏美化
3.1 原理
NxDeviceResource.rcc负责冷启动背景和中心 Logo 以及各种资源文件。
安卓15路径在 安装路径\MuMu\nx_device\15.0\shell\rcc\NxDeviceResource.rcc 中,
安卓12路径在 安装路径\MuMu\nx_device\12.0\shell\rcc\NxDeviceResource.rcc 中。
3.2 解决办法
使用可以修改Qt资源rcc文件的任何工具都可以,如果没有可以使用提供的工具。
MuMuRccResourceTool.zip
修改启动画面
安卓15修改:
横屏画面:/resources/images/nx/device/jpeg/img_startup_landscape_15.jpeg
竖屏画面:/resources/images/nx/device/jpeg/img_startup_vertical_15.jpeg
安卓12修改:
横屏画面:/resources/images/nx/device/jpeg/img_startup_landscape.jpeg
竖屏画面:/resources/images/nx/device/jpeg/img_startup_vertical.jpeg
去除中心LOGO和文字
中心LOGO:/resources/images/nx/ic_white_logo.svg
LOGO下面文字:/resources/images/ic_mumu_name.svg
删除<svg></svg>标签中间的内容即可。
模拟器左上角的图标也用到了这个LOGO资源所以改成透明后模拟器左上角图片不显示是正常现象。
如果是VIP账号用的是另一套资源请自己搜索查找替换。
其它资源替换请自行尝试。