Android在Fastboot里添加命令

fastboot 是android 默认的一种debug 方法,它的好处是在进入linux kernel 之前
即可操作。
默认fastboot 支持的命令:
<span style="font-size:14px;">usage: fastboot [ <option> ] <command>
commands:
update <filename> reflash device from
update.zip
flashall flash boot
+ recovery + system
flash <partition> [ <filename> ] write a file to a flash
partition
erase <partition> erase a flash
partition
format <partition> format a flash
partition
getvar <variable> display a
bootloader variable
boot <kernel> [ <ramdisk> ] download and boot kernel
flash:raw boot <kernel> [ <ramdisk> ] create bootimage and flash it
devices list all
connected devices
continue continue
with autoboot
reboot reboot
device normally
reboot-bootloader reboot device
into bootloader
help show this
help message
options:
-w erase userdata and cache (and
format if supported by partition type)
-u do not first erase partition
before formatting
-s <specific device> specify device serial number or path to
device port
-l with "devices", lists device
paths
-p <product> specify product name
-c <cmdline> override kernel commandline
-i <vendor id> specify a custom USB vendor id
-b <base_addr> specify a custom kernel base
address
-n <page size> specify the nand page size.
default: 2048
-S <size>[K|M|G] automatically sparse files
greater than size. 0 to disable
</span>


fastboot 提供了扩展的命令符号
<span style="font-size:14px;">fastboot oem command args</span>

下面以fastboot oem hello test 来说明如何扩展
(1).在bootable/bootloader/lk/app/mt_boot/fastboot.c
的fastboot_init 函数中添加一个新的register
//第一个参数是命令的名称
//第二个参数是命令的执行函数
//第三个参数是在security IC 中是否还提供此命令
fastboot_register("oem hello", cmd_oem_hello, FALSE);

(2). 实现cmd_oem_hello 函数
void cmd_oem_hello(const char *arg, void *data, unsigned size) {
//注意args 是以command 结束开始,即" args"
if(!strncmp(arg, " OK", strlen(" OK"))){
fastboot_okey("OK");
}else{
fastboot_fail("Not OK");
}
}


(3). 与PC 端交互
您可以使用下面已经定义好的三个函数与PC 端交互
fastboot_okey(const char* result);
fastboot_fail(const char* reason);
fastboot_info(const char* reason); 


注意这三个打印字符串的长度都不能超过64-1-4 = 59 个字


转载请注明出处:周木水的CSDN博客 http://blog.csdn.net/zhoumushui

我的GitHub:周木水的GitHub https://github.com/zhoumushui


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。