源起
- 紅米K30 Pro手機已ROOT
- 已經正常用了1年了
- 買來就把5G關了
- 最近移動來短信說開啟5G聯網有話費贈送, 於是開始使用5G
- 然后突然發現電量掉得很快
- 去"電池與性能"里看到有一個叫做
mcd的程序耗電異常的高
解決方案?
- 重啟之后好像還是存在, 嘗試將5G關閉后,好像不見了
mcd到底是個啥玩意?
- 通過
3C All-in-One Toolbox的"任務管理"模塊看到一個同名可執行文件進程/system/bin/mcd
mcd網絡相關資料
- 與google 服務器通信時出現問題?我好像找到原因了 - V2EX
一個名叫 mcd 的系統程序,在 iptables 里寫了規則,把 uid 為 10035 的用戶相關的包拒絕了
小米的 rom 屏蔽了 google play 服務
這個 mcd 是個二進制文件 轉成 ascii 就是 trace_out iptables
這個 mcd 很賊,root 后它就不屏蔽了
與 google 伺服器通訊時出現問題?我好像找到原因了 - 摸魚
mcd 據我瞭解是 miui 的強力清理還是啥。這個應該是省電策略沒錯
mcd反編譯信息
cutter,由 rizin 提供支持的免費開源逆向工程平台,下載cutter的源碼_GitHub_幫酷
https://github.com/rizinorg/cutter
NO MCD CONFIG FILE DEFINED (persist.sys.mcd_config_file)
init_gms_iptable_chain
override for power mode %s\n
power_save
set_brightness
debug_policy
cannot get mcd binder service\n
atrace --async_dump > /sdcard/trace_out
forceBusyOffPct
kill_camera_process_by_pid
persist.sys.mcd_config_file相關信息
-
RN3Pro Snapdragon - 應用程序凍結和更好的內存管理| XDA 論壇
變成這樣:#persist.sys .mcd_config_file=/system/etc/mcd_default.conf
不知道為什么小米決定使用他們自定義的動態交換和內存優化 - 因為他們的設置很爛。調整后,您會注意到更好的內存優化、更快的應用程序切換、更多的應用程序保存在內存中,並且手機性能通常更好。
mcd_default.config 是激活第二個通道 ram 或 Zram 的設置,它不僅僅是一個交換。
它的目的是“添加更多內存”,這對網頁瀏覽、多任務處理和應用程序緩存、zram 配置優先級系統緩存和內核有好處,然后再緩存支持的應用程序。
禁用它會強制所有應用程序緩存存儲在主 Ram 女巫上,這可能會導致某些游戲內存不足,其他應用程序也會導致延遲。 -
device_xiaomi_grus/vendor-props.mk at quartz · JLexu/device_xiaomi_grus · GitHub
persist.sys.mcd_config_file=/system/etc/mcd_default.conf
{
"memory_opt": {
"zram_device_num": 1,
"zram_size_MB": "512 1536:768 2560:1024 3256:2252 4915:2560 6553:4048 8892:4048 12888:0",
"global_swappiness": 60,
"more_memory_swappiness":60
},
"power_save": {
"defAutoSave": 0,
"windowLength": 3000,
"forceIdleOffPct": 10,
"forceBusyOffPct": 100
},
"cgroups": [
{
"groupname": "sys_critical",
"priority": 1,
"swappiness": 0,
"def_tasks": [
{"uid": "root", "name": "/sbin/ueventd"},
{"uid": "root", "name": "/system/bin/vold"},
{"uid": "root", "name": "/system/bin/netd" },
{"uid": "system", "name": "/system/bin/surfaceflinger"},
{"uid": "system", "name": "/system/bin/servicemanager"}
]
}
],
"power_modes": [
{
"mode_id": "0",
"mode_name": "normal",
"mode_type": "0"
},
{
"mode_id": "1",
"mode_name": "idle",
"mode_type": "0"
},
{
"mode_id": "2",
"mode_name": "keyguard",
"mode_type": "0"
}
],
"override_memory_opt": [
{
"model":["MI 2", "MI 2W", "MI 2C"],
"memory_opt": {
"zram_device_num": 0,
"zram_size_MB": "0"
}
},
{
"model":["Mi-4c"],
"memory_opt": {
"more_memory_swappiness":60
}
},
{
"model":["Redmi Note 7"],
"memory_opt": {
"zram_device_num": 1,
"zram_size_MB": "512 1536:768 2560:1536 3256:2252 4915:2560 6553:0"
}
},
{
"model":["Redmi S2","Redmi 6","Redmi 6A"],
"memory_opt": {
"zram_device_num": 1,
"zram_size_MB": "512 1536:768 2560:1024 3256:2040 4915:2560 6553:0"
}
},
{
"model":["Redmi 7"],
"memory_opt": {
"zram_device_num": 1,
"zram_size_MB": "512 1536:1024 2560:1024 3256:2040 4915:2560 6553:0"
}
}
],
"override_power_save": [
{
"model": ["MI NOTE Pro"],
"power_save": {
"defAutoSave": 0
}
}
],
"override_power_modes": [
{
"model": ["MI NOTE Pro"],
"power_modes": [
{
"mode_id": "1",
"mode_name": "idle",
"autosave": 0
}
]
}
]
}
