Полное раскрытие: я новичок в разработке для Android и Linux.
У меня есть сценарий оболочки для циклического подключения подключенных устройств и выполнения команд ADB.
while read -r udid device usb product model device2; do
echo ""
echo $usb
echo ""
# REBOOT
adb -s "$usb" reboot-bootloader
# UNLOCK OEM
fastboot -s "$usb" oem unlock
# REBOOT
fastboot -s "$usb" reboot
done < <(adb devices -l | sed "1d; $ d")
Это прекрасно работает на одном устройстве. Если у меня есть два устройства, первое устройство будет работать, а второе будет зависать:
< waiting for usb:1-2 >
На трех устройствах первое устройство перезагрузится в загрузчик, а затем зависнет, как я сказал выше.
Конечная игра здесь - выполнить этот скрипт (и несколько других) на как можно большем количестве устройств Android одновременно. Этот цикл отлично подходит для отправки нашего APK на каждое устройство, но для разблокировки загрузчика, для запуска этого кода и для загрузки другого сценария для восстановления, он зависает.
Я нашел этот stackoverflow и убедился, что мои правила udev были правильными. Как я уже сказал, это работает на одном устройстве без проблем.
Я также ссылался на этот пост , в котором рекомендовалось изменить цикл while на цикл for, и он имеет тот же результат.
Эти устройства представляют собой телефоны Mediatek, работающие под управлением Android 6.0 Marshmallow. Таким образом, все серийные номера одинаковы (0123456789ABCDEF), если это проблема. Я использую Ubuntu 8.10.