adb-connect.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env node
  2. const { execSync } = require('child_process')
  3. const path = require('path')
  4. const projectRoot = path.resolve(__dirname, '..')
  5. const adbPath = path.join(projectRoot, 'exe', 'adb', 'adb.exe')
  6. const deviceIp = process.argv[2]
  7. const devicePort = process.argv[3] || '5555'
  8. if (!deviceIp) {
  9. process.stdout.write('false\n')
  10. process.exit(1)
  11. }
  12. // Connect to device
  13. const connectCommand = `"${adbPath}" connect ${deviceIp}:${devicePort}`
  14. const connectOutput = execSync(connectCommand, { encoding: 'utf-8' })
  15. const connectResult = connectOutput.trim()
  16. const connectSuccess = connectResult.includes('connected') || connectResult.includes('already connected')
  17. if (!connectSuccess) {
  18. process.stdout.write('false\n')
  19. process.exit(1)
  20. }
  21. // Verify device is actually available in device list
  22. try {
  23. const devicesCommand = `"${adbPath}" devices`
  24. const devicesOutput = execSync(devicesCommand, { encoding: 'utf-8' })
  25. const deviceAddress = `${deviceIp}:${devicePort}`
  26. const isDeviceAvailable = devicesOutput.includes(deviceAddress) && devicesOutput.includes('device')
  27. if (isDeviceAvailable) {
  28. process.stdout.write('success\n')
  29. process.exit(0)
  30. } else {
  31. process.stdout.write('false\n')
  32. process.exit(1)
  33. }
  34. } catch (error) {
  35. process.stdout.write('false\n')
  36. process.exit(1)
  37. }