多台机器自动刷机

脚本思路:
扫描当前连接电脑的及其device信息, 生成新的运行脚本,新的脚本指令device 信息,
可连续执行需要动作,一次刷机多台机器,无需手动去断开执行。
该脚本顺序执行,需要进一步优化为多线程执行。

1.先将机器全部连接,机器未进入 fastboot 模式时, 执行此脚本会先让所有设备进入 fastboot 模式
2. 所有机器进入 fastboot 模式后,运行脚本会执行对应的刷机

#!/bin/bash
#AutoRebootBootloader
adb devices |tee device_list
sed -i "1d" device_list
sed -i '/^[[:space:]]*$/d' device_list
SCRIPT_FILE=FlashScript.sh
#create running script
if [ -f $SCRIPT_FILE ]; then
   rm $SCRIPT_FILE
fi
echo "#!/bin/bash" >> $SCRIPT_FILE
awk -F ' ' '{
        if($1!="") {
                print "echo Reboot bootloader device: " $1;
                print "adb -s " $1  " reboot bootloader"}
        }' device_list >> $SCRIPT_FILE
echo "echo \"Reboot End\"" >> $SCRIPT_FILE
echo "sleep 5" >> $SCRIPT_FILE
fastboot devices |tee fastboot_list
sed -i '/^[[:space:]]*$/d' fastboot_list
awk -F ' ' '{
        if($1!="") {
                print "#**************** "  $1 "*************";
                print "echo flash device: " $1;
                print "fastboot -s " $1  " flash aboot emmc_appsboot.mbn";
                print "fastboot -s " $1  " flash boot boot.img";
                print "fastboot -s " $1  " flash dtbo dtbo.img";
                print "fastboot -s " $1  " flash super super.img";
                print "fastboot -s " $1  " flash vbmeta_system vbmeta_system.img";
                print "fastboot -s " $1  " flash vbmeta vbmeta.img";
                print "fastboot -s " $1  " flash metadata metadata.img";
                 print "fastboot -s " $1 "flash userdata userdata.img";
                print "fastboot -s " $1  " reboot";
                print "#**********************************" }
        }' fastboot_list >> $SCRIPT_FILE
chmod +x $SCRIPT_FILE
bash $SCRIPT_FILE

优化后的多线程刷机:
默认刷机脚本flash_all.sh, 并没有指定设备,无法实现并刷,通过sed命令,对已插入电脑的设备
指定fastboot 设备名称,重新进行刷机.

#!/bin/bash

FASTBOOT_TOOL=flash_all.sh
rm devlist
rm devlist01
fastboot devices > devlist
awk -F ' ' '{print $1}' devlist  > devlist01
sed -i '/^$/d' devlist01
i=1
while read line
do
	echo $i
	sed "s/fastboot/fastboot -s $line/g" ${FASTBOOT_TOOL} > flash_$i.sh
	i=`expr $i + 1`
done < devlist01
while true
do
	i=`expr $i - 1`
	if [ $i -eq 0 ];then
			echo "end"
		break;
	fi
    chmod +x ./flash_$i.sh
	./flash_$i.sh &
	echo "flash_$i"
done

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值