一加6, 6T, 7, 7T, 8, 8T, Pro TMobile 5G定制版刷国际版+Root+二禁更新+清预装+APN修正+分支路线教程

A@NAZOrip
[email protected] 10月25日
  • 在其它设备中阅读本文章

❀原创教程,史上最难刷机,转载本页必须注明链接和作者

最近ebay上多出一批便宜的一加8, 9.5成新的TMobile OEM预解锁手机,所以本文作者买了一台升级当前用的一加3T,并且体验到了真正的地狱级刷机体验。所以特地做个专门针对这种定制机型的刷机方法

警告:美运营商定制版的刷机方法和国行完全不一样,难度高,耗时长达1.2~3个星期,只能用Fastboot线刷ROM,同时一不小心刷成黑砖(进不了Recovery)的几率更高,所以读者只能严格遵循教程步骤,只能自己承担所有责任

警告:经过各种折腾,我宣布Google系列软件已堕为毒瘤。其行为包含"检测缺失的预装应用然后给你装上","伪装成原厂系统更新和系统功能,更新设置独立于系统且不能改","将自家服务伪装成系统自带功能","超过40个广告和跟踪内置组件","深度绑定氧OS,强行删除代表要双清","删预装应用重下的话,就按照预装应用,而不是一般应用的标准安装"
注:Lineage OS + MicroG保平安,相机不好就从氢氧OTA更新包里拷一个过去

警告:下载链接未来会消失,使用了墙外链接。先把刷机和救砖文件都下载下来,然后在考虑买手机。找不到资源的话不要盲目购买手机自己刷

警告:开始本教程之前,确保数据全部异地备份过,中间会清除手机内全部数据,只能自己承担损失

建议:手机电量在50~65%之间,电池内渗透压低,避免刷机时的硬件高温影响电池寿命

建议:不怕安卓11对读写范围的限制,还有应用的兼容性问题才可以试用
使用安卓11应该用Lineage OS + MicroG,毕竟1.一加8离过气还早的很,2.氧OS每次更新都解决上代bug,并且带来新bug,导致每个版本都有一套治疗低血压的方案

吓唬的差不多了,下面正式开始教程(っ╹◡╹)ノ


文件下载

国际版Fastboot线刷ROM:源链接, 防火墙内: 百度云5p1j

  • 有两个版本,安卓10(15.O.21) - 和11(15.O.30),取决于对应用兼容性和优化程度考量选择~

TMobile版Op8救砖包(MSMTool+驱动+TMobile定制ROM):论坛下载页一加8救砖一加8Pro救砖

  • 救砖工具的作者是instantnoodle,如果链接挂掉需要自行查找~

一加万能工具箱:论坛下载页谷歌盘。3.8.5版只有安卓10或以下可用,Root最简单。

  • 目前,安卓11要装python和payload_dumper插件;将原版OTA安装包(用一加系统更新下载到.Ota文件夹),解码出boot.img并将magisk刷入,再将刷好的boot改.img(或者下载这个写了MagiskV23的boot.img)刷进手机
  • 然而本文作者接着就遇到了息屏显示设置打不开,系统配色摒弃安卓10,壁纸要用Google壁纸设定才不会卡死,一些应用变得用不了,微信不能迁徙数据的问题,目前已清数据降级
  • 此处应该可以艾特一下一加万能工具箱的作者...

解三把锁

    一加手机大概从8开始就在TMobile和Sprint版的系统更新里删掉了本地系统更新,必须线刷刷入Fastboot专用的国际版系统。但刷入国际版系统的难点是要解三把锁:OEM(SIM卡)锁,fastboot OEM锁和USB调试授权,缺一不可。

    每当清除用户数据,OEM锁和USB调试授权都会重开。所以每次进入新用户设置界面(开机后选择语言,配置网络,同意条款之类的),就要检查开发者选项里有没有开这两个锁,以及其中的高级重启选项。

  • 打开高级重启后,就可以在用到时长按电源键,直接选择重启到Recovery或者Fastboot引导加载器了
  • 如果手机已经解了OEM(SIM卡)锁,但因清除数据导致OEM锁被重开,就去设置--WLAN和互联网--SIM卡和移动网络里的"网络解锁",在联网的状态下点开就解锁(然后去开发者选项里复查,解锁失败则立即退货)

    国际和氢OS的ROM只有fastboot和USB调试授权锁。一个通过手机重启到fastboot,然后adb命令fastboot oem unlock,然后在手机fastboot弹出的确认操作界面按确定,即解锁。同时在手机的开发者选项里要打开"高级重启",这样每次要

fastboot oem unlock
[手机弹出确认操作选项,选择解锁]

    TMobile和Sprint版的fastboot oem unlock命令无法进行,因为它们用的是密码锁;需要通过adb命令fastboot oem get_unlock_code把手机的解锁算码提取出来,在一加的bootloader里选择展示IMEI(或开机拨号*#06#)

fastboot oem get_unlock_code

(bootloader) Serial Number:
(bootloader) ====================================
(bootloader) e9bc3d33
(bootloader) ====================================
(bootloader) Unlock code:
(bootloader) ====================================
(bootloader) 5FD947DE222FA5F76A84917BE08CF701
(bootloader) 711C5BC7E70D50E34AA07E71D23BC463

  • 拨号*#06#:

[IMEI: 990015973063727]

    然后到一加自带的解锁网页里(地区可能不同,如改成us_en等)选择型号,给出邮箱地址,拷上解锁算码和IMEI,提交。
等待刚好7天,邮箱会收到unlock_code.bin,通过adb reboot bootloader重启到bootloader,通过adb命令fastboot flash cust-unlock unlock_code.bin即解锁,成功后用fastboot oem unlock解锁fastbootd

  • 下载unlock_code.bin并放到adb目录下

fastboot flash cust-unlock unlock_code.bin
[(bootloader) Device is unlocked]

fastboot oem unlock
[手机弹出确认操作选项,选择解锁]

    到这个步骤时,可能系统已经被清了几次数据。别忘了进入系统设置的开发者选项里,检查OEM(SIM卡)锁和USB调试授权是否还存在,如果OEM(SIM卡)锁被锁上且灰掉,就到设置--WLAN和互联网--SIM卡和移动网络里底部的"网络解锁",在联网的状态下点开一般就可以解锁(然后再去开发者选项里复查,解锁失败则立即退货)


装系统

    到这个步骤时,TMobile和Sprint版的三把锁就全解开了,然而!有概率会出现强行或在不知情的状态下线刷国际版系统的情况。本文作者就因为解锁不完整,关键分区不准刷入的问题造成国际版系统只刷了一半,体验到了最麻烦的黑砖(开机和进Recovery进入Quacomm CrashDump Mode)情况;最后通过在关机状态下按电源+音量上,震动反馈后立马切换到电源+音量上+音量下,用设备管理器多出的USB COM分类中,出现QDLoader 9008之类的字样,然后用MSMDownload Tool刷入Tmobile定制系统才好。
救砖符文.jpg

    总之在三把锁全都解开的情况下,解压国际版FastbootROM,通过adb reboot bootloader重启到bootloader,在手机fastboot状态下双击运行flash-all.bat,途中手机会重启到fastbootd模式,表面上看起来是recovery的情况下刷入整个系统。如果出现连续好几个文件刷不进去的情况,说明三把锁至少有一把没解开

    刷入系统后如果要TWRP,就回到fastboot里刷入。一加手机大概从8往后就用了recovery_a和recovery_b,类似电脑的双bios分区。所以需要下载一加8用的TWRP,通过adb发送三个命令:

fastboot flash recovery_a twrp-3.4.0-14-instantnoodle-oneplus8.img
fastboot flash recovery_b twrp-3.4.0-14-instantnoodle-oneplus8.img
fastboot boot twrp-3.4.0-14-instantnoodle-oneplus8.img

  • 不过由于本文作者的所有模块都是用Magisk刷的,所以没装TWRP
  • 本文作者已经历三次黑砖,每次TWRP跟系统一块爆炸,完全没起到最后防线的作用(可能版本早?)
  • 安卓11好像用不了3.4.0版,3.5.2版能用,比如twrp-op8-3.5.2_11-beta-6.img

    启动到TWRP后调调亮度和震动啥的就完成了,接下来root之类的东西可以通过一加手机工具箱实现,不在教程范围内了


应用钩,更新钩阻断

    打开设置-->应用和通知-->联网控制,选择显示系统进程;把所有跟Google,一加相关的预装应用干掉。

  • 最大限度的避免因联网造成的一系列预装应用触发钩子,防止储存被各种残留占用
  • 最重要的是在刷入Root,禁用一系列系统更新应用之前就可以干掉系统更新钩子被触发,这个简直不能不爽(导致啥也检测不到,不会写入新系统存在的定时提醒)

清理预装

    然而,ADB的工作还没有结束。刷完系统,装Root和TWRP之后还要清理几百个没用的预装软件,命令如下(自行根据需求用::注释掉需要的东西)

::ADB卸载相当于用PE系统删除主系统的文件,所以不受权限限制
::重装命令 "cmd package install-existing"
::卸载但保留数据 "adb shell pm uninstall --user 0 -k --user 0 <package name>"

::列举所有已安装应用
::adb shell pm list packages -f

::列举所有已安装应用,并且过滤出含有"google"字样的串
::adb shell pm list packages -f | findstr "google"

::启用ADB命令行
adb shell

::安卓
::谷歌输入法
::adb shell pm uninstall --user 0 com.google.android.inputmethod.latin
::环聊
adb shell pm uninstall --user 0 com.google.android.marvin.talkback
adb shell pm uninstall --user 0 com.google.android.onetimeinitializer
::Duo
adb shell pm uninstall --user 0 com.google.android.apps.tachyon
adb shell pm uninstall --user 0 com.google.android.apps.photos
adb shell pm uninstall --user 0 com.google.android.gms.location.history
adb shell pm uninstall --user 0 com.google.android.apps.googleassistant
adb shell pm uninstall --user 0 com.android.hotwordenrollment.okgoogle
adb shell pm uninstall --user 0 com.android.hotwordenrollment.xgoogle
adb shell pm uninstall --user 0 com.google.android.apps.maps
::adb shell pm uninstall --user 0 com.android.chrome
::adb shell pm uninstall --user 0 com.google.android.gm
::adb shell pm uninstall --user 0 com.google.android.googlequicksearchbox
::Google打印服务
adb shell pm uninstall --user 0 com.google.android.printservice.recommendation
adb shell pm uninstall --user 0 com.google.android.projection.gearhead
::文本转语音
adb shell pm uninstall --user 0 com.google.android.tts
adb shell pm uninstall --user 0 com.google.android.apps.youtube.music
adb shell pm uninstall --user 0 com.google.android.music
adb shell pm uninstall --user 0 com.google.android.videos
adb shell pm uninstall --user 0 com.google.android.youtube
::虚拟现实
adb shell pm uninstall --user 0 com.google.ar.core

::其它厂商
adb shell pm uninstall --user 0 com.facebook.appmanager
adb shell pm uninstall --user 0 com.facebook.services
adb shell pm uninstall --user 0 com.facebook.system
adb shell pm uninstall --user 0 com.heytap.cloud
adb shell pm uninstall --user 0 com.heytap.mcs
adb shell pm uninstall --user 0 com.heytap.openid
adb shell pm uninstall --user 0 com.netflix.mediaclient
adb shell pm uninstall --user 0 com.netflix.partner.activation

::OnePlus
::禅定模式
adb shell pm uninstall --user 0 com.oneplus.brickmode
::图库和相册
::adb shell pm uninstall --user 0 cn.oneplus.photos
::adb shell pm uninstall --user 0 com.oneplus.gallery
::照片查找边缘特效
::adb shell pm uninstall --user 0 com.oneplus.aod
::查找边缘主题
::adb shell pm uninstall --user 0 com.oneplus.aod.basiccolorblack.overlay
::adb shell pm uninstall --user 0 com.oneplus.aod.basiccolorwhite.overlay
::adb shell pm uninstall --user 0 com.oneplus.aodnotification.overlay.gold
::adb shell pm uninstall --user 0 com.oneplus.aodnotification.overlay.purple
::adb shell pm uninstall --user 0 com.oneplus.aodnotification.overlay.red
::日历暗黑模式
::adb shell pm uninstall --user 0 com.oneplus.calculator.basiccolorblack.overlay
::adb shell pm uninstall --user 0 com.oneplus.calendar.black.overlay
::adb shell pm uninstall --user 0 com.oneplus.calendar.white.overlay
::adb shell pm uninstall --user 0 com.oneplus.factorymode
::adb shell pm uninstall --user 0 com.oneplus.factorymode.specialtest
::自带文件管理
::adb shell pm uninstall --user 0 com.oneplus.filemanager
::adb shell pm uninstall --user 0 com.oneplus.filemanager.black.overlay
::adb shell pm uninstall --user 0 com.oneplus.filemanager.white.overlay
::游戏空间和组件
::adb shell pm uninstall --user 0 com.oneplus.gameinstaller
::adb shell pm uninstall --user 0 com.oneplus.gamespace
::adb shell pm uninstall --user 0 com.oneplus.gamespace.black.overlay
::adb shell pm uninstall --user 0 com.oneplus.gamespace.white.overlay
::自带翻译功能
::adb shell pm uninstall --user 0 com.oneplus.instant.translation
::adb shell pm uninstall --user 0 com.oneplus.instant.translation.black.overlay
::adb shell pm uninstall --user 0 com.oneplus.instant.translation.white.overlay
::一加会员
::adb shell pm uninstall --user 0 com.oneplus.membership
::adb shell pm uninstall --user 0 com.oneplus.membership.basiccolorblack.overlay
::adb shell pm uninstall --user 0 com.oneplus.membership.basiccolorwhite.overlay
::彩信
::adb shell pm uninstall --user 0 cn.oneplus.opmms
::adb shell pm uninstall --user 0 com.oneplus.mms
::adb shell pm uninstall --user 0 com.oneplus.mms.basiccolorblack.overlay
::adb shell pm uninstall --user 0 com.oneplus.mms.basiccolorwhite.overlay
::自带录屏
::adb shell pm uninstall --user 0 com.oneplus.screenrecord
::adb shell pm uninstall --user 0 com.oneplus.screenrecord.black.overlay
::adb shell pm uninstall --user 0 com.oneplus.screenrecord.white.overlay
::adb shell pm uninstall --user 0 com.oneplus.tvcast
::adb shell pm uninstall --user 0 com.oneplus.wallpaper
::adb shell pm uninstall --user 0 com.tencent.soter.soterserver
::adb shell pm uninstall --user 0 xyz.paphonb.quickswitch.overlay


关闭一加系统升级

    升级系统会暴露(固件,驱动,系统,应用等)不兼容短板,还有Root和相关插件遭到移除的问题,所以即使性能更好耗电更少,禁用升级对习惯一部手机用4年或更长时间的人来说还是必要的。
由于手机可能要二手卖出,所以此处只禁用而不卸载

::冻结/屏蔽应用(ADB有概率用不了,需要Root卸载器):
(理论上)一加8系列或更低通用,不过更低系列没这么多应用,所以会出现一堆应用并未安装的提示
adb shell pm disable --user 0 com.oneplus.oma.dm
adb shell pm disable --user 0 com.oneplus.appupgrader
adb shell pm disable --user 0 com.oneplus.nvbackup
adb shell pm disable --user 0 com.oneplus.opbackup
adb shell pm disable --user 0 com.oneplus.opbackup.black.overly
adb shell pm disable --user 0 com.oneplus.opbackup.white.overly
::这个最重要,好像叫什么DSU:
adb shell pm disable --user 0 com.android.dynsystem

::清除更新提醒周期提示(进程还是缓存啥的)
adb shell pm clear --user 0 com.oneplus.opbackup


关闭谷歌Play服务系统升级

    警告:此处是本教程最不确定的部分,经过两个月我也没能彻底干掉

::关闭Google Play服务扫描安卓系统安全的功能(刷机进行到这个步骤的话应该不需要了)
::打开Play商店-->按右上角图标-->打开“Play保护机制”-->关闭
::设置里也可以关掉Play保护机制,但是忘了在哪儿打开的了

设置-->应用和通知-->Google Play服务-->通知-->关掉"系统更新"(没用,只能屏蔽一种提示)
装完Play商店内应用后,进设置-->应用和通知-->联网控制(显示系统应用),将Google Play服务断网(副作用太强,相当于毙了所有谷歌应用)

    以上方法已试,干不掉如图中的提示

死亡提示.jpg

英文大概叫Install Update to keep your system secure; you system has been outdated for X days.

    然后是最重要的部分:消灭Play服务里的系统更新全屏提示(ROOT)。

::下载Disable Services或其它能禁用系统服务的app(没用)
::下载MyAndroidTools来调校谷歌Play服务,Play服务框架

救命神器.jpg

::应用中找到Google Play Services / 谷歌Play服务
::打开"所有组件信息"

::在"服务"中禁用以下内容:
DataUpdateListenerCacheService
PackageUpdateTaskService
SystemUpdateGcmTaskService
SystemUpdateService
UpdateFromSdCardService
UpdateSchedulerService

::在"广播接收器"中禁用:UpdateConsentReceiver

::在"活动"中禁用以下内容:
SystemUpdateActivity
UpdateActionOnlyActivity
UpdateCallingAppActivity
UpdateCirclesActivity
UpdateCredentialsActivity
UpdateFromSdCardActivity

::在"内容提供器"中禁用以下内容:
SecurityProvider
::注:禁用这个可以发现设置-->安全和锁屏里那些警告不安全的图标都没了,所以它和更新也有关系

    不过,禁用这些东西还不够,下一步是进回到MyAndroidTools主界面,点Google Play服务-->清除数据/清理数据;退出应用进手机设置-->Google(联网)-->把自己的账号信息下载回来

    接下来检查设置-->安全和锁屏,确认那些警告不安全的图标都没了

    不过就算搞了这么多东西,手机的更新提醒可能还是会弹出来,不过这次你再点击更新,更新的界面就加载不出来了。
    此时进设置-->应用(显示系统应用)-->Google Play服务,关闭更新通知就搞定了... 大概...搞定了...嗯


关闭其它应用(根据自己习惯)

::冻结/屏蔽应用:
::Google键盘(GBoard)
adb shell pm disable --user 0 com.google.android.inputmethod.latin
::一加系统服务
adb shell pm disable --user 0 com.oem.oemlogkit
::一加日志工具
adb shell pm disable --user 0 net.oneplus.odm
::一加账号
::adb shell pm disable --user 0 com.oneplus.account
::adb shell pm disable --user 0 com.oneplus.basiccolorblack.overlay
::adb shell pm disable --user 0 com.oneplus.basiccolorwhite.overlay
::一加桌面(安第三方桌面可考虑)
::adb shell pm disable --user 0 net.oneplus.launcher
::图库和相册(安第三方软件可考虑)
::adb shell pm uninstall --user 0 cn.oneplus.photos
::adb shell pm uninstall --user 0 com.oneplus.gallery


修正APN

(SIM卡不识别运营商的问题,施工中)

    装机彻底完成后,有可能会遇到SIM卡插入识别不出运营商的状况。网上虽然有改APN设置的教程;但因以下两大错误而永远也不可能起作用:

  • 在安卓11之前,氧OS的APN设置就不但被删除,而且用正常方式打开设置页面会闪退;
  • 从安卓10开始,Magisk的Root用户不再有权限修改系统文件(手动改build.props,apns-conf.xml,mmssms.db什么就别想了,mount之类的骚操作也一样);

    不过好在有个Magisk模块,FixChinaCarrier刚好有能力替换掉/system/etc里的apns-conf.xml,而且是把大多数国家运营商的APN都一并写进去了,所以不光是国内用户有效。再加上Shortcut Master (lite)应用可以强行打开APN设置实现重设,这两个程序一个实现了输入,一个实现了应用设置,所以理论上足以实现APN的修正。

    手动下载FixChinaCarrier,Magisk里选本地文件刷入-->重启;完成后在再Shortcut Master里点右上角三个点-->搜索/Search-->搜apn,打开com.android.settings.Settings$ApnSettingsActivity;进入APN设置后按右上角三个点-->重置为默认设置-->重启

    根据XDA论坛,APN设置用不了是手机厂商的锅,不是运营商特供版手机的锅。尽管一加据说在安卓11的氧OS解决了APN设置问题,但升级的代价是安卓11的储存权限锁问题,导致以往所有的软件要么换成谷歌系,要么手机就只能当电话机用了;而对于普通用户来说,不升级就代表手机不能当电话机用了。
(目前因为tMobile,Rogers和Bell的SIM卡都不识别,等手动换个SIM读卡器才能确认效果)


系统升级

不要升级,TMobile版手机底层固件不同,可能会升级出黑砖,比如我


那么,就。这。样。