利用xperable解锁日版Xperia XZ2C SO-05K
九条雨諾
编辑于 2026年01月19日 10:38

利用 Qualcomm Bootloader 处理 Fastboot 命令时的 CVE-2021-1931 缓冲区溢出漏洞,对于 Docomo 运营商的这类官方禁止 Bootloader 解锁的机型,突破 Bootloader 解锁限制。

参考文献:

j4nn: xda github https://xdaforums.com/t/xz1c-xz1-xzp-xperable-xperia-abl-fastboot-exploit-cve-2021-1931.4771931/

SOraWiND(酷安): 索尼xz1c日版Do版(SO-02K)解锁BL(2026-01-10最终版-修订2)

Xiaox:自建blog https://blog.shinoaa.com/2024/01/01/Sony%20Xperia%205/

实现日版解锁的关键点有三个:

  • 当前系统版本是否有对应的漏洞

  • 是否安装了合适的 Fastboot 驱动

  • 需要正确设置

比较复杂的是第一点。因此先检查自己的Fastboot驱动是否安装完毕,驱动来源直接是谷歌的通用driver即可。参考教程:https://blog.shinoaa.com/2024/01/01/Sony%20Xperia%205/

这边借用一些图:

fastboot驱动安装完毕后,可以尝试进入fastboot,测试是否能够使用fastboot devices,看到设备。


接下来使用进入系统版本的检查环节:

这边建议可以将platform-tools工具和Xperable下的文件放在一块,方便使用;

通过右键shift文件目录下,选择powershell,然后输入cmd:

先使用:

fastboot devices

#确保进入Fastboot模式

#按照j4nn的教程,尝试第一次使用漏洞 

xperable.exe -v -V -B -U -5

然后惊喜的发现,文件报错:

xperable -v -V -B -U -5

      {00000019->00000019:OK} "getvar:version-bootloader"

      {00000040<-00000027:OK} "OKAY1310-7079_X_Boot_SDM845_LA2.0_P_118"

version-bootloader: 1310-7079_X_Boot_SDM845_LA2.0_P_118

[.] Using p118 xperable target (offset = 0x2a7000, size = 0x400f90)

      {0000000e->0000000e:OK} "getvar:unknown"

      {00000040<-0000001d:OK} "FAILGetVar Variable Not found"

[!] fopen pe LinuxLoader-p118.pe: No such file or directory

这是当然的,j4nn在xda的帖子上提示了需要在下载界面下载对应Blob

https://sourceforge.net/projects/yoshino-testbuilds/files/xperable/

这样就得到了我们心心念念的Blob文件,对于845 tama设备,选择p118版本即可,把他丢进Xperable文件夹里就好了

再输入指令:

xperable -v -V -B -U -5

然后大概率还是会报错,提示版本不对,所需要的boot需要LA2_0_P_118(重点在P),我们的boot有大概率是Q版本,新了一个版本。

这里笔者我没有记录相关报错提示,请大家根据英文提示自行判断。


如果你和我一样,也是Q版本boot,那么你需要降级固件版本。

因为笔者不会用newflasher单独刷boot,遂选择直接刷整个固件;

j4nn在Github的readme里写到:

Tama Device Setup

The exploit is targetting LA2_0_P_118 bootloader of XZ2 / XZ3 devices. This version of bootloader is present in the newest stock firmware versions of Japan specific models.

International Tama devices have newer version of bootloader in the latest firmware versions, so you may need to downgrade in order to use the exploit. Flash only the boot subdirectory of 52.0.A.8.50 stock fw version skipping flash of everything else.

经过简单搜索,索尼提示国际版固件号52.0.A.8.50的发布日期是2019年5月1日,故我们选择的日版固件在近似时间即可;

这里笔者选择发布日期为19年4月16日的52.0.B.9.103固件,下载链接在https://archive.org/download/xperia-firmware/%E5%9B%BD%E5%86%85%E7%89%88Xperia/Xperia%20XZ2%20Compact/

newflasher的如何刷固件在这里不再赘述,但有笔者有两个要点需要提醒:

第一,他是需要输入3次n才会进行固件的刷入;,即选择三次n和一个刷完进入何种模式,请大家阅读英语自行判断。

第二,ftf解压之后,进入boot文件夹,观察是否有boot_delivery.xml文件,如果没有,大概率不会进行boot的刷入;没有的话直接在上一级文件夹里复制一个过去即可

可以参考这个教程:https://ivonblog.com/posts/newflasher-flash-sony-xperia-back-to-stock-rom/

在一切准备好之后,进入fastboot:

xperable -v -V -B -U -5

#提示:LinuxLoader @ 0x988c5000 patched successfully

#笔者运气好,是一次性注入成功的;

xperable -v -V -c "oem unlock Y" -1 -c reboot -1

#提示:[+] Starting test1 size = 0xffffffff, offset = 0xffffffff, cmd = 'oem unlock X'      {0000000c->0000000c:OK} "oem unlock X"      {00000040<-0000001b:OK} "OKAYDevice already unlocked"Device already unlocked[.] Finished test1: res = 0[+] Starting test1 size = 0xffffffff, offset = 0xffffffff, cmd = 'reboot'      {00000006->00000006:OK} "reboot"      {00000040<-00000004:OK} "OKAY"[.] Finished test1: res = 0

#至此BL已解锁


此时的你可以尝试进入twrp给系统刷个alpha享受解锁之后的快感了;

笔者使用的twrp是https://xdaforums.com/t/recovery-twrp-3-7-1_12-xz2-xz2c-xz2p-xz3.4772176/

建议先Boot一个,而不是flash,因为没有当前系统的vbmeta等文件……

目前笔者发现解锁之后可以刷的系统是xda上一个大佬为日版适配的crdroid,安卓13。但下载的时候要注意他的系统需要在android10上,酷安有大佬分享了android10的文件,刷入必要的几个分区vendor system vbmeta dtbo boot之类的(多的boot也刷不进去),建议再用Lineage分享copy partition模块,将b分区的文件复制到a分区,这样刷crdroid的时候不会遇到a b分区切换的问题。

但是刷了crdroid的时候很多apk不知道为啥没网,之前玩其他手机的类原生也遇到过类似的问题;

lineage是刷不进去;建议刷明确适配日版的固件,不然大概率要丢掉nfc之类的功能

日版nfc要支持felica功能,一些硬件配置和国际版是不一样的