使用fastboot时提示 sudo: fastboot: command not found 必须输入完整的命令路径才行,使用起来很麻烦,所以
可以使用下面的方法解决:
le@u:~$ sudo ln -s /home/le/Android/Sdk/platform-tools/fastboot /usr/local/sbin/fastboot
le@u:~$ sudo ln -s /home/le/Android/Sdk/platform-tools/adb /usr/local/sbin/adb
红色部分为fastboot命令路径,需根据实际安装路径确定。
使用fastboot,adb时,如果想使用tab键自动补全命令,可将以下文本复制保存为文件名为fastboot的文件然后放在 /etc/bash_completion.d/目录下
文件名:fastboot
#!/bin/sh _fastboot() { local cur prev opts COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" opts="reboot boot flash devices -w reboot-bootloader" case "$prev" in reboot | devices | -w | reboot-bootloader) COMPREPLY=() return 0 ;; flash) COMPREPLY=( $(compgen -W "boot system recovery radio userdata rpm sbl1 modem tz persist splash aboot" -- $cur )) return 0 ;; boot) COMPREPLY=( $(compgen -o filenames -G "${cur}*.img")) return 0 ;; *) local prev2="${COMP_WORDS[COMP_CWORD-2]}" local prev3="${COMP_WORDS[COMP_CWORD-3]}" if [ "$prev2" == "flash" ];then COMPREPLY=( $(compgen -o filenames -G "${cur}*.img")) return 0 elif [ "$prev2" == "boot" ];then COMPREPLY=() return 0 elif [ "$prev3" == "flash" ];then COMPREPLY=() return 0 fi ;; esac COMPREPLY=( $(compgen -W "$opts" -- $cur) ) return 0 } complete -F _fastboot fastboot
adb自动补全,更为完整的实现请参考 S5林风 的博客
文件名:adb (同样放在 /etc/bash_completion.d/ 目录下)
#!/bin/sh _adb() { local cur prev opts COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" opts="shell push pull reboot reboot-bootloader forward logcat devices kill-server root remount" case "$prev" in shell | pull | reboot-bootloader | logcat | devices | kill-server | root | remount) COMPREPLY=() return 0 ;; reboot) COMPREPLY=( $(compgen -W "bootloader recovery" -- $cur) ) return 0 ;; push) COMPREPLY=( $(compgen -o default -o plusdirs -f -- $cur) ) return 0 ;; *) local prev2="${COMP_WORDS[COMP_CWORD-2]}" if [ "$prev2" == "push" ] || [ "$prev2" == "reboot" ];then return 0 fi ;; esac COMPREPLY=( $(compgen -W "$opts" -- $cur) ) return 0 } complete -F _adb adb