pymobiledevice3
pymobiledevice3 copied to clipboard
Error reported when pairing with AppleTV
Test environment
- Ubuntu 22.04
- AppleTV and tvOS 17.5
- pymobiledevice3 4.8.4
Describe the bug
Hi, I encounter an error when attempting to pair my AppleTV using the pymobiledevice3 remote pair command. After selecting the device, pymobiledevice3 reports an error:
Traceback (most recent call last):
File "/usr/local/bin/pymobiledevice3", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/__main__.py", line 100, in main
cli()
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/cli/remote.py", line 240, in cli_pair
asyncio.run(start_remote_pair_task(name), debug=True)
File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
return future.result()
File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/cli/remote.py", line 233, in start_remote_pair_task
await service.connect(autopair=True)
File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/remote/tunnel_service.py", line 881, in connect
await RemotePairingProtocol.connect(self, autopair=autopair)
File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/remote/tunnel_service.py", line 371, in connect
await self._pair()
File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/remote/tunnel_service.py", line 488, in _pair
await self._verify_proof()
File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/remote/tunnel_service.py", line 550, in _verify_proof
assert self.srp_context.verify_proof(data[PairingDataComponentType.PROOF].hex().encode())
KeyError: EnumIntegerString.new(4, 'PROOF')
Did I miss something?
To Reproduce Steps to reproduce the behavior:
- Execute
pymobiledevice3 remote pair - Select One Device to Pair
- See error
Expected behavior Pair AppleTV success
Logs If applicable, add logs including backtraces for the given error that help explain your problem.
Additional context Add any other context about the problem here.
For community
⬇️ Please click the 👍 reaction instead of leaving a +1 or 👍 comment
Test environment
- Ubuntu 22.04
- AppleTV and tvOS 17.5
- pymobiledevice3 4.8.4
Describe the bug Hi, I encounter an error when attempting to pair my AppleTV using the
pymobiledevice3 remote paircommand. After selecting the device, pymobiledevice3 reports an error:Traceback (most recent call last): File "/usr/local/bin/pymobiledevice3", line 8, in <module> sys.exit(main()) File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/__main__.py", line 100, in main cli() File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1157, in __call__ return self.main(*args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1078, in main rv = self.invoke(ctx) File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1688, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 1434, in invoke return ctx.invoke(self.callback, **ctx.params) File "/usr/local/lib/python3.10/dist-packages/click/core.py", line 783, in invoke return __callback(*args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/cli/remote.py", line 240, in cli_pair asyncio.run(start_remote_pair_task(name), debug=True) File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run return loop.run_until_complete(main) File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete return future.result() File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/cli/remote.py", line 233, in start_remote_pair_task await service.connect(autopair=True) File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/remote/tunnel_service.py", line 881, in connect await RemotePairingProtocol.connect(self, autopair=autopair) File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/remote/tunnel_service.py", line 371, in connect await self._pair() File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/remote/tunnel_service.py", line 488, in _pair await self._verify_proof() File "/usr/local/lib/python3.10/dist-packages/pymobiledevice3/remote/tunnel_service.py", line 550, in _verify_proof assert self.srp_context.verify_proof(data[PairingDataComponentType.PROOF].hex().encode()) KeyError: EnumIntegerString.new(4, 'PROOF')Did I miss something?
To Reproduce Steps to reproduce the behavior:
- Execute
pymobiledevice3 remote pair- Select One Device to Pair
- See error
Expected behavior Pair AppleTV success
Logs If applicable, add logs including backtraces for the given error that help explain your problem.
Additional context Add any other context about the problem here.
For community
⬇️ Please click the 👍 reaction instead of leaving a
+1or 👍 comment
Inspect the packets with wireshark, Apple sends back a non-encrypted error packet. First byte is key, Second byte is length of value, and rest of bytes is value up to length.
Looking at the error message you got it's likely that the SRP portion failed, I'm getting the same thing. I tried a couple times so Apple rate limited me by 0x20 seconds