mirror of https://gerrit.osmocom.org/simtrace2
phone.py: too many usb function calls
This commit is contained in:
parent
381d0fcde9
commit
69734e9ad9
|
@ -6,6 +6,7 @@ import sys
|
|||
|
||||
# SuperSIM ATR
|
||||
atr= [0x3B, 0x9A, 0x94, 0x00, 0x92, 0x02, 0x75, 0x93, 0x11, 0x00, 0x01, 0x02, 0x02, 0x19]
|
||||
RESP_OK = [0x60, 0x00]
|
||||
|
||||
def find_dev():
|
||||
dev = usb.core.find(idVendor=0x03eb, idProduct=0x6004)
|
||||
|
@ -45,28 +46,54 @@ def find_eps(dev):
|
|||
print(ep_out)
|
||||
return (ep_in, ep_out)
|
||||
|
||||
def emulate_sim():
|
||||
dev = find_dev()
|
||||
# (epi, epo) = find_eps(dev)
|
||||
def handle_phone_request():
|
||||
# ATR handling
|
||||
try:
|
||||
arr = dev.read(0x83, 64, 100) # Notification endpoint
|
||||
print("arr: ", arr)
|
||||
c=arr.pop()
|
||||
print(c)
|
||||
|
||||
while True:
|
||||
#ep_out.write("Hello")
|
||||
try:
|
||||
# ATR handling
|
||||
arr = dev.read(0x83, 64, 1000) # Notification endpoint
|
||||
print("arr: ", arr)
|
||||
c=arr.pop()
|
||||
print(c)
|
||||
if c == ord('R'):
|
||||
if c == ord('R'):
|
||||
try:
|
||||
written = dev.write(0x1, atr, 1000) # Probably we received a Reset, so we send ATR
|
||||
print("Written data: " + written)
|
||||
|
||||
except:
|
||||
print("Timeout sending ATR!")
|
||||
return
|
||||
|
||||
except:
|
||||
#print("Timeout receiving atr!")
|
||||
pass
|
||||
|
||||
# Read phone request
|
||||
try:
|
||||
cmd = dev.read(0x82, 64, 10000000)
|
||||
print("Received request!: ")
|
||||
print("".join("%02x " % b for b in ans))
|
||||
|
||||
print("Write response");
|
||||
try:
|
||||
written = dev.write(0x01, RESP_OK, 10000000);
|
||||
print("Bytes written:")
|
||||
print(written)
|
||||
except:
|
||||
print("Timeout in send response")
|
||||
|
||||
except:
|
||||
#print("Timeout in receive cmd")
|
||||
pass
|
||||
|
||||
|
||||
def emulate_sim():
|
||||
dev = find_dev()
|
||||
|
||||
while True:
|
||||
try:
|
||||
handle_phone_request()
|
||||
|
||||
ans = dev.read(0x82, 64, 1000)
|
||||
print("".join("%02x " % b for b in ans))
|
||||
except KeyboardInterrupt:
|
||||
print("Bye")
|
||||
sys.exit()
|
||||
except:
|
||||
print("Timeout")
|
||||
# print(ep_in.read(1, 5000));
|
||||
|
|
Loading…
Reference in New Issue