四极管:FastBoot 协议源码
发布时间:2020-12-15 18:36:43 所属栏目:百科 来源:网络整理
导读:FastBoot ?Version ?0.4 ---------------------- The fastboot protocol is a mechanism for communicating with bootloaders over USB. ?It is designed to be very straightforward to implement,to allow it to be used across a wide range of devices a
FastBoot ?Version ?0.4 ---------------------- The fastboot protocol is a mechanism for communicating with bootloaders over USB. ?It is designed to be very straightforward to implement,to allow it to be used across a wide range of devices and from hosts running Linux,Windows,or OSX. Basic Requirements ------------------ * Two bulk endpoints (in,out) are required * Max packet size must be 64 bytes for full-speed and 512 bytes for? ? high-speed USB * The protocol is entirely host-driven and synchronous (unlike the ? multi-channel,bi-directional,asynchronous ADB protocol) Transport and Framing --------------------- 1. Host sends a command,which is an ascii string in a single ? ?packet no greater than 64 bytes. 2. Client response with a single packet no greater than 64 bytes. ? ?The first four bytes of the response are "OKAY","FAIL","DATA",? ? ?or "INFO". ?Additional bytes may contain an (ascii) informative ? ?message. ? ?a. INFO -> the remaining 60 bytes are an informative message ? ? ? (providing progress or diagnostic messages). ?They should? ? ? ? be displayed and then step #2 repeats ? ?b. FAIL -> the requested command failed. ?The remaining 60 bytes? ? ? ? of the response (if present) provide a textual failure message? ? ? ? to present to the user. ?Stop. ? ?c. OKAY -> the requested command completed successfully. ?Go to #5 ? ?d. DATA -> the requested command is ready for the data phase. ? ? ? A DATA response packet will be 12 bytes long,in the form of ? ? ? DATA00000000 where the 8 digit hexidecimal number represents ? ? ? the total data size to transfer. 3. Data phase. ?Depending on the command,the host or client will? ? ?send the indicated amount of data. ?Short packets are always? ? ?acceptable and zero-length packets are ignored. ?This phase continues ? ?until the client has sent or received the number of bytes indicated ? ?in the "DATA" response above. 4. Client responds with a single packet no greater than 64 bytes. ? ? ?The first four bytes of the response are "OKAY",or "INFO". ? ? ?Similar to #2: ? ?a. INFO -> display the remaining 60 bytes and return to #4 ? ? ? ?b. FAIL -> display the remaining 60 bytes (if present) as a failure ? ? ? reason and consider the command failed. ?Stop. ? ?c. OKAY -> success. ?Go to #5 5. Success. ?Stop. Example Session --------------- Host: ? ?"getvar:version" ? ? ? ?request version variable Client: ?"OKAY0.4" ? ? ? ? ? ? ? return version "0.4" Host: ? ?"getvar:nonexistant" ? ?request some undefined variable Client: ?"OKAY" ? ? ? ? ? ? ? ? ?return value "" Host: ? ?"download:00001234" ? ? request to send 0x1234 bytes of data Client: ?"DATA00001234" ? ? ? ? ?ready to accept data Host: ? ?< 0x1234 bytes > ? ? ? ?send data Client: ?"OKAY" ? ? ? ? ? ? ? ? ?success Host: ? ?"flash:bootloader" ? ? ?request to flash the data to the bootloader Client: ?"INFOerasing flash" ? ? indicate status / progress ? ? ? ? ?"INFOwriting flash" ? ? ? ? ?"OKAY" ? ? ? ? ? ? ? ? ?indicate success Host: ? ?"powerdown" ? ? ? ? ? ? send a command Client: ?"FAILunknown command" ? indicate failure Command Reference ----------------- * Command parameters are indicated by printf-style escape sequences. * Commands are ascii strings and sent without the quotes (which are ? for illustration only here) and without a trailing 0 byte. * Commands that begin with a lowercase letter are reserved for this ? specification. ?OEM-specific commands should not begin with a? ? lowercase letter,to prevent incompatibilities with future specs. ?"getvar:%s" ? ? ? ? ? Read a config/version variable from the bootloader. ? ? ? ? ? ? ? ? ? ? ? ?The variable contents will be returned after the ? ? ? ? ? ? ? ? ? ? ? ?OKAY response. ?"download:%08x" ? ? ? Write data to memory which will be later used ? ? ? ? ? ? ? ? ? ? ? ?by "boot","ramdisk","flash",etc. ?The client ? ? ? ? ? ? ? ? ? ? ? ?will reply with "DATA%08x" if it has enough? ? ? ? ? ? ? ? ? ? ? ? ?space in RAM or "FAIL" if not. ?The size of ? ? ? ? ? ? ? ? ? ? ? ?the download is remembered. ? "verify:%08x" ? ? ? ?Send a digital signature to verify the downloaded ? ? ? ? ? ? ? ? ? ? ? ?data. ?Required if the bootloader is "secure" ? ? ? ? ? ? ? ? ? ? ? ?otherwise "flash" and "boot" will be ignored. ? "flash:%s" ? ? ? ? ? Write the previously downloaded image to the ? ? ? ? ? ? ? ? ? ? ? ?named partition (if possible). ? "erase:%s" ? ? ? ? ? Erase the indicated partition (clear to 0xFFs) ? "boot" ? ? ? ? ? ? ? The previously downloaded data is a boot.img ? ? ? ? ? ? ? ? ? ? ? ?and should be booted according to the normal ? ? ? ? ? ? ? ? ? ? ? ?procedure for a boot.img ? "continue" ? ? ? ? ? Continue booting as normal (if possible) ? "reboot" ? ? ? ? ? ? Reboot the device. ? "reboot-bootloader" ?Reboot back into the bootloader. ? ? ? ? ? ? ? ? ? ? ? ?Useful for upgrade processes that require upgrading ? ? ? ? ? ? ? ? ? ? ? ?the bootloader and then upgrading other partitions ? ? ? ? ? ? ? ? ? ? ? ?using the new bootloader. ? "powerdown" ? ? ? ? ?Power off the device. Client Variables ---------------- The "getvar:%s" command is used to read client variables which represent various information about the device and the software on it. The various currently defined names are: ? version ? ? ? ? ? ? Version of FastBoot protocol supported. ? ? ? ? ? ? ? ? ? ? ? It should be "0.3" for this document. ? version-bootloader ?Version string for the Bootloader. ? version-baseband ? ?Version string of the Baseband Software ? product ? ? ? ? ? ? Name of the product ? serialno ? ? ? ? ? ?Product serial number ? secure ? ? ? ? ? ? ?If the value is "yes",this is a secure ? ? ? ? ? ? ? ? ? ? ? bootloader requiring a signature before ? ? ? ? ? ? ? ? ? ? ? it will install or boot images. Names starting with a lowercase character are reserved by this specification. ?OEM-specific names should not start with lowercase characters.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |