pySIMsms.py 文件源码

python
阅读 53 收藏 0 点赞 0 评论 0

项目:SIMreader 作者: stoic1979 项目源码 文件源码
def read(self):
        try:
            self.SIM.gotoFile(SMS_FILE_PATH)
            # Send the get response command, to find out record length
            data, sw = self.SIM.sendAPDUmatchSW("A0C000000F", SW_OK)
            self.recordLength  = int(data[28:30], 16) # Should be 0xB0 (176)
            self.numberRecords = int(data[4:8], 16) / self.recordLength
        except:
            pySIMmessage(self, "Unable to access your SMS folder on your SIM card.", "SIM card error")
            return

        if not self.SIM.checkAndVerifyCHV1(CHV_READ, data):
            return

        apdu = "A0B2%s04" + IntToHex(self.recordLength)
        dlg = wxskinProgressDialog("SMS", "Reading your SMS messages", self.numberRecords + 1, self, wx.PD_CAN_ABORT | wx.PD_APP_MODAL)
        try:
            for i in range(1, self.numberRecords + 1):
                if not dlg.Update(i):
                    break
                data, sw = self.SIM.sendAPDUmatchSW(apdu % IntToHex(i), SW_OK)
                # See if SMS record is used
                status = int(data[0:2], 16)
                if status & 1 or data[2:4] != 'FF':
                    try:
                        sms = SMSmessage()
                        sms.smsFromData(data)
                        self.itemDataMap[i] = (sms.status, sms.timestamp, sms.number, sms.message, sms)
                    except:
                        #~ print i
                        #~ print data
                        #~ print_exc()
                        pass
        except:
            # Finished with the guage
            print_exc()
            pySIMmessage(self, "Unable to read your SMS messages on your SIM card.", "SIM card error")
        dlg.Destroy()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号