设为首页收藏本站
查看: 13153|回复: 0

给U-boot命令行登录加入密码验证

[复制链接]

21

主题

21

回帖

575

积分

管理员

积分
575
oneal.tang 发表于 2015-4-28 17:05:07 | 显示全部楼层 |阅读模式
有些用户不希望U-boot被用户更改或避免误操作进入U-boot命令行,想要一个如同PC加密BIOS一样的功能。
U-boot带有一个简单的登录验证功能,可以实现简单的登录验证功能,只要不被人看到代码,就相当于进行了加密。
在U-boot的代码中source/common/main.c中,有三个宏定义,
[mw_shl_code=c,true]CONFIG_AUTOBOOT_KEYED//是开关
CONFIG_AUTOBOOT_PROMPT//是打印信息
CONFIG_AUTOBOOT_DELAY_STR //是口令
CONFIG_AUTOBOOT_STOP_STR //是中断自动启动的按键[/mw_shl_code]
那么可以在main.c中加入如下内容:
[mw_shl_code=c,true]#define CONFIG_AUTOBOOT_KEYED 1
#define CONFIG_AUTOBOOT_PROMPT "Press ESC to abort autoboot in %d seconds" , bootdelay
#define CONFIG_AUTOBOOT_DELAY_STR "passwd"
#define CONFIG_AUTOBOOT_STOP_STR "\x1b"[/mw_shl_code]
第1行使能KEY功能,第2行打印提示,按ESC中断自动启动,第4行定义的即为密码,第5行1b即为ESC键的ASCII十六进制值。
这里需要注意的是,CONFIG_AUTOBOOT_DELAY_STR的所有字符需要在读秒时间内全部发送完成。
CONFIG_AUTOBOOT_DELAY_STR和CONFIG_AUTOBOOT_STOP_STR是或的关系,读秒时间内只要有一个满足就会中断自启,
即只要按ESC键或者输入passwd都会进入命令行。
另外可以使用如下的方式定义多位STOP_STR
[mw_shl_code=c,true]#define CONFIG_AUTOBOOT_STOP_STR        "stopgs"
#define CONFIG_AUTOBOOT_STOP_STR        "\x1b\x1b"[/mw_shl_code]
第1行使用字符串的方式定义STOP_STR,第2行用ASCII的方式定义两个位的STOP_STR,即需要连续按两次ESC键才会中断自启。




回复

使用道具 举报

您需要登录后才可以回帖 登录

本版积分规则

Archiver|手机版|小黑屋|米尔科技论坛   

GMT+8, 2024-11-22 15:47 , Processed in 0.154239 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表