警告
本文最后更新于 2022-06-24,文中内容可能已过时。
收集由于 MIUI 魔改而导致的问题及解决方案
注意
测试设备为 MI8 (dipper) 各功能均正常使用,其余设备相关代码可能有些许差异,按格式删除即可
系统部分
防卡米(仅测试MIUI12)
打开*/system/framework/services.jar*
使用MT管理器
反编译
搜索.method private checkSystemSelfProtection(Z)V
1
2
3
4
5
6
7
8
|
.method private checkSystemSelfProtection(Z)V
......
.line xxxx
...... //删除该段
.line xxxx
...... //删除该段
.line xxxx
return-void
|
修改后编译
重启系统
禁止还原电池白名单(仅测试MIUI12)
打开/system/app/powerkeeper/powerkeeper.apk。
取出并打开。
用Dex++编辑器方式打开classes.dex,并且以代码方式搜索"Lcom/miui/powerkeeper/controller/DeviceIdleController"。
进入Lcom/miui/powerkeeper/PowerKeeperManager
这个类,并且删除代码片段:
1
2
3
4
5
6
7
|
new-instance v0, Lcom/miui/powerkeeper/controller/DeviceIdleController;
iget-object v1, p0, Lcom/miui/powerkeeper/PowerKeeperManager;->mContext:Landroid/content/Context;
invoke-direct {v0, v1, p0}, Lcom/miui/powerkeeper/controller/DeviceIdleController;-><init>(Landroid/content/Context;Lcom/miui/powerkeeper/PowerKeeperManager;)V
iput-object v0, p0, Lcom/miui/powerkeeper/PowerKeeperManager;->mDeviceIdleController:Lcom/miui/powerkeeper/controller/DeviceIdleController;
|
1
2
3
4
5
6
7
|
.method public getDeviceIdleController()Lcom/miui/powerkeeper/controller/DeviceIdleController;
.registers 1
iget-object p0, p0, Lcom/miui/powerkeeper/PowerKeeperManager;->mDeviceIdleController:Lcom/miui/powerkeeper/controller/DeviceIdleController;
return-object p0
.end method
|
进入Lcom/miui/powerkeeper/provider/PowerKeeperConfigureManager
这个类,删除代码片段:
1
2
3
4
5
6
7
|
iget-object v0, p0, Lcom/miui/powerkeeper/provider/PowerKeeperConfigureManager;->mPowerKeeperManager:Lcom/miui/powerkeeper/PowerKeeperManager;
invoke-virtual {v0}, Lcom/miui/powerkeeper/PowerKeeperManager;->getDeviceIdleController()Lcom/miui/powerkeeper/controller/DeviceIdleController;
move-result-object v0
invoke-virtual {v0}, Lcom/miui/powerkeeper/controller/Controller;->enable()V
|
进入Lcom/miui/powerkeeper/statemachine/ForceDozeController
这个类,删除restoreWhiteListAppsIfQuitForceIdle()V这个方法的代码,并且加入return-void:
1
2
3
4
5
|
.method private restoreWhiteListAppsIfQuitForceIdle()V
.register 8
........ //删除此处代码
return-void
.end method
|
最后保存,编译,退出即可。
软件设置部分
Google Voice 闪退
- 权限管理
- 获取手机信息
- 空白通行证 > 始终允许
网上国网绑带户号闪退
- 确定已通过 MagiskHide/shamiko 等方式隐藏 Root 与框架
- 安装 MyAndroidTools/Blocker
- 关闭
com.sgcc.wsgw.mainbundle.EAtHomeActivity
和com.sgcc.wsgw.publiclibrary.utils.server.CoreService
- 打开软件,同意相应的权限申请
- 绑定户号
- 打开上述两项