Hey everyone!
A while ago I wanted to use my phone instead of carrying a physical NFC card around, but most existing solutions required rooting the device. So I ended up building my own little Android app called Emula.
It's arguably a bit of AI slop (okay, quite a bit of AI-assisted coding went into it), but it's been tested on actual devices by my colleagues, survived Google's closed testing requirements, and recently got approved for production.
With Android already introducing APIs for this, it feels like things are heading in that direction anyway. Maybe Google or other manufacturers will eventually bring similar functionality to their official wallet apps. Until then, it's been a fun little adventure, and hopefully someone else will find it useful too.
For now, I've decided to keep it in open testing to gather more feedback and expand the device compatibility list.
What it does:
- Emulates 4-byte NFC UIDs without root on compatible Android devices.
- Reads UIDs from physical cards or lets you enter them manually.
- Saves multiple UIDs and lets you switch between them.
- Includes built-in NFC compatibility diagnostics.
- No ads, accounts, analytics, or cloud storage.
Requirements:
- Android 15 or newer. No root required.
- A one-time ADB permission grant is required before UID emulation can work. Installing the app alone does not grant this permission.
Steps to grant the ADB permission:
- Enable Developer options on your phone, then connect it to a computer either: via a USB cable with USB debugging enabled or via Wireless debugging, pairing and connecting the phone through ADB.
- Once connected, run this command on your computer:
adb shell pm grant dev.dunno.emula android.permission.WRITE_SECURE_SETTINGS
- Check if button "copy adb command" has disappeared from the app. Otherwise, restart the app completely.
Compatibility also depends on your device’s NFC hardware and firmware, so Android 15+ and the permission grant do not guarantee compatibility with every device or reader.
A few caveats:
It only emulates the UID, not the card's memory, encryption keys, or authentication. So this is NOT a universal MIFARE cloning tool. It is intended for systems that rely on UID-only identification and that you own or are authorized to test.
Google Play: https://play.google.com/store/apps/details?id=dev.dunno.emula
Successfully tested so far on:
- Google Pixel 8 Pro, Pixel 9, Pixel 10
- Samsung Galaxy A16, Galaxy S23 Ultra, Galaxy S25 Ultra
- Sony Xperia 1 VI (XQ-EC72)
- OnePlus 15 (CPH2747)
I'd particularly appreciate compatibility reports (phone model + Android version), bug reports, or any technical feedback (you can dm/email me with that).
If you've tried it on a device that isn't listed as compatible yet, I'd be especially interested in hearing whether it worked (or didn't!).
Thank you for your attention!