|
|
发表于
2025-10-1 19:37:40
来自手机
|
显示全部楼层
| 阅读模式
来自 陕西–渭南–韩城
本帖最后由 青春向上 于 2025-10-2 15:10 编辑
背景:
小米手机具有“应用双开”功能:
其原理是魔改“安卓多用户”。
“lsposed”中显示,其双开的应用在用户“XSpace”下。
双开应用后,在使用“TWRP”时,会遇见“解密用户999失败”报错,并且无法备份完整数据。
现我已成功解密用户999,将其原理公布,以供研究。每一步均有说明,自行理解可得出具体步骤。
前置条件:
1,机主(0)设置数字密码解锁,即假设你已设置密码解锁。
2,机主id为0(你当前的用户),XSpach的id为999(双开用户)。
3,手机有root,lsposed
4,会执行shell,需root权限,代码无病毒,可ai校验。
5,会通过“Xposed Edge Pro”带参数提取活动,并拼接为am命令。
方案一、关闭999密码:
1,双开“设置”app:
说明:在“应用双开”中,无法直接双开设置。故需要通过向999安装“设置”实现双开。
步骤:mt提取设置安装包,使用“InstallerX Revived”安装,安装时更改“目标安装用户”。
或使用adb:
- adb install –user USER_ID name.apk
复制代码
双开的设置显示未登录小米账号,带有双开图标:
2,使用root强制打开设置密码页面:
- am start --user 999 "intent:#Intent;action=android.intent.action.MAIN;component=com.android.settings/.SubSettings;i.%3Asettings%3Asource_metrics=100;S.%3Asettings%3Ashow_fragment=com.android.settings.MiuiSecurityChooseUnlock%24MiuiSecurityChooseUnlockFragment;B.%3Asettings%3Ais_second_layer_page=false;i.%3Asettings%3Ashow_fragment_title_resid=2131888240;i.page_transition_type=0;end"
复制代码
解释:这是“Xposed Edge Pro”提取的设置密码,--user 999表示打开999的设置。
3,若“方案二”步骤已设置密码,则输入设置的密码。若未设置,输入机主密码。然后点击“关闭密码”:
注意会删除指纹。关闭后“TWRP”自动解密999。
教程结束,理论通用,故推荐。
方案二、通过密码解密999:
此步执行后,若无法打开双开应用,请双开“设置”。每次打开双开应用时,需输入设置的密码。故推荐“方案一、关闭密码”。
1,算法助手hook“安全核心组件”返回值为999:
- Lcom/miui/securitycore/config/SecurityCoreConfig;->getSecondSpaceId(Landroid/content/Context;)I
复制代码
(复制方法签名自动识别)
解释:“安全核心组件”功能:“应用双开”、“手机分身”、“企业模式”,都与多用户有关。此项配置将原先切换至“手机分身”更改为“多开用户”。(炼妖壶也是多用户)
注:所有hook配置后,一定要重启应用:
启动“安全核心组件”时,算法助手报错不用管,因为它没有主页面。
2,算法助手hook“设置”参数3为0
- Lcom/android/settings/LockPatternChecker;->checkPassword(Lcom/android/internal/widget/LockPatternUtils;Ljava/lang/String;ILandroid/content/Context;Lcom/android/settings/LockPatternChecker$OnCheckCallback;)Landroid/os/AsyncTask;
复制代码
解释:此项将原先,切换“多开用户”时,验证“多开用户”密码,更改为验证“机主”密码。
3,“设置”搜索“手机分身”,点击“切换手机分身”
解释:这一步原先是切换至“手机分身”,因为步骤1的hook,现在变为切换“多开用户”:
这里需要输入“XSpace”密码,我们肯定不知道密码。但步骤2已经将密码校验逻辑更改为校验“机主”密码,正常输入锁屏密码即可。输入成功会退出,仍在机主,但已切换至“XSpace”(我是这么认为的),进行下一步。
4,执行shell:
- am start "intent:#Intent;component=com.android.settings/.ChooseLockPassword;B.add_keyguard_password_then_add_face_recoginition=false;B.use_lock_password_to_encrypt_device=false;i.user_id_to_set_password=999;i.lockscreen.password_type=131072;B.add_keyguard_password_then_add_fingerprint=false;i.lockscreen.password_max=16;i.lockscreen.password_min=4;i.requested_min_complexity=0;B.set_keyguard_password=true;B.lockscreen.biometric_weak_fallback=false;B.confirm_credentials=false;S.password=;i.android.intent.extra.USER_ID=0;end"
复制代码
正常设置密码即可,请牢记密码,否则只能通过删除“多开用户”重新来过。
解释:此命令用于跳转至“设置密码”页面,其中999表示“XSpace”,S.password=为旧密码,由于初始未设置,留空即可。但之后执行时需将其改为旧密码。命令由“Xposed Edge Pro”带参数提取,提取至MIUI14,若你使用hyper,建议重新提取。
5,取消步骤2对“设置”的hook,使其正常验证“XSpace”的密码,输入步骤4设置的密码,若未显示“请重试”,并返回表示密码验证成功。此时可去“TWRP”通过密码解密999用户。
教程至此结束,步骤我已验证过3次,适用于MIUI14。原理也都注明,遇到问题请自行解决,更好方法欢迎提出。
其他:
1,列出系统已有用户:
2,删除用户:
例如:pm remove-user 999
3,切换用户:
经过测试不能切换999,否则也不会hook设置进入。
4,多开用户中“mt管理器”获取root:
开始以为不能获取root,但其实先多开面具,然后通过多开的“面具”正常授权。
5,TWRP使用“电源键+音量键”截屏。
参考链接:
https://www.cnblogs.com/onelikeone/p/11083983.html |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
-
查看全部评分
总评分:好评 +2
金币 +2
|