手里这台LG V20是2017年入的港版双卡,当时看中的就是可换电池、副屏和那颗ES9218P四核DAC。这些年系统停在Android 8.0就没再升过,官方早不管了,可机器硬件还能打。这次趁着周末,我把它翻出来彻底收拾了一遍:换掉原厂recovery,装上TWRP,再用Magisk拿完整root权限,顺便把Magisk模块和隐藏root的DenyList都调好。整个过程最费时间的不是刷机本身,而是解锁、分区解密和版本匹配这些前置工作。这篇文章就把这趟完整流程写清楚,包括每一步我踩过的坑和最终用的命令,想折腾手头V20的可以直接按着走。
1. 动手前先拆解:TWRP 和 Magisk 打算怎么配合
1.1 V20 这台旧旗舰还值得折腾吗
先说结论:值。LG V20在当年是“参数拉满”的机型:骁龙820、2K屏幕、可拆卸电池、带独立DAC芯片的Hi-Fi音频方案,还有那个一直没多少人用明白的副屏。放在今天,性能刷个日常APP、挂个车机、当个音乐播放器都完全够用。但问题出在系统和官方支持上——LG早就停止了对这台的系统更新,绝大多数V20最后都停在Android 8.0或8.1,系统里一堆自带的LG服务还在后台偷偷跑,续航和流畅度都受影响。
所以玩家圈里折腾V20主要就是两条路线:一是刷第三方ROM吃上更高版本的Android,像LineageOS等;二是保留官方系统,但通过TWRP和root把系统里的“垃圾”清理掉,再补上一些官方没有的功能。这次我的选择是后者,因为对这台机器来说,官方系统的音频调度和DAC驱动成熟稳定,刷第三方ROM反而容易把好底子弄丢。保留官方系统再root,是省事且保险的方案。
1.2 TWRP 和 Magisk 各自承担什么角色
TWRP全称Team Win Recovery Project,是一个第三方Recovery环境,替代手机自带的原厂恢复模式。它的用处不只是刷机,更核心的其实是备份和恢复。刷机前我会用TWRP把整个系统、EFS分区、基带相关分区完整备份一遍,万一后面刷出了Bootloop,能直接还原。没有这个保险,旧机器折腾起来心里没底。
Magisk则是获取root权限的工具。和传统SuperSU那套直接往system分区写文件的方式不同,Magisk采用“systemless”思路,不修改system分区,而是通过修补boot镜像,在开机阶段挂载一个Magic Mount,把需要改动的文件虚拟地叠加上去。好处是系统分区保持干净,后续想升级系统或者卸载root都方便,也能配合Magisk Hide / DenyList 对部分APP隐藏root状态。这两样东西配合,等于给V20装了一套“可逆”的折腾环境。
1.3 整个流程分哪几步走
我把这趟操作拆成四段:解锁Bootloader、刷入TWRP、用TWRP刷入Magisk、开机后的root设置与模块配置。每一步都有独立风险,前置没做好,后面就会连锁出问题。所以接下来的内容不是简单堆命令,我会把每一步背后的原因和我在实际操作中遇到的变数也讲清楚。有条件的话,建议你把我这边所有的备份提醒都当作最高优先级来对待,别嫌麻烦。
2. 开始前的准备工作:确认型号、备份数据、搭好环境
2.1 先确认你手上是哪一版V20,这一步决定一半成败
LG V20版本极多,而且不同版本的解锁和刷机方式有差异。我在操作前习惯先用“设置-关于手机-状态信息”确认硬件型号,再用adb devices连接后执行adb shell getprop ro.product.model看系统识别出的型号,两个信息要一致。
V20常见的几个版本差异如下:
| 型号 | 常见市场 | 说明 |
|---|---|---|
| H918 | T-Mobile美版 | 支持官方解锁,社区资源全 |
| H910 | AT&T美版 | 部分批次可解锁,OTA情况复杂 |
| US996 | 美版无锁/运营商版 | 无锁版较容易解锁 |
| H990 / H990DS | 港版、东南亚双卡版 | 双卡双待,官方解锁通道关闭较早 |
| LS997 | Sprint美版 | 解锁限制较多 |
我手上的是H990DS,也就是港版双卡。这里有个现实问题:LG官方Bootloader解锁通道很早以前就不再开放申请,特别是H990系列,基本没拿过官方解锁码。所以现在能正常走通root流程的H990,很多是主板本身已经处于解锁状态,或者通过旧版系统、社区工具完成的解锁。换句话说,如果你的机器开机时没有出现“unlocked bootloader”之类的提示,也没有确认过解锁状态,建议先好好查一下自己机器的情况,不要直接照着线上流程硬来。
2.2 旧数据备份,能做到多全就多全
刷机最怕的不是变砖,而是数据没了。V20官方系统升到Android 8.0后,默认开启了强制加密,这会在后面TWRP解密时给新手造成困惑,所以备份时要把“应用数据”和“分区镜像”分开处理。
应用数据层面,我习惯先把微信、聊天记录这类重要数据用手机自带备份或第三方工具单独导出到电脑。然后装一个钛备份(Titanium Backup)把常用APP的数据整体打包,放到外置SD卡上。V20支持SD卡扩展,备份文件直接放SD卡,刷机时再插回去,最方便。
分区镜像层面,这一步必须要用TWRP来做。第一次刷完TWRP后,我会马上进TWRP,把Boot、System、Data、EFS1、EFS2、Persist等分区全部勾选备份。EFS和Persist里存的是基带、IMEI相关数据,一旦丢了会很麻烦。我见过身边有人刷机时手滑清掉了EFS,结果变成“无基带”状态,电话都打不了。所以别偷懒,这一条是底线级别的建议。
2.3 电脑端环境:驱动、platform-tools、LG UP一个都不能少
准备工作列表如下:
- LG USB驱动:官方驱动或通用ADB驱动,装好后电脑才能正确识别LG手机。
- platform-tools:包含adb和fastboot两个工具,Windows、macOS、Linux都有对应版本,建议直接下载最新版。
- LG UP:刷官方KDZ固件用的工具,万一解锁或刷TWRP出问题,可以用它把手机还原回官方状态。这台机器能“救砖”基本靠它。
- 数据线:尽量用原装或短线,刷机时数据线接触不良是很多奇怪问题的源头。
- 原厂官方KDZ固件:和当前系统版本匹配的完整固件,留作底牌。
环境准备好以后,我会先跑一次adb devices,确认设备的序列号能正常显示,并且后面的状态是device而不是unauthorized。如果出现unauthorized,多半是手机上的USB调试授权弹窗没点“允许”。这一步用小号测试,能避免刷到一半才发现ADB连接有问题。
3. 解锁Bootloader:最绕不过去的一关
3.1 开发者选项里需要改的几个开关
在官方系统上进入“设置-关于手机-软件信息”,连续点击“版本号”七次,就能打开开发者选项。然后在开发者选项里找到三样东西:USB调试、OEM解锁(如果有的话)、“不锁定屏幕”。其中USB调试直接打开;OEM解锁选项在老系统上可能不显示,如果看不到也没关系,说明系统没提供这个开关;最后一个建议在刷机期间把自动锁屏关掉,免得刷到一半手机自己锁了还要重新解锁。
对旧版LG系统来说,开发者选项里还可能出现一个“OEM解锁”的勾选项,有就勾上,没有就不强求。LG早期的解锁逻辑是去官方页面提交设备ID申请解锁码,然后用fastboot命令写入。现在官方页面基本形同虚设,所以如果你能确认手里这台已经解锁,直接跳过这个申请环节就行。
3.2 用 fastboot 完成解锁的完整流程
如果你的机器能被fastboot识别,并且确实处于可解锁状态,流程很简单。先把手机完全关机,然后同时按住音量下键,再插上数据线,手机会进入Download模式。或者先在系统里打开USB调试,执行adb reboot bootloader,也能进到Bootloader界面。
进入之后,电脑端依次执行:
fastboot devices fastboot oem unlock有些版本需要把后面那条换成:
fastboot flashing unlock屏幕会出现一个红色警告,大致意思是解锁会失去保修、清空数据。用音量键选择确认,电源键确定。执行完成后手机会自动重启并做一次全量擦除。第一次开机时间会明显变长,这是正常现象。
需要注意,解锁会清空所有数据,所以这一步必须在完整备份之后做。另外,解锁后的手机开机界面上会出现一个永久性的Bootloader解锁警告画面,这是正常的,不影响使用。
3.3 解锁失败的常见原因
我在给各种机型解锁时遇到过不少翻车情况,典型的有这么几类:
一是设备在fastboot下根本识别不到。优先检查USB驱动,Windows上右键设备管理器,如果看到带感叹号的“Android设备”或“LGE Mobile”,说明驱动不对,重新安装官方LG驱动。同时把数据线换到电脑后置USB口,避开前置面板的供电不足问题。
二是在fastboot oem unlock时报“unknown command”或直接被拒绝。这种情况通常是机型版本不支持该命令,换成fastboot flashing unlock试试,还不行就得考虑设备是否支持解锁,别硬试。
三是系统提示需要先在手机上登录账号。老LG解锁流程偶尔会校验设备与账号的绑定状态,如果遇到这种提示,去设置里登录或重新绑定原来的LG账号,再重启手机尝试。
4. 刷入TWRP:从临时启动到永久接管
4.1 为什么我坚持先临时启动一次TWRP
很多教程在解锁后直接执行fastboot flash recovery把TWRP写入recovery分区,我个人的做法是先用fastboot boot临时启动一次,不往分区里写任何东西。
原因是:V20的TWRP版本对“触摸驱动”匹配很敏感,个别版本刷进去以后会触摸失灵,只能在屏幕上看着却点不了。如果直接写死再发现问题,要绕回官方recovery会多花时间。而临时启动时TWRP跑在内存里,只是验证兼容性,发现问题可以直接重启回到原系统,风险很低。
具体命令是这样:
fastboot boot twrp.img注意,这里的twrp.img要使用匹配V20的官方镜像。下载时认准TWRP官网里LG V20对应的页面,不要根据“V20”这个俗称去找,而是按你的具体型号代号(比如H990/H918/US996)去找对应文件。如果页面提供的镜像版本和你手机系统不匹配,优先选最新的稳定版。
4.2 临时验证没问题,再永久写入recovery
临时TWRP启动后,如果触摸、滑动、按键都正常,而且能看到内部存储里的文件,说明这个版本没问题,可以正式写入。返回fastboot模式,执行:
fastboot flash recovery twrp.img刷完以后,不要直接在系统里重启,不然LG的原厂开机流程很可能会用官方恢复镜像把刚写入的TWRP覆盖掉。正确做法是刷完recovery后接着按住音量下+电源键组合手动进Recovery,或者在fastboot模式下直接执行:
fastboot reboot recovery我第一次折腾V20时就是刷完TWRP直接点了“重启系统”,结果再进Recovery一看,又变回原厂界面了。后来学乖了,刷完不急着进系统,先确保TWRP能正常启动一次。这一步很多老手也是踩过一遍才记住的。
4.3 第一次进TWRP,先把Data分区解密问题处理掉
V20的系统默认加密Data分区,TWRP第一次进去后,如果它无法自动解密,会看到一堆乱码文件名,或者某些操作无法写入Data分区。这种情况我在其他旧机型上也遇到过,标准解法是进TWRP的“Wipe”菜单,选择“Format Data”,输入yes确认。这一步会清掉用户数据,但对一台准备重新折腾的旧机器来说问题不大。
格式化之后,Data分区变成可读可写,TWRP就能正常备份、刷包了。这一步做完,我立刻建立第一份完整备份:勾选Boot、System、Data、EFS1、EFS2、Persist等分区,存到外置SD卡。备份名里会带上日期,方便以后区分。
5. 用Magisk获取root权限,并完成基础配置
5.1 在TWRP里直接刷入Magisk
现在官方TWRP已经就位,root这一步就轻松多了。Magisk官方发布的是apk文件,但它在内部实现上同时兼容recovery刷入,所以你可以到Magisk官方GitHub下载最新的稳定版APK,把后缀名改成zip或者不改,直接在TWRP的“Install”界面选择这个文件,TWRP会识别并刷入。
刷入前我习惯先做一次Wipe cache/dalvik cache,然后刷入Magisk包,刷完再重启用不着清数据。这个过程实际上是修改了你的boot镜像,在开机时注入Magisk所需的东西,而不是往system分区塞文件。所以系统分区和校验都保持原样,这也是Magisk能长期稳定使用的原因。
5.2 不走TWRP的另一条路:Magisk修补boot.img
如果你的机器暂时不想换TWRP,Magisk也提供一条更“轻”的root方式:提取原厂boot.img,传到手机,用Magisk Manager里的“安装-选择并修补一个文件”功能生成修补后的boot.img,再通过fastboot刷回去:
fastboot flash boot magisk_patched.img两条路最终效果是一样的,但TWRP路径更适合接下来还要刷模块、做备份的人。我这次选的是TWRP刷入,因为一口气把recovery、root和模块都配好了。
5.3 开机后第一件事:验证root权限、配置DenyList
刷完Magisk后重新开机,桌面会出现Magisk应用图标。如果图标没出现,就去APKMirror下载对应版本APK手动安装。打开Magisk,如果首页显示“Magisk已安装”,并给出版本号,说明root成功了。
接下来打开终端或电脑端adb,执行:
adb shell su -c "id"如果返回的内容里有uid=0(root),就说明当前shell已经拿到完整root权限。
然后要做的关键一步是配置DenyList。现在很多银行类、支付类APP都会检测root状态,直接root后可能打开就会闪退。Magisk的设置里有“配置排除列表”,把这些APP勾上,之后再打开它们时,Magisk会临时隐藏自己的root痕迹,让APP以为系统没有被root。这里要注意,不要让DenyList覆盖面过大,只勾真正检测root的APP就够了,否则会影响一些正常需要root的功能。
6. 常见问题与排查技巧实录
6.1 刷机过程中最容易翻车的场景速查表
我把这趟流程里容易摔跟头的点整理成了一张速查表,每一项都是实际见过的案例:
| 现象 | 大概率原因 | 解决方法 |
|---|---|---|
| adb devices 显示 offline | 手机上的调试授权未确认,或驱动不匹配 | 撤销USB调试授权后重新授权;重装LG驱动 |
| fastboot devices 无设备 | 未进入bootloader模式,或数据线/供电问题 | 确认手机界面是fastboot模式;换线和USB口 |
| TWRP进去后触摸失灵 | TWRP版本与机型不匹配 | 重新下载对应型号的TWRP镜像,临时启动验证后再刷 |
| TWRP无法挂载Data分区 | Data分区加密,且系统默认强制加密 | 在TWRP里执行Format Data |
| 刷完Magisk无限重启 | boot镜像损坏或Magisk版本不兼容 | 回TWRP恢复Boot分区备份,或重刷官方boot.img |
| 银行/支付APP识别到root | DenyList未配置或配置失效 | 更新Magisk,重新配置排除列表 |
| 系统OTA升级后root丢失 | OTA会覆盖boot,Magisk不保留root状态 | 不要直接OTA,升级后用完整固件重刷,再重新刷Magisk |
| 开机出现“unlocked bootloader”警告 | 解锁后的正常现象 | 不影响使用,习惯就好 |
6.2 我踩过最深的坑:系统自动覆盖Recovery
前面提过一次,就是刚刷完TWRP后,如果直接重启系统,LG原厂很可能会在开机阶段用原厂Recovery覆盖掉TWRP。这个坑在我第一次弄V20时真实发生过。
解决办法除了“刷完TWRP先手动进一次Recovery”之外,还有一个更彻底的做法:在TWRP里刷入一个“no-verity”补丁,它会修改系统里对分区的校验逻辑,让系统不再认为recovery被篡改,也就不再尝试覆盖。现在Magisk本身也提供了类似效果,所以刷完Magisk后,TWRP一般不会再被覆盖。但保守起见,刷完TWRP先进一次recovery,这个习惯我一直保留着。
6.3 root之后的“后悔药”怎么吃
折腾完root之后,如果你发现某个APP死活不能用,或者只是想回到官方状态,别慌。只要你的Boot分区、System分区备份还在TWRP里,恢复起来就是几分钟的事。进TWRP,选“Restore”,勾选Boot和System,恢复完重启,root就没了,系统回到接近官方的状态。
如果想彻底回到原厂固件,用LG UP刷一次对应型号的KDZ固件,系统、分区、Recovery全部还原。刷KDZ会清掉数据、恢复锁状态,风险相对较低,但前提是手机还能进Download模式。所以我一开始就一直提醒:留着LG UP和原厂KDZ,就是留着最后一条命。
7. 玩机心得:这台V20折腾完之后怎么用
刷完整套东西之后,这台V20在我手里的定位变成了“音乐播放器+备用测试机”。可换电池的优势依然很实用,出门带上两块电池,续航焦虑完全不存在。而ES9218P这颗DAC芯片配合Poweramp等播放器,听流媒体和本地无损的效果依然能打。root之后我顺手装了把副屏功能增强的小模块,再通过Magisk的应用列表排除了一些不必要的东西,整台机器相比之前的原厂状态流畅了一个档次,后台清静不少。
最后再分享一个小技巧:不要为了追新Magisk版本而频繁升级,Magisk稳定版够用就行,新版本有时会和旧模块不兼容。每次升级之前在TWRP里再做一次完整备份,这样出了问题也能原地回滚。拿旧手机折腾,图的是可控、可逆、可恢复,只要保住备份和底层固件这两条底线,剩下的就是随便玩。