该教程分为四个部分。
1、 Bootloader解锁
2、 刷入原厂固件
3、 Root的基本方法
4、 避开SafetyNet检测

为了方便完成整个教程,建议事先安装OST LA 6.0.4并准备好对应原厂固件以便应对任何可能的情况。因为Bootloader解锁会清空全部数据,操作之前请一定要备份。

第一部分:Bootloader解锁
1、 在解锁之前打开开发者选项,启动允许OEM解锁,必要的话可以顺带启动USB调试。
2、 记下手机本身的序列号。在关于手机——状态信息里可以看到。
3、 访问www.cmd5.com ,计算这个序列号的MD5校验值。这个校验值(32个字符)就是你的手机的解锁码。
4、 将手机重启进Bootloader模式。进入方法有点繁琐。
(1)关机。
(2)手机插上充电器的同时按住音量加和电源键,屏幕提示Release key to power off也不要放开。
(3)重新出现Powered by Android之后只按住音量加,直到进入原厂Recovery菜单。
5、 选择Reboot to Bootloader,屏幕左下角会出现Fastboot mode。
6、 将手机连接电脑,打开C:\Program Files (x86)\OST LA文件夹,并在这里打开命令提示符(如果是PowerShell,那么在执行命令之前先在里面执行cmd,不要求管理员权限),输入这两个命令(假设解锁码是0123456789ABCDEF0123456789ABCDEF):
fastboot-android oem key 0123456789ABCDEF0123456789ABCDEF
fastboot-android oem unlock
需要注意此方法不适用于高通CPU的HMD诺基亚机型。
7、 屏幕会警告解锁之后可能会失去保修,这个大家都知道怎么操作了,按下音量加确定即可完成解锁。解锁之后重启回系统,recovery就会自动开始恢复出厂设置。

解锁之后,屏幕会出现Orange state等已解锁提示,无需理会,顶多就是没保修了。

因为MTK的特性,此方法不适用于高通CPU的HMD诺基亚机型。

第二部分:刷入原厂固件
本部分是写给可能将诺基亚3玩脱的那些人的,如果没有玩脱请跳过此步骤。
本部分的操作和高通的诺基亚机型不太一样。
强烈建议在这一切发生之前进行Bootloader解锁以避免可能出现的阻碍情况。

1、 按照第一部分的说明进入Recovery,进行Wipe Data/Factory Reset,然后进入Bootloader模式。
2、 将手机连接到电脑,打开OST LA。
3、 加载固件,这个时候如果下一步能点,那么直接点下一步开始刷机。否则请先点击“编辑手机信息”。
4、 接下来请全程盯住手机。手机第一次重启之后,在手机黑屏的那一瞬间拔掉数据线,手机先会加载维护用Bootloader,然后OST LA可能会失去响应,请耐心等待它提示Boot FTM Mode Fail之后再连接电脑开始刷机。
5、 首次启动的时候,如果连接wifi选项的最底部没有跳过连接的选项,那么你被重置保护(FRP)锁死了,你需要想办法连接wifi并挂魔法上网(假如在墙内)重新登录账户,否则就得采取特殊方法绕过了。(提示:影袜和影袜R可以同一局域网内共享魔法上网)。

第三部分:Root的基本方法
如果你对SafetyNet检测(具体是什么后面再说)没有要求,那么SuperSU和Magisk两种Root方式都可选用。
否则请一定要使用Magisk。在开始Root之前,强烈建议不要登录谷歌账户,Root之后再登录。
1、 下载第三方Recovery。你可以选用XDA-Developers民间开发的英文版TWRP,也可以选用奇兔刷机的残芯此生不换适配的中文版TWRP。根据你的实际需要决定是要用SuperSU还是Magisk。
2、 按照第一部分的说明,重新进入Bootloader模式。假设你把Recovery放在了D盘根目录叫做recovery.img。
3、 同样在OST LA的安装目录打开命令提示符,执行此命令:
fastboot-android boot D:\recovery.img
4、 稍后手机会进入TWRP。需要注意的是,由于不明原因,Recovery无法进行Data分区的自动解密,这个无所谓。刚启动进Recovery需要等一会儿才能使用触摸屏操作。
请按Cancel、Keep Read Only跳过。对于奇兔的Recovery,请按左上角的返回按钮跳过。
5、 选择高级(Advanced)、ADB Sideload,直接滑动滑块。
6、 以刷入Magisk为例,假设你把Magisk卡刷包放进了D盘根目录叫做Magisk-v16.0.zip,那么执行此命令:
adb sideload D:\Magisk-v16.0.zip
SuperSU请自行替换成SuperSU对应的卡刷包。
7、 这样手机就会自动给boot分区打补丁进行Magisk systemless root框架的安装。
8、 重启手机之后,你还需要手动安装最新版本的SuperSU或Magisk Manager(对应你的Root方式),这样就可以完成Root过程。
9、 假如是使用Magisk,接收完OTA更新后,请一定要立即重新操作这部分来重刷Magisk zip卡刷包,否则CTSProfile不会通过。

第四部分:避开SafetyNet检测
所谓SafetyNet检测,就是谷歌开发的一套Root机制检测程序,通过检测系统是否被篡改而判断环境是否安全的方式。
已知港澳台和国外的所有银行客户端,以及某些在Play Store上架的手游均使用到了SafetyNet检测。至于中国境内的银行的Root检测,因为没办法使用谷歌服务,无法进行SafetyNet检测,因此绕过其检测相对绕过SafetyNet要容易的多。

已知英国Barclays银行客户端使用了三组Root检测机制:
1、 SafetyNet,这个不必多说;
2、 检测常用的Root管理程序是否存在,通过检测包名得知;
3、 Xposed检测,一旦检测到必定崩溃闪退,该部分的需求有待补充。暂不清楚是否会导致其它要求SafetyNet的应用崩溃闪退。

至于为什么要特别提及这个银行,那是因为我认识的在英国留学的基友都是用的这个2333

Root完成之后,你需要测试一遍SafetyNet检测。如果你在墙内,检测之前务必挂上魔法上网。
确保检测结果是两个true之后就代表SafetyNet检测成功。截至本文测试,2018年2月5日的安全补丁程序级别单独装Magisk可以检测成功。

接下来你需要在汉堡菜单里选择设置,隐藏Magisk Manager,给Magisk Manager随机指定一个包名重新安装。

以上便是在确保Root的前提下能够正常运行Barclays银行客户端的要求。假如要和Xposed共存,Xposed安装器的包名很可能也需要随机伪装处理,这里我没有做进一步测试。

你可能需要的链接:
HMD诺基亚手机的固件下载链接:
国内用户:http://bbs.dospy.com/thread-17820217-1-299-1.html
国外用户:https://forum.xda-developers.com/nokia-8/development/nokia-8-official-firmware-links-updated-t3678487

Magisk:https://forum.xda-developers.com/apps/magisk/official-magisk-v7-universal-systemless-t3473445