diff --git a/src/orchard_cli/apple/linux_usb.py b/src/orchard_cli/apple/linux_usb.py index c363f08..4042546 100644 --- a/src/orchard_cli/apple/linux_usb.py +++ b/src/orchard_cli/apple/linux_usb.py @@ -3,7 +3,7 @@ import re import uuid -MODES = {0x1227: 'dfu', 0x4141: 'pongo', 0x4142: 'linux'} +MODES = {0x1227: 'dfu', 0x4141: 'pongo', 0x4142: 'linux', 0x4144: 'ram'} def devices(root=Path('/sys/bus/usb/devices')): diff --git a/tests/test_device_state.py b/tests/test_device_state.py index 5212902..74349ca 100644 --- a/tests/test_device_state.py +++ b/tests/test_device_state.py @@ -142,6 +142,20 @@ def test_linux_usb_descriptor_identifies_device_and_boot_without_serial_commands self.assertEqual(len(rows),1) self.assertEqual((rows[0]['ecid'],rows[0]['boot_id']),(2,BOOT_B)) + def test_linux_ram_payload_is_available_to_ram_session_tools(self): + node = self.root/'1-2' + node.mkdir() + for name,value in {'idVendor':'05ac','idProduct':'4144','product':'Orchard charger-test', + 'serial':f'BOOT:{BOOT_B}'}.items(): + (node/name).write_text(value) + (node/'iface/tty/ttyACM0').mkdir(parents=True) + rows = linux_usb.devices(self.root) + self.assertEqual(len(rows),1) + self.assertEqual(rows[0]['mode'],'ram') + self.assertEqual(rows[0]['boot_id'],BOOT_B) + self.assertEqual(rows[0]['serial_port'],'/dev/ttyACM0') + self.assertIsNone(rows[0]['ecid']) + if __name__ == '__main__': unittest.main()