婆罗门
精华
|
战斗力 鹅
|
回帖 0
注册时间 2018-3-27
|
本帖最后由 猫的摇篮 于 2025-9-12 11:34 编辑
来源:Dimole 的废话频道 https://t.me/DimoleSaidWTF
以下是原文摘录:
小米云控开启的RescuePartyPlus自动删除第三方应用数据(默认开启,和云控无关)
今天用哔哩哔哩的时候,软件并没有卡死,但是系统开始弹窗“哔哩哔哩”未响应。这种弹窗很常见,我选择了点“等待”以不关闭应用仅关闭弹窗。但是沟槽的小米从MIUI14开始这个弹窗就会莫名其妙无限弹,此时并没有点“确定”来关闭哔哩哔哩,因为视频还正常播放。
结果过了一会,哔哩哔哩直接自动退出了,重新打开发现登录态没了,缓存的视频也全部没了,一看空间占用也直接没了几个GB。
此时并不知道原因,但是赶紧抓了日志以便查证。在分析日志之前,我甚至还怀疑过哔哩哔哩用后门自动删数据(毕竟曾经网页端出现过后门)。但是经过日志分析,发现是小米系统魔改出来的RescuePartyPlus删除的。他在误检测应用无响应之后直接选择了删除应用数据。
只看日志前面的“RescuePartyPlus: Clear app cache”,它本该选择删除应用缓存,但是后面却出现“RescueParty: Attempting rescue level ALL_DEVICE_CONFIG_RESET”,最后“RescuePartyPlus: Disable App restart, than clear app cache and data: tv.danmaku.bili”直接删除了数据,导致我缓存的大量视频数据直接丢失,账号登录态也丢失。
此外,原版的RescueParty并不会对第三方应用和其数据进行任何操作,而小米却魔改出这样一个RescuePartyPlus直接随意删除第三方应用数据,并且随意利用云控而不告知用户,已经严重违反了法律。
如果这个事情发生在QQ微信或者工作类软件上呢?那损失将十分惨重。可见小米对用户数据安全并没有一丝的重视。
最后建议还在使用小米设备的用户多加备份以免数据丢失。
补充删除数据的日志,所以小米是逐步删的,但是这个逐步在一两分钟后就开始直接删除数据了
---
来源:柒柒 の 浮镜如戏 https://t.me/nekoqiqi_channel
以下是原文摘录:
一句话总结:
有弹无响应弹窗马上按关闭应用,不然会有清除应用数据的风险
非专业调查的结果如下(os3,os2 也是差不多的逻辑):
- 应用无响应会被 PackageWatchdog 捕获,并计入 count
- count 会传递到 PackageWatchdogImpl 的 doRescuePartyPlusStepNew 方法,并根据计数来弹出无响应弹窗 / 执行对应等级的清除
case 2:
- removeMessage(1, currentCrashAppName);
- event.setDetails(currentCrashAppName + "RESCUE_LEVEL_ALL_DEVICE_CONFIG_RESET;");
- sendMessage(currentCrashAppName, 2, event);
- return false;
复制代码
对应此人说的第一张图的等级
case 5:
- removeMessage(4, currentCrashAppName);
- if (currentCras
- hAppName.equals(RescuePartyPlusHe
- lper.getLauncherPackageName(context))) {clearAppCacheAndData(pm, currentCrashAppName);
- event.setDetails(currentCrashAppName + "RESCUE_LEVEL_RESET_SETTINGS_UNTRUSTED_CHANGES;CLEAR_APP_CACHE_AND_DATA;");
- } else if (!RescuePartyPlusHelper.checkPackageIsTOPUI(currentCrashAppName)) {Slog.w("RescuePartyPlus", "Clear app cache:" + currentCrashAppName);
- pm.deleteApplicationCacheFiles(currentCrashAppName, null);
- event.setDetails(currentCrashAppName + "DELETE_APPLICATION_CACHE_FILES;");
- } else {pm.deleteApplicationCacheFiles(currentCrashAppName, null);
- if (!RescuePartyPlusHelper.resetTheme(currentCrashAppName)) {Slog.e("RescuePartyPlus", "Reset theme failed:" + currentCrashAppName);
- } else {Slog.e("RescuePartyPlus", "Reset theme success:" + currentCrashAppName);
- }
- if (!RescuePartyPlusHelper.resetFont(currentCrashAppName)) {Slog.e("RescuePartyPlus", "Reset fonts failed:" + currentCrashAppName);
- } else {Slog.e("RescuePartyPlus", "Reset fonts success:" + currentCrashAppName);
- }
- event.setDetails(currentCrashAppName + "RESCUE_LEVEL_RESET_SETTINGS_UNTRUSTED_CHANGES;RESET_THEME;RESET_FONT;");
- RescuePartyPlusHelper.setLastResetConfigStatus(true);
- RescuePartyPlusHelper.setShowResetConfigUIStatus(false);
- maybeShowRecoveryTip(context);
- }
- sendMessage(currentCrashAppName, 5, event);
- return false;
复制代码
case 7:
- removeMessage(6, currentCrashAppName);
- clearAppCacheAndData(pm, currentCrashAppName);
- String details3 = (currentCrashAppName + "RESCUE_LEVEL_FACTORY_RESET;") + "CLEAR_APP_CACHE_AND_DATA;";
- if (!currentCrashAppName.equals(RescuePartyPlusHelper.getLauncherPackageName(context))) {if (!RescuePartyPlusHelper.checkPackageIsTOPUI(currentCrashAppName)) {Slog.w("RescuePartyPlus", "Disable App restart, than clear app cache and data:" + currentCrashAppName);
- RescuePartyPlusHelper.disableAppRestart(currentCrashAppName);
- details3 = details3 + "DISABLE_APP_RESTART;";
- } else {SystemProperties.set(RESCUEPARTY_ATTEMPTING_REBOOT, "true");
- event.setDetails(details3);
- sendMessage(currentCrashAppName, 7, event);
- executeWarmReboot(context);
- return true;
- }
- }
- event.setDetails(details3);
- sendMessage(currentCrashAppName, 7, event);
- return false;
复制代码
计数到第五次开始,会尝试清除应用缓存
计数到第七次就是强制清除数据了,如果是系统界面,会额外附加重启设备,可能也解释了此人哔哩哔哩数据被清除的原因
深层刨析之后,这个逻辑原本就只是对系统应用生效的,不知道为什么第三方应用也错误的走了这个逻辑了
另外众所周知,米米的无响应“等待”按钮相当于没有
所以会一直计数,除非主动结束应用
截止目前,受影响的范围是 Xiaomi HyperOS 2.2 - OS3 的设备(均为所有应用套入了此逻辑)
---
 
 
 
---
有没有小米用户试试看? |
|