sc.verify_chv(1, args.pin) if args.delete_app: ac.delete_aid(args.delete_app) if args.load_app: ac.load_app(args.load_app) if args.install: ac.install_app(args) if args.print_info: print "--print-info not implemented yet." if args.disable_pin: sl.send_apdu_checksw('0026000108' + args.disable_pin.encode("hex") + 'ff' * (8 - len(args.disable_pin))) if args.dump_phonebook: num_records = sc.record_count(['3f00', '7f10', '6f3a']) print("Phonebook: %d records available" % num_records) for record_id in range(1, num_records + 1): print sc.read_record(['3f00', '7f10', '6f3a'], record_id) if args.set_phonebook_entry: num_records = sc.record_count(['3f00', '7f10', '6f3a']) record_size = sc.record_size(['3f00', '7f10', '6f3a']) record_num = int(args.set_phonebook_entry[0]) if (record_num < 1) or (record_num > num_records): raise RuntimeError("Invalid phonebook record number") encoded_name = rpad(b2h(args.set_phonebook_entry[1]), (record_size - 14) * 2)
sc = SimCardCommands(sl) sl.wait_for_card(newcardonly=args.new_card_required) time.sleep(args.sleep_after_insertion) # Get the ICCID print("ICCID: %s" % swap_nibbles(sc.read_binary(['3f00', '2fe2'])[0])) if args.pin: sc.verify_chv(1, args.pin) if args.print_info: print("--print-info not implemented yet.") if args.disable_pin: sl.send_apdu_checksw('0026000108' + args.disable_pin.encode("hex") + 'ff' * (8 - len(args.disable_pin))) if args.dump_phonebook: num_records = sc.record_count(['3f00','7f10','6f3a']) print("Phonebook: %d records available" % num_records) for record_id in range(1, num_records + 1): print(sc.read_record(['3f00','7f10','6f3a'], record_id)) if args.sqlite_db: dbh = sqlite3.connect(args.sqlite_db[0]) if args.set_phonebook_entry: set_phonebook(args.set_phonebook_entry[0], args.set_phonebook_entry[1], args.set_phonebook_entry[2], args.set_phonebook_entry[3])