刷机教程 / BOOTLOADER

索尼 XZ1C / XZ1 系列日版解锁 BL 教程

日版 Xperia XZ1 Compact 和 XZ1 可以通过 Xperable 修改 Bootloader 解锁状态。操作的关键不是获取官方解锁码,而是先准备支持临时 Root 的系统、P114 引导程序和旧版 XFL,再在 Fastboot 中完成补丁与解锁。

开始前,先确认这三件事
  • 固件必须匹配具体型号和运营商,不能把 SO-02K 的刷机包用于其他 XZ1。
  • 先备份手机数据;获得临时 Root 后,另行备份本机 TA,再执行最终解锁。
  • 补丁出现 patched successfully 后,不要重启 Fastboot,直接执行解锁命令。

这篇教程适合哪些机型?

本教程面向 Snapdragon 835 平台的日版 XZ1 Compact、XZ1。不同运营商的临时 Root 固件不同,请先在「设置 → 关于手机」查看型号和版本号。

机型运营商型号临时 Root 固件bindershell 版本
XZ1 CompactDocomo SO-02K47.1.F.1.105v2 / 支持该目标的版本
XZ1Docomo SO-01K47.1.F.1.105v2 / 支持该目标的版本
XZ1au SOV3647.1.C.9.106v2 / 支持该目标的版本
XZ1SoftBank 701SO47.1.D.11.32v2x / 支持该目标的版本

下面以 SO-02K 为例讲解。使用其他表内机型时,替换为对应系统固件和本机 P114 引导文件,操作顺序不变。型号或系统版本不在支持范围内时,不要直接运行漏洞工具。

如果你的设备是 XZ2、XZ2 Compact、XZ2 Premium 或 XZ3,请使用XZ2 / XZ3 系列日版解 BL 教程,不要刷入本文的 XFL 或 P114 文件。

解锁前需要准备什么?

使用 Windows 电脑、可靠的数据线和稳定 USB 接口。优先直连 USB 2.0 端口,避免通过不稳定的集线器传输。

工具或文件用途与下载入口
ADB / FastbootAndroid Platform Tools,用于连接手机、传文件与查询状态。
Sony USB 驱动准备 Flashmode 和 Fastboot 驱动;可从解锁工具与驱动页面获取。
匹配机型的 Oreo 固件按上表选择版本,到网站首页查找相关 ROM 下载。
Newflasher下载刷写工具,用于刷入系统固件或引导文件。
bindershell下载匹配机型的临时 Root 工具;SO-02K 使用支持该目标的 v2,701SO 需 v2x 支持。
Xperable 与引导文件下载 Xperable,从引导文件目录准备匹配本机的 P114、xfl-o77.mbn 和 LinuxLoader-p114.pe。

将 LinuxLoader-p114.pe 放进 Xperable 可执行文件所在目录。ADB、Fastboot 命令在 Platform Tools 文件夹运行,Xperable 命令在其自身文件夹运行。下文统一使用 PowerShell 的 .\程序名.exe 写法。

先备份,再降级。降级会清除手机数据,BL 状态变化也可能导致已有数据无法解密。备份照片、联系人、账号与验证器,并准备本机原厂固件用于恢复。不要擦写 persist 分区。

步骤 1:降级到支持版本,连接 ADB

如果手机已经运行表内匹配的固件,可以跳过降级。SO-02K 需要 Android 8.0 的 47.1.F.1.105。

  1. 解压匹配机型的完整固件,将 Newflasher 放入固件工作目录。
  2. 手机关机,按住音量下键插入连接电脑的数据线。绿色指示灯亮起,即进入 Flashmode。
  3. 运行 newflasher.exe,逐项阅读提示并开始刷写。核对擦除选项,不要把保留数据当作降级成功的前提,也不要擦写 persist。
  4. 刷写完成后启动手机,完成设置向导。取出 SIM 卡,暂不连接 Wi-Fi。
  5. 进入「设置 → 关于手机」,连续点击版本号打开开发者选项,再开启 USB 调试。连接电脑,在手机弹窗中允许调试。

在 Platform Tools 文件夹打开 PowerShell,执行:

.\adb.exe devices

设备序列号后应显示 device。如果显示 unauthorized,回到手机确认授权;如果没有设备,先处理驱动、线缆或 USB 端口问题。

完成标志:手机显示正确固件版本,ADB 识别状态为 device。

步骤 2:获取临时 Root,备份 TA

这里只需要一个临时 Root shell,不必先安装永久 Magisk。将匹配版本工具包中的 bindershell 文件放入 Platform Tools 文件夹,然后逐行执行:

.\adb.exe push bindershell /data/local/tmp/
.\adb.exe shell
cd /data/local/tmp
chmod 755 ./bindershell
./bindershell

成功时会出现 got root, start shell...,命令提示符由 $ 变为 #。在这个 shell 中执行:

id

确认输出含 uid=0。如果工具提示不支持当前设备或没有取得 Root,回到机型表核对固件与 bindershell 版本,不要继续写分区。

将 TA 备份到电脑

保持当前 Root 窗口,在 # 提示符下执行以下读取备份命令:

cd /data/local/tmp
dd if=/dev/block/bootdevice/by-name/TA of=TA-locked.img
chown shell:shell TA-locked.img
sync

确认没有读取错误,并检查 records in 与 records out。不要交换 if= 和 of=:前者是读取的 TA 分区,后者是生成的备份文件。

保留 Root 窗口不退出,在电脑另开一个 Platform Tools PowerShell 窗口,将文件复制出来:

.\adb.exe pull /data/local/tmp/TA-locked.img

确认电脑上已有完整传输的 TA-locked.img,另存一份并标记手机型号和序列号。TA 含设备专属密钥,不能用别台手机的备份替代,也不要把备份发到公开网盘。

完成标志:已确认 uid=0,并已将本机 TA 备份保存到电脑。临时 Root 在重启后失效,需要时重新执行本步骤。

步骤 3:刷入 P114 引导程序和旧 XFL

Xperable 在这个系列上需要同时满足两个条件:P114 Bootloader + LA1_1_O_77 版本的 XFL。只刷 P114、不替换 XFL,仍可能无法命中漏洞。

先刷 P114 引导程序

  1. 关机并按住音量下键接线,进入绿灯模式。
  2. 准备与本机型号匹配的 P114 引导文件,在独立工作目录中只放固件的 boot 子目录内容及 Newflasher。
  3. 运行 Newflasher,仅刷写这组引导文件,不混入完整系统固件或其他分区文件。
  4. 刷完启动系统,重新按照步骤 2 获取临时 Root。

注意目录含义:这里的固件 boot 子目录是一组引导文件,不是 Android 的单个 boot.img,也不是完整 ROM。

再写入旧 XFL

将已确认来源的 xfl-o77.mbn 放入 Platform Tools 文件夹。在电脑另开一个 PowerShell 窗口上传文件:

.\adb.exe push xfl-o77.mbn /sdcard/xfl-o77.mbn

回到已取得 Root 的 # shell,执行:

dd if=/sdcard/xfl-o77.mbn of=/dev/block/bootdevice/by-name/xfl
sync

if= 是输入镜像,of= 是目标分区。检查输出包含 records in 和 records out,且没有权限、文件或写入错误。写入路径必须是 xfl,不要修改为其他分区。

完成标志:P114 已刷入,旧 XFL 写入完成且 sync 无错误。接下来进入 Fastboot,不再运行系统更新。

步骤 4:运行补丁,解锁 Bootloader

进入 Fastboot 并检查引导版本

手机关机,按住音量上键插线连接电脑,蓝色指示灯亮起后,在 Platform Tools 文件夹执行:

.\fastboot.exe devices
.\fastboot.exe getvar version-bootloader

确认设备能被识别,版本信息包含 LA2.0_P_114。如果版本不符,返回步骤 3 核对引导文件。

执行默认参数补丁

进入 Xperable 文件夹打开 PowerShell:

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

成功时,日志会出现以下关键字;实际内存地址随设备变化:

LinuxLoader @ ... patched successfully

没有该提示,就不要发送解锁命令。默认参数失败时,按下一节查找适合本机的 size。

立即执行解锁

补丁成功后保持当前蓝灯状态,不要重启、不要断开连接,执行:

.\xperable.exe -v -V -c "oem unlock Y" -1

确认解锁命令返回 OKAY 后,再重启:

.\xperable.exe -c reboot -1

验证解锁状态

重新关机并进入蓝灯 Fastboot,在 Xperable 文件夹执行:

.\xperable.exe -A

检查输出中的 unlocked:yes。开机解锁图标只能辅助判断,不能替代状态查询。

完成标志:设备返回 unlocked:yes。至此 BL 解锁完成,可以按目标 ROM 的刷入要求准备下一步。

默认参数失败?手动查找 size

不同设备的内存布局可能不同。默认补丁失败,不代表直接换一条解锁命令就能解决;需要先定位可用的缓冲区大小。

用参数助手减少手算

打开参数助手,选择“XZ1 / XZP”,按实际测试结果缩小范围。它会生成下一条测试命令,拿到 distance 后再计算最终 size。

1. 重启 Fastboot,测试候选值

长按电源键与音量上键强制重启;灭灯后松开电源键,继续按住音量上键回到蓝灯模式。先尝试:

.\xperable.exe -v -V -B -U -s 0xf30080 -2
测试结果接下来怎么做
test2 not hit重启 Fastboot,再增大 size。
test2 failed,同时确认溢出导致设备崩溃或重启重启 Fastboot,再减小 size;单独的 USB 错误不能作为这个判断。
test2 succeeded: distance = ...记录 distance,重启 Fastboot,再计算最终补丁 size。

可从 0xf00000 至 0x1000000 的候选区间逐步缩小范围。每次 -2 测试后都要强制重启 Fastboot,包括已经拿到 distance 的那一次;仅拔插数据线不能代替重启。

2. 用 distance 计算最终 size

对于本文 P114、offset 为 0x30 的流程,按以下方式计算:

最终 size = test2 返回的 distance + 0x29d0

例如:0xf46eb0 + 0x29d0 = 0xf49880

测试时输入的 size 不等于日志返回的 distance。不要把候选 size 直接加补偿,也不要对 -5 的日志值再次加补偿。日志出现不同 offset 或额外非零修正项时,先核对工具文档。

3. 用计算结果打入补丁

例如算出的结果为 0xf49880,执行:

.\xperable.exe -v -V -B -U -s 0xf49880 -5

只有看到 patched successfully,才回到步骤 4 执行解锁。这次补丁成功后不要重启,否则内存补丁会失效。示例数值不是每台设备的固定参数,P114 的补偿公式也不能用于 XZ2 / XZ3。

常见故障与处理方法

现象优先检查
ADB 找不到手机手机是否开机、USB 调试是否开启并授权;检查 ADB 驱动和数据线。
绿灯能刷,蓝灯找不到设备Flashmode 与 Fastboot 是不同模式,重新检查 Fastboot 驱动。
bindershell 无法取得 Root核对型号、完整固件版本及 v2 / v2x 支持范围,重启后重新尝试。
Fastboot 超时或蓝灯卡住强制重启后重新进入蓝灯,换 USB 2.0 端口和数据线。必要时在测试命令的 -5 或 -2 前加入 -b 0x100000 限制单次传输为 1 MiB。
一直不出现补丁成功先核对 P114、旧 XFL 和 LinuxLoader-p114.pe,再排查 size。不能把传输完成当作补丁成功。
解锁后进不了系统可能是解锁状态变化导致数据解密失败。按本机恢复流程清除数据或恢复匹配的原厂系统;不要擦写 persist。

常见问题

Bootloader unlock allowed 显示 No,还能按这个方法操作吗?

这套流程使用 Fastboot 漏洞,不走官方解锁码流程,因此不以官方菜单显示 Yes 为唯一前提。仍须满足对应机型、临时 Root 固件、P114 和旧 XFL 条件。

解锁 BL 会丢失 DRM 密钥吗?

Xperable 的解锁方式不主动擦除 Sony DRM 设备密钥,但误刷分区仍可能造成损失。解锁前保留本机 TA 备份,不要擦写 persist;回锁不能恢复已经丢失的密钥。

临时 Root 需要一直保留吗?

它用于准备 TA 备份和写入旧 XFL,重启后会失效。只要旧 XFL 已正确写入,后续 Fastboot 解锁阶段不需要系统内的 Root 持续运行。

解锁 BL 等于解除运营商 SIM 锁吗?

不等于。BL 控制系统启动和镜像校验;SIM 锁控制运营商网络使用,二者是独立操作。

解锁完成后,到首页查找对应 ROM

前往 sonyrom.com 首页,按 SO-02K、SO-01K、SOV36 或 701SO 等具体型号查找相关 ROM 下载。刷入前核对运营商、地区、系统版本及 ROM 的 BL 要求,不要只按“XZ1 系列”选择刷机包。

前往首页查找 ROM
技术参考与致谢

Xperable 技术文档 · bindershell 项目。感谢 j4nn 的工具开发与 SOraWiND 的实践分享。