Example #1
0
 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
Example #2
0
 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
Example #3
0
 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
Example #4
0
 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)
Example #5
0
 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)
Example #6
0
 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)
Example #7
0
 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)
Example #8
0
    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
Example #9
0
 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
Example #10
0
    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