我发现我的android图像存在问题,其中命令adb reboot bootloader
只是重新启动android,而不是进入引导加载程序模式。
为了解决这个问题,我做了一些研究,发现有两件事,adb
和adbd
,主机和目标设备通过套接字使用TCP协议进行通信。
所以,有趣的是像adb shell
和adb devices
这样的命令正在运行但不是reboot bootloader
。我想了解adbd
收到reboot bootloader
时的内容。它是否改变了布尔顺序,设置了一些标志,改变了EFI变量......?
你能指出一些你可以分享的好的链接或理解吗?
PS:我正在开发嵌入式设备环境,类似于树莓派......
答案 0 :(得分:4)
这是adb reboot bootloader
对通过USB
(fastboot
模式下标准Android引导加载程序支持的唯一传输)连接的标准Android设备的工作原理:
adb
客户端将reboot bootloader
命令发送到adb
服务器(通过TCP)adb
服务器将reboot bootloader
命令转发到设备上的adbd
(通过USB)adbd
将sys.powerctl
属性设置为reboot,bootloader
sys.powerctl
更改会触发运行init.rc
powerctl
内置的init
规则_NR_reboot
系统调用reboot to bootloader
标志并重新启动设备在下次启动时,引导加载程序将看到该标志并转到fastboot
模式。但只有USB
已连接。