门卡模拟是小米钱包内通过NFC(近场无线通讯技术)实现的可模拟部分门禁卡的功能,模拟成功的门卡可以与其他MIPay卡片共存,使用时需验证指纹。小米MIUI最早于2017年底便开始内测门卡模拟功能,2018年1月公测,3月正式上线稳定版,支持小米5及之后的所有支持NFC的小米手机。
门卡模拟的实现原理简单来说,就是用手机读取门禁卡的ID,也就是门禁系统用来识别用户身份的ID,使用时把手机NFC芯片的ID改为读取的门禁卡ID。
美中不足的是,小米钱包门卡模拟支持模拟的卡的范围十分有限,小米官方明确表示:
目前仅支持模拟市面上未经加密且频率为13.56MHZ的门卡;
带有门卡功能的银行卡和储值消费、公交消费等功能的门卡暂时不能被模拟。即使模拟成功,这些卡片也不具备银行、公交等功能。
门卡支持范围
现存问题
那么问题来了,现在很多高校中在使用的“校园一卡通”,通常会集成饭卡、热水卡、洗衣卡甚至银行卡的功能,用于这些储值功能的扇区一定是加密的。按照小米的提示,这些卡是不能被模拟的,即使有“漏网之鱼”被模拟成功,也无法使用储值功能。事实上,经过多张卡多次试验之后,我也没碰到过可以模拟成功的,所有带储值功能的门禁卡在检测时都会提示“读卡失败,可能存在加密区,请重试”。如果检测时完全没有反应,那么这张卡并不是13.56MHz的,连成为“漏网之鱼”的机会也没有。
读卡失败
解决办法
经过一些尝试之后,我发现一种可以解决频率为13.56MHz、有加密区的门卡无法模拟的办法,我身边并没有找到频率非13.56MHz的卡,没做试验,理论上同样是可以的。
这个办法操作极为简单,但需要一定成本,因为要用到一款软件—“NFC卡模拟\NFC Emulator”,所以需要另一台(注意是另一台)已root并支持NFC的手机,这里我用的是一台已经刷了开发版并已root的小米5。
软件的使用十分简单:贴卡读取——命名——OK,使用亦是十分简单:亮屏(无需解锁)——刷手机——开门,听说刷Xposed框架会有插件可以实现息屏刷卡,我还没有尝试,毕竟只是在中间搭桥,最终目的还是用门卡模拟功能模拟成功。
模拟成功后试用一下是可以用的,便可以进行下一步操作,将要被模拟的手机亮屏,不要解锁,因为如果用小米钱包开了公交卡并设为默认模式,贴在别的设备上默认用公交刷卡,所以在锁屏界面点亮即可。打开小米钱包——门禁模拟,开始检测。
检测成功会出现“开始模拟”按钮,点击“开始模拟”,会出现“用户协议”与“身份验证”界面。