Back to journal
Device integrity5 min read

Device integrity for workforce apps: what to block, what to review

Mock locations, emulators, rooted devices, jailbroken devices, and unapproved phones all need different operational responses.

By Onsight Editorial · Workforce intelligence team/

Every workforce attendance system eventually meets the same set of adversaries. A mock-location app from the Play Store. An Android emulator running on someone's laptop. A rooted phone with developer tools that let the user override anything the app reports. A second handset that turns one employee into two check-ins.

The mistake teams make is treating all of these as the same problem. They are not. Some of them are deliberate fraud. Some are honest configuration choices that happen to break your assumptions. If you respond to every signal with a block, you push genuine workers out of the system. If you respond to none of them, you stop being able to defend any of the data you collect.

This is a guide to what each signal usually means, and how to respond proportionally.

The signals worth collecting

Modern workforce SDKs expose a fairly standard set of device signals. The ones that matter most for attendance integrity are:

  • Mock location enabled — the OS is reporting a location supplied by another app, not the GPS chip.
  • Developer mode enabled — a precondition for many of the other signals.
  • Root / jailbreak detected — the device has been modified to bypass OS-level restrictions.
  • Emulator detected — the app is running on a virtual device, not real hardware.
  • Device fingerprint mismatch — the install on this device does not match the employee's registered device.
  • Time tampering — the device clock disagrees materially with server time.
  • Reinstall signal — the app instance is new, even though the user has used the system before.

Collect all of them. Decide what to do with them based on operational context, not absolute rules.

What to block at the gate

A small number of signals are unambiguous enough to block at the gate — meaning the check-in never reaches your timesheets at all.

Mock locations during a check-in

If isMockLocation is true at the precise moment of a check-in, the location data is unreliable by definition. Block the action and surface a clear message: "Location services are returning a simulated location. Disable mock locations under Developer options and try again."

This is the one signal where a hard block is almost always correct. There is no legitimate use of mock locations during a real check-in.

Emulator-based check-ins

A real worker on a real shift is not checking in from BlueStacks. Block these unconditionally and treat the account as needing review.

Time tampering above tolerance

If the device clock is more than five minutes off server time, your timestamps are not defensible. Reject the check-in and ask the user to enable automatic time sync.

What to flag for review

The next tier of signals are not proof of fraud. They are reasons to look more carefully. The right response is to record the attendance and flag it, not to block.

Rooted or jailbroken devices

A rooted Android phone or a jailbroken iPhone has bypassed OS-level controls. That does not mean the person holding it is committing fraud. Developers, hobbyists, and people who bought a second-hand phone all carry rooted devices. But the integrity guarantees you usually rely on (Keystore, Secure Enclave, package signature checks) are weaker on these devices.

Record the check-in. Tag the record with a device.root signal. Make it filterable in the exception report. Decide policy by role and risk — a logistics coordinator on a rooted device is a different concern from a security guard with cash-handling responsibilities.

Unapproved device fingerprint

The employee is checking in from a device that was not registered to them. The most common explanation is a new phone. The second most common is buddy punching.

Treat it as a device-registration event, not a fraud event:

  • Capture the check-in.
  • Require an additional approval step — usually a selfie plus a manager confirmation.
  • Bind the new device on success. Suspend it on failure.

Reinstall signal

A fresh install of the app on the same user account is sometimes legitimate (phone reset, OS upgrade) and sometimes a workaround for an earlier block. Flag it for the first few check-ins, then return to normal once the device signature stabilises.

What to ignore

Some signals look interesting but rarely add operational value.

Developer mode alone. Many engineers and power users have it enabled. By itself, it tells you almost nothing. Use it only in combination with other signals — for example, developer mode plus emulator plus reinstall is a much stronger pattern than developer mode by itself.

Foreign SIM / roaming. Field workers cross borders. Drivers visit warehouses across state lines. Roaming is not a fraud signal.

Battery saver / low-accuracy mode. This degrades GPS quality, but it is a configuration choice, not a fraud one. Surface it to the worker as a quality hint: "Your GPS is in battery-saving mode. Your check-in location may be less accurate."

The operational pattern

The pattern that holds up across hundreds of rollouts looks like this:

  1. Collect every signal, including the ones you do not currently act on. You will need the history when you build policies later.
  2. Block only the unambiguous signals: mock location, emulator, severe time tampering.
  3. Flag everything else into an exception queue your supervisors actually review.
  4. Tier responses by role. A field engineer's rooted device is different from a cash-handling clerk's rooted device. Encode that in policy, not in the app.
  5. Make the audit trail immutable. Every block, every flag, every override should be recorded with actor, timestamp, and reason. You will be glad to have it when a disputed payroll cycle comes up.

The aim of device integrity is not to win an arms race with adversarial users. It is to make the records you produce defensible — to payroll, to HR, to auditors, and to the employees themselves. A worker whose check-in is wrongly blocked deserves to know why. A worker whose colleague is faking attendance deserves the system to notice. Both outcomes come from the same discipline: collect generously, block narrowly, review consistently.

Turn the article into an operating policy.

Onsight can help you define geofences, trust controls, exception flows, and reporting rules around your real workforce.

Walk through your rollout

Bring your site structure, employee groups, and compliance concerns.

Book demo