Android - lock/unlock bootloader

傲渊山岳  论坛元老 | 2024-9-21 16:53:20 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1052|帖子 1052|积分 3156

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在执行 adb remount 时高版本经常会提示失败

 此时就必要对设备的进行解锁操作。记载两个部分,Google解锁和展锐解锁。
目录
一、Google解锁
二、展锐解锁
三、增补跳过按键检测的方案



一、Google解锁

   官网介绍的unlock方法如下:锁定/解锁引导加载步伐  |  Android Open Source Project
  简单总结一下必要的步骤如下:
1、进入引导加载步伐
  1. adb reboot bootloader
复制代码
2、解锁引导加载步伐(设备处于lock状态,进行unlock)
  1. fastboot flashing unlock
复制代码
3、锁定引导加载步伐(设备处于unlock状态,进行lock)
  1. fastboot flashing lock
复制代码
二、展锐解锁

我们使用的是展锐的芯片,根据以上步骤操作会提示未知的命令,如下图:

查阅了相干的 《Android 12.0 Secure Boot使用指南V1.0.pdf》、《Android 14 Secure Boot使用指南V1.0.pdf》 都有介绍详细流程。这里根据自己明白记载下必要的操作。
 1、进入引导加载步伐
  1. adb reboot bootloader
复制代码
2、获取当前手机的id  
  1. fastboot oem get_identifier_token
复制代码

 3、天生解锁凭据 certificate.bin(ubuntu情况下)
脚本路径为:vendor/sprd/tools/packimage_scripts
秘钥路径为:bsp/tools/secureboot_key/config/rsa4096_vbmeta.pem
  1. vendor/sprd/tools/packimage_scripts$ ./signidentifier_unlockbootloader.sh 上一步获取到的id ../../../../bsp/tools/secureboot_key/config/rsa4096_vbmeta.pem certificate.bin
复制代码
4、PC上执行如下的解锁指令,必要在设备侧按音量下键确认
  1. fastboot flashing unlock_bootloader certificate-b.bin
复制代码

然后重启设备即可。
 5、PC上执行如下的锁定指令
  1. fastboot flashing lock
复制代码
注意:必要使用平台编译天生的 fastboot,编译指令为 make fastboot。天生路径为out/host/windows-x86

三、增补跳过按键检测的方案

  1. bsp/bootloader/lk
  2. diff --git a/app/sprdboot/fastboot.c b/app/sprdboot/fastboot.c
  3. index 7291950a..679bb2b8 100755
  4. --- a/app/sprdboot/fastboot.c
  5. +++ b/app/sprdboot/fastboot.c
  6. @@ -3137,12 +3137,15 @@ void fb_cmd_flashing(const char *arg, void *data, uint64_t sz)
  7.                         fastboot_okay("Bootloader has been locked!\n");
  8.                         return;
  9.                 }
  10. -
  11. +               // lichang 忽略按键选项,直接lock
  12. +               /*@start*/
  13.                 lcd_printf("\n   Warning: lock device may erase user data.\n");
  14. +               lcd_printf("\n   Ignore key.\n");
  15. +               /*
  16.                 lcd_printf("   Press volume down button to confirm that.\n");
  17.                 lcd_printf("   Press volume up button to cancel.\n");
  18.                 while(!butt_check) {
  19. -                       /* continue check till button pressed */
  20. +                       *//* continue check till button pressed *//*
  21.                         key_code = wait_for_keypress();
  22.                         if (key_code == KEY_VOLUMEDOWN) {
  23.                                 butt_check = true;
  24. @@ -3151,7 +3154,8 @@ void fb_cmd_flashing(const char *arg, void *data, uint64_t sz)
  25.                                 fastboot_okay("Info:user cancel lock bootloader!   ");
  26.                                 return;
  27.                         }
  28. -               }
  29. +               }*/
  30. +               /*@end*/
  31.                 lcd_printf("   Begin to erase user data...\n");
  32.                 if (0 != common_raw_erase("userdata", 0, 0)) {
  33.                         debugf("erase userdata failed\n");
  34. @@ -3191,11 +3195,15 @@ void fb_cmd_flashing(const char *arg, void *data, uint64_t sz)
  35.                         return;
  36.                 }
  37. +               // lichang 忽略按键选项,直接lock
  38. +               /*@start*/
  39.                 lcd_printf("\n   Warning: lock device may erase user data.\n");
  40. +               lcd_printf("\n   Ignore key.\n");
  41. +               /*
  42.                 lcd_printf("   Press volume down button to confirm that.\n");
  43.                 lcd_printf("   Press volume up button to cancel.\n");
  44.                 while(!butt_check) {
  45. -                       /* continue check till button pressed */
  46. +                       *//* continue check till button pressed *//*
  47.                         key_code = wait_for_keypress();
  48.                         if (key_code == KEY_VOLUMEDOWN) {
  49.                                 butt_check = true;
  50. @@ -3204,7 +3212,8 @@ void fb_cmd_flashing(const char *arg, void *data, uint64_t sz)
  51.                                 fastboot_okay("Info:user cancel lock bootloader!   ");
  52.                                 return;
  53.                         }
  54. -               }
  55. +               }*/
  56. +               /*@end*/
  57.                 lcd_printf("   Begin to erase user data...\n");
  58.                 if (0 != common_raw_erase("userdata", 0, 0)) {
  59.                         debugf("erase userdata failed\n");
  60. @@ -3259,10 +3268,14 @@ void fb_cmd_flashing(const char *arg, void *data, uint64_t sz)
  61.          //memset(product_sn_signature, 0, sizeof(product_sn_signature));
  62.                 lcd_printf("\n   Warning: Unlock device may erase user data.\n");
  63. +               //lichang 忽略按键,直接unlock
  64. +               /*@start*/
  65. +               /*
  66. +               lcd_printf("   Ignore key.\n");
  67.                 lcd_printf("   Press volume down button to confirm that.\n");
  68.                 lcd_printf("   Press volume up button to cancel.\n");
  69.                 while(!butt_check) {
  70. -                       /* continue check till button pressed */
  71. +                       *//* continue check till button pressed *//*
  72.                         key_code = wait_for_keypress();
  73.                         if (key_code == KEY_VOLUMEDOWN) {
  74.                                 butt_check = true;
  75. @@ -3271,7 +3284,8 @@ void fb_cmd_flashing(const char *arg, void *data, uint64_t sz)
  76.                                 fastboot_okay("Info:user cancel unlock bootloader!   ");
  77.                                 return;
  78.                         }
  79. -               }
  80. +               }*/
  81. +               /*@end*/
  82.                 lcd_printf("   Begin to erase user data...\n");
  83.                 if (0 != common_raw_erase("userdata", 0, 0)) {
  84.                         debugf("erase userdata failed\n");
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表