本文主要是介绍外接串口板,通过串口打开adb模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、依赖库
import subprocess import serial from serial.tools import list_ports import logging import time
二、代码
import subprocessimport serial
from serial.tools import list_ports
import logging
import timedef openAdb(com):# com = []# for i in list_ports.comports():# if 'USB Serial' in i.description:# print(i.description)# com = i.name# print(com)# logging.debug(f'serial port:{com}')# breakprint("try to open adb")ser = serial.Serial(com, 115200, timeout=0.1)if ser.is_open:ser.write(b"\n")time.sleep(1)ser.write(b"root\n")ser.write(b"\n")time.sleep(1)ser.write(b"Visteon@JMC23651\n")time.sleep(1)ser.write(b"dtach -a /tmp/glconsole\n")ser.write(b"su\n")ser.write(b"Vist@jmc789\n")time.sleep(1)ser.write(b"start setmode_device\n")time.sleep(1)ser.close()def check_adb(com):count = 0while True:try:subprocess.run(["adb", "kill-server"], check=True)subprocess.run(["adb", "start-server"], check=True)output = subprocess.check_output("adb devices", shell=True).decode('utf-8')# print("Output of adb devices:", output.strip())devices = []lines = output.strip().split('\n')for line in lines[1:]:if '\tdevice' in line:device_info = line.split('\t')[0]devices.append(device_info)print(devices)if devices is not None and len(devices) > 0:print("Device found. Performing operations...")breakelse:print("Device not found. Switching modes and retrying...")openAdb(com)count += 1if count >= 5:print("Please check if the environment is OK")breakexcept subprocess.CalledProcessError as e:print("An error occurred while executing adb command:", e)breakif __name__ == '__main__':com = 'COM24'# openAdb(com)check_adb(com)
三、使用场景
需要外接继电器,通过串口命令打开车机调试模式
这篇关于外接串口板,通过串口打开adb模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!