def setEfEcc(self, data): data = data.split(';') dataNew = '' for record in data: number = types.getParamValue(record, "number") if not number: return False category = types.getParamValue(record, "cat") number = number.replace('F', '') if number: numberBcd = hextools.encode_BCD(number) numberBcd = hextools.bytes2hex(numberBcd) numberBcd = types.addTrailingBytes(numberBcd, 0xFF, 3) else: numberBcd = "FFFFFF" dataTmp = numberBcd if category: raise Exception("Not implemented") #TODO: move it to the last byte dataTmp += "%02X" % int(category) if dataNew: dataNew = "%s;%s" % (dataNew, dataTmp) else: dataNew = dataTmp return dataNew
def setEfEcc(self, data): data = data.split(';') dataNew = '' for record in data: number = types.getParamValue(record, "number") if not number: return False category = types.getParamValue(record, "cat") number = number.replace('F','') if number: numberBcd = hextools.encode_BCD(number) numberBcd = hextools.bytes2hex(numberBcd) numberBcd = types.addTrailingBytes(numberBcd, 0xFF, 3) else: numberBcd = "FFFFFF" dataTmp = numberBcd if category: raise Exception("Not implemented") #TODO: move it to the last byte dataTmp += "%02X" %int(category) if dataNew: dataNew = "%s;%s" %(dataNew, dataTmp) else: dataNew = dataTmp return dataNew
def setEfOpl(self, data): data = data.split(';') dataNew = '' for record in data: if not record: continue mccMnc = types.getParamValue(record, "mcc_mnc") if not mccMnc: raise Exception("mcc_mnc not provided") if len(mccMnc) != 6: mnc3 = 'F' else: mnc3 = mccMnc[5] mccMnc = "%s%s%s" % (mccMnc[0:3], mnc3, mccMnc[3:5]) lacRange = types.getParamValue(record, "lac") if not lacRange: lacRange = '0000-FFFE' lacStart = lacRange.split("-")[0] lacEnd = lacRange.split("-")[1] pnnId = int(types.getParamValue(record, "pnnId"), 16) lai = "%s%04X%04X" % (hextools.bytes2hex( hextools.encode_BCD(mccMnc)), int(lacStart, 16), int( lacEnd, 16)) dataNew += "%s%02X;" % (lai, pnnId) return dataNew
def setEfImsi(self, imsi): if len(imsi) % 2: dataLow = 9 else: dataLow = 1 firstByte = dataLow << 4 | int(imsi[0], 16) imsi = "%02X%s" % (firstByte, imsi[1:]) imsi = hextools.encode_BCD(imsi) return "08%s" % hextools.bytes2hex(imsi)
def setEfImsi(self, imsi): if len(imsi) % 2: dataLow = 9 else: dataLow = 1 firstByte = dataLow<<4 | int(imsi[0], 16) imsi = "%02X%s" %(firstByte, imsi[1:]) imsi = hextools.encode_BCD(imsi) return "08%s" %hextools.bytes2hex(imsi)
def setImsi(self, imsi): if len(imsi) % 2: dataLow = 9 else: dataLow = 1 firstByte = dataLow<<4 | int(imsi[0], 16) imsi = "%02X%s" %(firstByte, imsi[1:]) imsi = hextools.encode_BCD(imsi) imsi = "08%s" %hextools.bytes2hex(imsi) return self.writeFileBinary("6F07", imsi)
def setImsi(self, imsi): if len(imsi) % 2: dataLow = 9 else: dataLow = 1 firstByte = dataLow << 4 | int(imsi[0], 16) imsi = "%02X%s" % (firstByte, imsi[1:]) imsi = hextools.encode_BCD(imsi) imsi = "08%s" % hextools.bytes2hex(imsi) return self.writeFileBinary("6F07", imsi)
def setEfLoci(self, data): param = "tmsi" tmsi = types.getParamValue(data, param) if not tmsi: raise Exception("%s not provided" % param) param = "lai" lai = types.getParamValue(data, param) if not lai: #if lai is not provided, check mcc_mnc and lac param = "mcc_mnc" mccMnc = types.getParamValue(data, param) if not mccMnc: raise Exception("%s not provided" % param) if len(mccMnc) != 6: mnc3 = 'F' else: mnc3 = mccMnc[5] mccMnc = "%s%s%s" % (mccMnc[0:3], mnc3, mccMnc[3:5]) param = "lac" lac = types.getParamValue(data, param) if not lac: raise Exception("%s not provided" % param) lai = "%s%04X" % (hextools.bytes2hex( hextools.encode_BCD(mccMnc)), int(lac, 16)) param = "rfu" rfu = types.getParamValue(data, param) if not rfu: rfu = "FF" param = "loc_status" locStatus = types.getParamValue(data, param) if not locStatus: locStatus = "00" loci = "%s%s%s%s" % (tmsi, lai, rfu, locStatus) return loci
def setEfOpl(self, data): data = data.split(';') dataNew = '' for record in data: if not record: continue mccMnc = types.getParamValue(record, "mcc_mnc") if not mccMnc: raise Exception("mcc_mnc not provided") if len(mccMnc) != 6: mnc3 = 'F' else: mnc3 = mccMnc[5] mccMnc = "%s%s%s" %(mccMnc[0:3], mnc3, mccMnc[3:5]) lacRange = types.getParamValue(record, "lac") if not lacRange: lacRange = '0000-FFFE' lacStart = lacRange.split("-")[0] lacEnd = lacRange.split("-")[1] pnnId = int(types.getParamValue(record, "pnnId"), 16) lai = "%s%04X%04X" %(hextools.bytes2hex(hextools.encode_BCD(mccMnc)), int(lacStart, 16), int(lacEnd, 16)) dataNew += "%s%02X;" %(lai, pnnId) return dataNew
def setEfLoci(self, data): param = "tmsi" tmsi = types.getParamValue(data, param) if not tmsi: raise Exception("%s not provided" %param) param = "lai" lai = types.getParamValue(data, param) if not lai: #if lai is not provided, check mcc_mnc and lac param = "mcc_mnc" mccMnc = types.getParamValue(data, param) if not mccMnc: raise Exception("%s not provided" %param) if len(mccMnc) != 6: mnc3 = 'F' else: mnc3 = mccMnc[5] mccMnc = "%s%s%s" %(mccMnc[0:3], mnc3, mccMnc[3:5]) param = "lac" lac = types.getParamValue(data, param) if not lac: raise Exception("%s not provided" %param) lai = "%s%04X" %(hextools.bytes2hex(hextools.encode_BCD(mccMnc)), int(lac, 16)) param = "rfu" rfu = types.getParamValue(data, param) if not rfu: rfu = "FF" param = "loc_status" locStatus = types.getParamValue(data, param) if not locStatus: locStatus = "00" loci = "%s%s%s%s" %(tmsi, lai, rfu, locStatus) return loci