OnePlus One解锁引导加载程序的方法

6次阅读
没有评论

问题描述

在使用OnePlus One手机时遇到了一个问题,他们曾成功地解锁了引导加载程序以安装CyanogenMod 12,并随后重新锁定了它。然而,现在他们无法再次解锁引导加载程序。尝试使用fastboot oem unlock命令只能将设备重启到恢复模式,但引导加载程序仍然保持锁定状态。

解决方案

请注意以下操作可能涉及风险,请在执行前确保备份重要数据。

方案1

使用ADB和root权限重置引导加载程序的tamper和lock位

根据最佳回复,可以通过直接修改引导加载程序中的位来解锁引导加载程序。具体步骤如下:

  1. 启用ADB root权限
  2. 在CM 13系统中,可以通过“开发者选项”启用root访问权限。

  3. 执行命令重置tamper和lock位

  4. 打开终端,输入以下命令:
    sh
    adb root # 重启ADBD守护进程以获得root权限
    adb shell
    dd bs=1 count=1 skip=1048080 if=/dev/block/platform/msm_sdcc.1/by-name/aboot 2>/dev/null | xxd | cut -c 10- # 查看当前lock位状态
    echo -ne "\x01" | dd bs=1 count=1 seek=1048080 of=/dev/block/platform/msm_sdcc.1/by-name/aboot # 设置lock位为未锁定状态
    dd bs=1 count=1 skip=1048084 if=/dev/block/platform/msm_sdcc.1/by-name/aboot 2>/dev/null | xxd | cut -c 10- # 查看当前tamper位状态
    echo -ne "\x00" | dd bs=1 count=1 seek=1048084 of=/dev/block/platform/msm_sdcc.1/by-name/aboot # 设置tamper位为未篡改状态

  5. 验证结果

  6. 使用fastboot oem device-info命令验证引导加载程序的状态:
    sh
    $ fastboot oem device-info
    (bootloader) Device tampered: false
    (bootloader) Device unlocked: true
    (bootloader) Charger screen enabled: false
    (bootloader) Display panel:
    (bootloader) console_enabled: 0
    (bootloader) exec_console_unconsole: 0

方案2

如果xxdcut命令不可用,使用busybox进行替换

如果xxdcut命令不在路径中,可以使用busybox来代替。具体命令如下:

# 查看lock位状态
dd bs=1 count=1 skip=1048080 if=/dev/block/platform/msm_sdcc.1/by-name/aboot 2>/dev/null | busybox xxd | busybox cut -c 10-
# 设置lock位为未锁定状态
echo -ne "\x01" | dd bs=1 count=1 seek=1048080 of=/dev/block/platform/msm_sdcc.1/by-name/aboot
# 查看tamper位状态
dd bs=1 count=1 skip=1048084 if=/dev/block/platform/msm_sdcc.1/by-name/aboot 2>/dev/null | busybox xxd | busybox cut -c 10-
# 设置tamper位为未篡改状态
echo -ne "\x00" | dd bs=1 count=1 seek=1048084 of=/dev/block/platform/msm_sdcc.1/by-name/aboot

以上方法可以帮助您解锁引导加载程序,以便进行进一步的自定义恢复操作。请确保在操作前备份重要数据。

正文完