Emulators and simulators
Accounts created from emulated devices to farm rewards or evade bans. The Android and iOS SDKs report emulators, virtualised Android and the iOS Simulator.
Mobile fraud prevention needs two answers: which installation is this, and is the environment honest. Fingerly gives a native app a random install ID plus checks for emulators, rooted and jailbroken devices, cloned apps and tampering, on iOS, Android and the cross-platform bridges.
Apps run on devices you do not control, which is why mobile abuse looks different from the web. These are the patterns that most often reach app publishers and game studios.
Accounts created from emulated devices to farm rewards or evade bans. The Android and iOS SDKs report emulators, virtualised Android and the iOS Simulator.
Apps run inside cloning frameworks, next to copies of themselves, to run many accounts. Cloned-app signals are reported on Android.
Devices where the platform’s protections have been removed. Rooted and jailbroken states are reported with weights you control.
A hooking framework attached to the app, or something intercepting its encrypted traffic. Both are reported so a sensitive action can be treated with care.
Players and users who reinstall and re-register. The install ID, with farm and emulator signals, links accounts that would otherwise look unrelated.
Racks of phones that complete offers, watch ads or claim daily rewards. Device farm signals show many alike devices behind one network.
In an app the device is recognised by a random install ID the SDK keeps for the app, never by its hardware. Removing the app or clearing its data may start a fresh ID, so the environment checks matter beside it.
One device looks innocent. A rack does not.
Identify at first launch, signup and reward claim. Emulators, simulators and devices that look provisioned for bulk use are reported by the SDK, and the server compares them with your own traffic. Hold rewards for the cluster.
Many accounts, one phone.
Cloned-app and tampering signals show an app running inside a cloning framework. Managed work profiles are a normal Android setup and are weighted so that an enterprise fleet is not reported as clones.
What the phone says about itself.
Rooted and jailbroken devices, instrumentation and interception are reported by the native SDKs. Developers test on unlocked devices, so ordinary development settings are tuned not to read as an attack. Decide on the server.
Fair play starts with clearer signals.
Collect device context at onboarding and at reward redemption, and combine it with your own gameplay evidence. Fingerly is not an anti-cheat implementation; it surfaces farms, emulators and connected accounts for your team to review.
Four habits keep a policy for mobile apps and games effective without turning it against genuine customers. A production identification is billed per request, from $0.0025, so it is worth placing where it earns its cost.
Call identify from the app at first launch, signup, login and reward claims, not on every screen. Pass your own account reference as the tag so the result comes back with the account it describes.
await fingerly.identify({ tag: "first-launch" })Send only the request ID from the app to your backend, read the stored result with a secret key, and check that its tag matches the action. An app can be patched to report anything, so the server decides.
Run in monitoring mode first. Players use accessibility services, shared tablets and work profiles, so measure who a rule would affect before enforcing it.
Prefer holding rewards and limiting features over banning on one signal. Keep enforcement proportional to the evidence and give a genuine user a way to be cleared.
Where a mobile app or game usually places the check and what it reads there.
| Moment | Identify when | Read | Usual first decision |
|---|---|---|---|
| First launch | The app opens for the first time | Install ID, emulator, simulator | Observe, hold rewards for farms |
| Signup | The account is created | Visitor ID, device farm, cloned app | Review clusters before rewards |
| Login | Credentials are submitted | Visitor ID, rooted or jailbroken device | Step up for new installs with other signals |
| Reward claim | Before the reward is paid | High activity, device farm | Hold for review |
| Payout or purchase | Before it completes | Instrumentation, interception, tampering | Limit the action on a compromised device |
Every decision is yours. Fingerly returns the visitor ID, the signals and the suspect score, and never blocks a request by itself.
How a mobile app or game uses device fingerprinting, and what an install ID can and cannot do.
Talk to the teamIn Fingerly, a native app is recognised by a random install ID the SDK keeps for the app, never by its hardware, and it sends a report of its environment to the server. The response carries the visitor ID, the signals that fired and a suspect score, the same shape as on the web.
Yes. Fingerly has native iOS and Android SDKs, with React Native, Flutter and Lynx bridges over them. They send the same identify request as the web SDK and receive the same response fields, so one backend integration covers every surface.
Yes. The Android SDK reports rooted devices, emulators and cloned apps, and the iOS SDK reports jailbroken devices and the iOS Simulator. Both report instrumentation, interception and tampering, each as a signal with a weight you control.
No. Fingerly is not an anti-cheat implementation and does not observe gameplay. It reports device farms, emulators, cloned apps and connected accounts, which are useful review categories alongside your own gameplay evidence.
Removing the app or clearing its data may start a fresh install ID, so an install ID alone does not follow a person. That is why Fingerly also reports emulator, farm and cloned-app signals, and why the connection to an account is a record you keep in your own systems.
Start with the signals, keep your own decisions, and pay as you go, only for what you identify. No credit card needed.