ColorOS开启Magisk后丢指纹的终极解决方法,一加大氢亡了后通用(手动狗头) 您所在的位置:网站首页 登录微信时指纹识别不了 ColorOS开启Magisk后丢指纹的终极解决方法,一加大氢亡了后通用(手动狗头)

ColorOS开启Magisk后丢指纹的终极解决方法,一加大氢亡了后通用(手动狗头)

2024-04-12 12:12| 来源: 网络整理| 查看: 265

4月份的时候写过一篇文章,提到了一加9系列root后开启magiskhide重启就没有指纹解锁功能了,只能每次关magiskhide再重启再开,才能正常用。

 

那会儿一加9系列刚出来,而一加也正式采用了OPPO的ColorOS作为国行默认固件,我觉得这个问题挺麻烦,到处找方法,最后找到了wuxianlin制作的模块可以解决这个问题,可是这个模块,会导致无法通过Google SafetyNet的验证:

【Magisk模块】一加9系列开发者选项去警告和修复ROOT掉指纹

手机重启后再手动开miagisk挺麻烦的,还容易忘,如果忘了,举个例子,你某天出门去商场,门口要检查支付宝里的健康码,绿码才给进,这时候因为前几天你手机i重启后,忘记开magiskhide了,于是你在没有magiskhide环境下打开支付宝,突然发现健康码不让访问了,因为人脸校验这一关过不了,这在如今疫情大环境下可是一件很麻烦的事情(可能需要清除支付宝数据后,打开magiskhide对支付宝隐藏root再打开支付宝重新登录,然后人脸识别进入健康码,估计至少花掉三分钟时间)。

而且,这一天天的出门戴口罩,没指纹解锁是真的不方便啊,我用iPhone做主力机的时候都得靠applewatch来实现戴口罩人脸解锁……

最近看到的一篇文章,作者是Pollyanna,他提出了一个新的解决方案,可以兼容Google SafetyNet:

对此问题有位坛友制作了一个magisk模组来修复指纹,但是该模组又会导致Google SafetyNet验证不通过。在请教该模组作者后得知,指纹验证失效原因是系统启动过程中检测到环境变量ro.boot.flash.locked值为1。因此修复模组中将该值设置为了0,而这使得SafetyNet验证不通过。我在研究后找到了让两者兼顾的方法。本质上只要在系统启动开始时将ro.boot.flash.locked值设置为0让指纹识别工作,在系统启动完了后再将该值该回0即可。

https://www.oneplusbbs.com/thread-5913449-1-1.html

如果习惯手机敲命令终端,大家就可以参考他的方法来操作,我不喜欢手机打字所以就整理成了电脑来敲命令行的亲测教程,并且加了一些自己的理解在里面,供需要的朋友参考。 

1、准备工作

手机里装好magiskhide props config的模块(既然用magiskhide,应该都会从面具的模块仓库里装这个的吧),装完至少重启手机一次生效。

设置-关于-版本信息里连击版本号,打开开发者选项,然后在设置里搜索开发者选项,点进去打开USB调试。

电脑部署好adb环境(基本功,没基础就别搞了,或者看上面的手机版教程吧),用数据线连接手机后,手机上打开电脑传输文件(仅充电的话有些手机调试不了)。

以下操作记得手机尽量保持手机亮屏,可能手机会弹出授权提示,需要点同意,索赔就看不到了,只能看到命令解密报错。

2、进入配置菜单

输入命令:

adb shell

 

再输入:

su

 

手机上记得操作给shell授予root权限,再输入

props

 

如果props命令报错,可能是你手机装好magiskhide props config模块后没重启过,重启一下再试就行了(我换了个手机测试,就碰到这个问题了)。

这时候选择

4 - Add/edit custom props (active)

也就是输入

4

 

3、创建配置

此时,进入了下一级菜单:

我们选择

n - New custom prop

也就是输入

n

这时候会让我们输入要设置的参数名称,我们输入

ro.boot.flash.locked

 

这个参数表示手机是否已经解锁bootloader,我查了source.android.com上对使用引导加载程序的相关文档,似乎0表示已解锁,1表示未解锁。

magiskhide是想对目标的应用隐藏root状态,所以肯定会把这个值改成1,然后又因为一些ColorOS里一些特殊逻辑冲突问题,在开机的过程中导致指纹模块罢工了。

然后我们前面提到了,如果开机的时候不运行magiskhide,开机后再执行就没事了,所以我们现在要把bootloader的状态先设置成0,晚点再改回来。

我们把ro.boot.flash.locked设置值为

0

 

 

然后会让我们选择加载的时机,我们选择

2 - post-fs-data

也就是输入

2

 

看到会发现在选项2后面多了括号(current),表示已选成功,提示继续的时候输入

y

然后会提示重启,输入

n

先别重启,我们继续设置,这时候的命令界面会回到刚才差不多的菜单,进入

n - New custom prop

输入

ro.boot.flash.locked

 

这里为止,注意,输入的值需要改成

1

然后选择加载时机:

3 - late_start service

也就是输入

3

 

选择之后确认输入两次

y

分别同意保存和重启手机。 

中间如果设置错了,注意仔细看操作过程中的菜单项,其实有很多可以用到,大家可以仔细研究下。

我只说个最简单的,在初始菜单有个

r - Reset all options/settings

在这个解密可以输入

r

重置所有自己乱改的参数,变回默认配置,然后手机重启一下就可以了。

 

最后,看是否成功的话,可以在magisk里直接检测 SafetyNet,或者把Play商店app的数据清掉(一加9系列长按图标进入应用信息-存储占用-清除数据)再重新打开Play进入设置-关于查看是否通过认证(没显示就等会儿再进)。

 

也许,可能有人会想,为啥要操作两遍,第一遍操作完直接重启行不行,我也这么想过,而且还试过了,然后发现magiskhide似乎没生效,Play的设备保护机制认证都过不了,还不如不用magiskhide来得干脆一点,想要使用magiskhide的同时,指纹可以正常,又能过SafetyNet,暂时这样操作是最稳妥的。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有