#!/usr/bin/python3 import dbus import sys bus = dbus.SystemBus() if len(sys.argv) < 6 and len(sys.argv) > 2: path = sys.argv[1] rands = [] for i in sys.argv[2:]: rands.append(bytearray.fromhex(i)) sim_auth = dbus.Interface(bus.get_object('org.ofono', path), 'org.ofono.SimAuthentication') apps = sim_auth.GetApplications() for i in apps: if apps[i]['Type'] == 'Umts': umts_path = i if not umts_path: print("No Umts application found") quit() umts = dbus.Interface(bus.get_object('org.ofono', umts_path), 'org.ofono.USimApplication') av = umts.GsmAuthenticate(rands) for i in av: print('SRES: ' + ''.join('%02x' % x for x in i['SRES'])) print('KC: ' + ''.join('%02x' % x for x in i['Kc'])) else: print("./run-usim-gsm-auth ...[up to 3]")