Who this guide is for
You are here because something feels wrong. Maybe your partner quoted a message you never showed them. Maybe your ex suddenly knows where you had lunch. Maybe the battery drains faster than it used to, the phone gets warm in your pocket, or a "system" app you never installed keeps asking for permissions. Or maybe nothing specific happened, and you just want to be sure your phone is yours.
This guide walks you through the whole process on Android: spotting the signs, doing a quick ten-minute check in Settings, pulling the real list of installed apps with a computer and checking it with the GuestSpy Web Scanner, reading the deep report so you understand what was found, removing it properly, and then hardening your phone and accounts so it does not happen again.
It is written for a normal person with a normal phone. You do not need to be technical. Where a step uses a command line, we give you the exact command to type and tell you what it does. Where a menu name differs between manufacturers, we say so, because Samsung, Google Pixel, Xiaomi, OnePlus and others each rename things a little.
One thing before anything else.
If the person who may have put spyware on your phone is a partner, ex-partner, family member or anyone you live with or fear, stop and think before you delete anything. Stalkerware usually reports back to the person who installed it. Many apps notify them when they lose access, and a phone that suddenly "goes dark" can escalate an already dangerous situation.
Consider talking to someone first. The Coalition Against Stalkerware (stopstalkerware.org) has guidance and a list of organisations by country. In the US, the National Domestic Violence Hotline is 1-800-799-7233. Local domestic-violence services can help you plan the safest time to clean the phone, and whether it is better to keep using it normally while you prepare.
If you may want to involve the police later, the evidence on the phone matters. Jump to the section on preserving evidence before you remove anything.
The ten-minute check in Settings
You do not need a computer for this part. Grab the phone, open Settings, and work down the list. Write down anything that looks unfamiliar; do not change anything yet unless you have decided it is safe to remove things today.
Menu names below are for recent Android on Pixel and Samsung. Xiaomi, OnePlus, Oppo and others put the same settings in slightly different places. If you cannot find one, use the search box at the top of Settings and type the words we give in bold.
1. The full app list, including system apps
Settings > Apps > See all apps (Pixel) or Settings > Apps (Samsung). Tap the three-dot menu or filter icon and choose Show system apps. Scroll the whole list slowly.
You are looking for apps with generic names, no icon or a plain Android icon, and no obvious purpose. Tap anything suspicious and note the package name shown at the bottom of its App info page (on Samsung, tap the app, then scroll to the bottom; on Pixel it is under "Advanced" or at the very bottom). Package names look like com.something.something. You will need them later for the scanner.
Stalkerware often disguises itself with names like "System Service", "Android System", "Update Service", "Sync Services", "Battery Optimizer" or "Device Manager". Real system apps exist with similar names, so do not panic over a name alone. The package name and the scanner result settle it.
2. Device admin apps
Search Settings for Device admin apps (Pixel: Settings > Security & privacy > More security & privacy > Device admin apps; Samsung: Settings > Security and privacy > Other security settings > Device admin apps).
Device admin is an old but still-used permission that lets an app resist uninstalling, lock the phone or wipe it. Find My Device and your work email app may legitimately be listed. Anything else you do not recognise is a red flag. Note it. Do not toggle it yet.
3. Accessibility: Downloaded apps
Settings > Accessibility. Look for a section called Downloaded apps or Installed apps (on Samsung: Settings > Accessibility > Installed apps). This is where third-party apps that have been granted accessibility service access are listed.
Accessibility services can read everything on the screen, including messages in any app, and can tap buttons on your behalf. That is why it is the single most abused permission in stalkerware. GuestSpy’s rule GS-R-021 ("Accessibility service can read screen content") exists for this reason. If an app you did not set up for a genuine accessibility need is turned on here, write it down.
4. Notification access
Search Settings for Notification access (Pixel: Settings > Notifications > Device & app notifications; Samsung: Settings > Notifications > Advanced settings > App notification access… names change often, so search). Apps listed here can read the content of every notification: incoming messages, two-factor codes, emails. Smartwatch companions and some launchers legitimately need this. Unknown entries do not.
5. Special app access
Settings > Apps > Special app access (Pixel) or Settings > Apps > three-dot menu > Special access (Samsung). Go through these in particular:
Display over other apps
Lets an app draw invisible overlays or fake lock screens.
Install unknown apps
Which apps are allowed to sideload. Stalkerware is almost always sideloaded through a browser or file manager, and the installer sometimes leaves this on.
Usage access
Lets an app see which apps you use and when.
Modify system settings
And Do not disturb access: less critical, but unknown entries are worth noting.
6. Battery: unrestricted apps
Settings > Battery > Battery usage, or search for Unrestricted. Apps set to "Unrestricted" are exempt from Android’s background limits. Stalkerware needs this to keep uploading. Legitimate examples are messaging apps and fitness trackers; a "System Service" you have never heard of is not legitimate.
7. Play Protect
Open the Play Store, tap your profile picture, then Play Protect. It should say "No harmful apps found" with scanning enabled. If it is off, that is a strong sign someone turned it off. Note it. Turning it back on and scanning is low-risk and does not usually alert anyone, but Play Protect does not catch every stalkerware family, so do not stop here.
8. Your Google account: devices and security activity
Settings > Google > Manage your Google Account > Security. Check:
Your devices
Every phone, tablet and computer signed into your account. Remove anything you do not recognise.
Recent security activity
New sign-ins, password changes, recovery info changes.
Recovery phone and recovery email
These must be yours. An added recovery address is a quiet backdoor into your whole account.
Third-party apps with account access
And App passwords: remove anything unknown.
Someone with your Google password does not need stalkerware at all. They can read your Gmail, see your Google Maps timeline and restore your backups onto their own device. Treat the account check as just as important as the phone check.
9. Find My Device sharing and location sharing
Open Google Maps > profile picture > Location sharing. If your location is shared with anyone, you will see them here. Also check Settings > Location > Location services > Google Location Sharing, and open the Find My Device app to make sure only your devices appear.
10. Digital Wellbeing and Family Link
Settings > Digital Wellbeing & parental controls. If the phone is supervised by a Family Link parent account, it says so here. Family Link is a legitimate parental tool, but it has been used to monitor adults. If you are an adult and your phone is supervised by someone else’s account, that is monitoring, whether or not it is "spyware" in the technical sense. The same applies to Samsung’s Kids mode and to any "Managed by your organisation" banner at the top of Settings on a phone that is not a work phone.
11. Work profile and Knox
Settings > Accounts, or Settings > Security & privacy. If there is a work profile (a separate set of apps with a briefcase badge) and you never set one up with an employer, someone has enrolled the phone in a management system. Managed phones can have apps installed silently. On Samsung, also look for Knox or "Secure Folder" entries you did not create.
12. Accounts on the phone
Settings > Passwords & accounts (Pixel) or Settings > Accounts and backup > Manage accounts (Samsung). Every account listed syncs data somewhere. An unknown Google, Samsung or other account is a problem.
Take a photo of each suspicious screen with another device, or write the package names on paper. If you later want to report this, those notes become your timeline. They also stop you forgetting which app was which once you start uninstalling.
The thorough check: pull the installed-app list and run it through GuestSpy
The Settings walk-through catches most things, but a well-built stalkerware app can hide from the app list on some phones, and its name tells you nothing about what it does. The reliable way to know what is really installed is to ask Android directly over a USB cable, then let the GuestSpy Web Scanner compare every package against its database of 600+ stalkerware package names, 470+ signing certificates and roughly 2,950 known sample hashes.
A web page cannot reach into your phone on its own. You pull the list; the scanner reads it. Nothing is uploaded: the check runs in your browser, and files you drop in never leave your computer.
You need: a computer (Windows, macOS or Linux), a USB cable, and the free Android platform tools from Google, which include a program called adb.
The GuestSpy Android app performs the same installed-apps check on the phone itself and can send the list to the Web Scanner. The adb route below is still the most complete, because adb can see packages that the app list hides. If the phone is the one being monitored and you do not have a second computer, consider borrowing one from a friend or using a library machine.
Step 1: Turn on USB debugging
Settings > About phone > tap Build number seven times. You will see "You are now a developer". Then go to Settings > System > Developer options (Pixel) or Settings > Developer options (Samsung) and turn on USB debugging.
Yes, this is the same setting we will tell you to turn off at the end. Turning it on temporarily is fine.
Step 2: Connect and confirm
Plug the phone into the computer. On the phone, tap Allow on the "Allow USB debugging?" prompt. On the computer, open a terminal (Command Prompt or PowerShell on Windows, Terminal on Mac/Linux), go to the folder where you unpacked platform-tools, and run:
adb devices
You should see your phone’s serial number followed by device. If it says unauthorized, look at the phone and accept the prompt.
Step 3: List third-party packages with their file paths
adb shell pm list packages -f -3
pm is Android’s package manager. -3 means third-party only (not preinstalled), and -f shows the file path of each APK. Each line looks like:
package:/data/app/~~abc123==/com.example.app-xyz/base.apk=com.example.app
The part after the last = is the package name. Copy the whole output and save it as a text file. This is the list you will drop into GuestSpy.
Step 4: Include uninstalled-but-lingering packages
adb shell pm list packages -u
The -u flag includes packages that have been uninstalled but still have data on the device, which can reveal something that was removed recently, perhaps by the person who installed it when they suspected you were catching on. Save this output too.
Step 5: Look at one package in detail
For any package you want to understand, run:
adb shell dumpsys package com.example.app
This prints a lot. The useful parts are requested permissions, install permissions and runtime permissions (what the app asked for and what it was granted), installerPackageName (which shows null or a browser or file manager for sideloaded apps, and com.android.vending for Play Store apps), and firstInstallTime, which tells you the exact date and time the app arrived. That timestamp alone can be the most important fact you learn today.
Step 6: Get the actual APK file
adb shell pm path com.example.app
This returns the path to the installed APK, for example package:/data/app/~~abc123==/com.example.app-xyz/base.apk. Then pull it to your computer:
adb pull /data/app/~~abc123==/com.example.app-xyz/base.apk suspicious.apk
You now have the exact file that is running on your phone, which is also the best possible evidence to keep.
Step 7: Drop everything into the GuestSpy Web Scanner
Open the Web Scanner, choose Installed-apps list check, and paste or drop the text output from steps 3 and 4. The scanner matches every package name against the database and shows a verdict next to each one: Clean, Low risk, Suspicious, Dangerous or Known stalkerware.
| Stalkerware | com.android.core.monitorHoverwatch · GS-STK-AND-7843 · sideloaded | GS-R-070 system-name impostor · GS-R-030 7 surveillance permissions |
| Stalkerware | com.systemserviceTheTruthSpy · GS-STK-AND-1405 | installer: null · 2 components disabled |
| Watchware | com.wondershare.famisafeFamiSafe · GS-WCH-AND-0487 | Play Store · visible icon |
| Suspicious | com.wifi.sync.service | GS-R-072 generic system name · sideloaded · installed 3 days ago |
| OK | com.whatsapp | no findings |
Reading the deep report
The point of GuestSpy is that it shows its work. A verdict without evidence is just someone else’s opinion. Here is how to read what you get back.
Sync Services v2.4.1
com.guest · APK · 4.2 MB · SHA-256 7f3a9c…e21bIdentity
- Package
- com.guest
- Label
- Sync Services
- SDK
- API 19 → API 22
- Launcher icon
- none
- Signer
- CN=Unknown, O=Unknown · RSA 2048
- Valid
- 2015-03-02 → 2042-07-19
Permissions by tier
- CREAD_SMS
- CREAD_CALL_LOG
- CACCESS_BACKGROUND_LOCATION
- CRECORD_AUDIO
- CBIND_ACCESSIBILITY_SERVICE
- CBIND_DEVICE_ADMIN
Network indicators
- guestspy.com known infrastructure
- media-sync-a.thetruthspy.com known infrastructure
- api.github.com
- 69.64.81.166 known C2 IP
ATT&CK techniques
Overview
The top of the report gives the verdict, the danger code, a severity score from 0 to 100 and the confidence. Confidence depends on how the match was made, from strongest to weakest:
- 1
Exact hash match
the file is byte-for-byte a known sample. - 2
Signing-certificate match
the app was signed with a certificate used by a known stalkerware vendor, even if the file itself is new. - 3
Package-name match
the package name is in the database. - 4
C2-domain match
the app contains the address of a known command-and-control server. - 5
Heuristic
no database match, but the behaviour fits.
A danger code like GS-STK-AND-1405 reads as: GuestSpy, class STK (stalkerware), platform AND (Android), family number 1405. That particular code is the TheTruthSpy family, which includes several rebranded apps sold under different names, among them old GuestSpy monitoring builds using the package com.guest. If you see this code, the report will say so in plain English, and we do not soften it because of the name.
Identity
Package name, version, minimum and target SDK, the signer certificate’s SHA-1 and SHA-256 fingerprints and its issuer. Stalkerware certificates are often self-signed with nonsense or copied issuer names. A target SDK far below the current Android version is a hint that the app is avoiding newer permission restrictions.
Permissions by risk tier
Every requested permission, sorted into tiers. On its own, "read SMS" is not proof of anything; your messaging app needs it. The report looks at combinations. Rule GS-R-030 ("Reads SMS + call log + location together") fires when an app wants all three, which almost no honest app does.
Components
This is where hidden behaviour shows up. The report lists services, broadcast receivers, accessibility services, device-admin receivers, notification listeners, boot receivers and whether the launcher icon is hidden. GS-R-014 ("Hides launcher icon") is a near-certain stalkerware tell, because legitimate apps want you to find them. A boot receiver means the app restarts itself after every reboot.
Network indicators
Domains, IP addresses and URLs found inside the app, with any matches against the 900+ known command-and-control domains highlighted. This is often where you learn which web dashboard your data was being sent to.
Code
Number of dex files, native libraries and whether a packer or obfuscator was used. Packing is not proof of malice, but stalkerware uses it heavily to dodge antivirus signatures.
ATT&CK mapping
Each finding is mapped to a MITRE ATT&CK for Mobile technique, such as T1430 Location Tracking, T1429 Audio Capture, T1636.004 SMS Messages, T1417.001 Keylogging, T1513 Screen Capture, T1517 Access Notifications, T1628.001 Suppress Application Icon and T1626.001 Device Administrator Permissions. If you take the report to a lawyer, the police or an IT department, this mapping gives them a vocabulary they already understand.
Removal plan
A step list specific to what was found: for instance, "revoke device admin first" if a device-admin receiver is present, or "revoke accessibility" if an accessibility service is declared. The generic version of that plan is the next section of this guide.
Community verdicts
What other users who scanned the same package or hash reported, moderated before publishing. If nobody has reported it yet, the section is empty; we never pre-fill it.
Known stalkerware
Means a database match on hash, certificate, package name or C2 domain. Dangerous means heuristics found a stalkerware-like combination of behaviours with high severity. Suspicious means some behaviours are worrying but the picture is incomplete. Low risk means a minor concern, usually a permission that is unusual for the app’s apparent purpose. Clean means nothing matched and nothing fired. Clean is not a guarantee; it is the absence of evidence.
Removing it
Here is the order that works. The order matters, because some of these steps protect the app from the later ones.
- 1Evidence savedReport GSR-M3K2 exported · 12 screenshots
- 2Device admin removedSettings › Security › Device admin apps
- 3Revoke accessibility accessSettings › Accessibility › Downloaded apps › Sync Services › OffOpen this setting →
- 4Revoke notification access
- 5Force stop and uninstall
- 6Re-scan and lock accounts
Removing the app is the moment the installer finds out. If you have not made a safety plan, go back to the top of this guide. If you want evidence preserved, read "When to involve the police" below first and pull the APK and the dumpsys output before you delete anything.
Step 1: Revoke device admin
If the app appears under Device admin apps, you cannot uninstall it until you turn that off. Go to Settings > Security & privacy > More security & privacy > Device admin apps (Pixel) or Settings > Security and privacy > Other security settings > Device admin apps (Samsung), tap the app and choose Deactivate or turn the toggle off. Some stalkerware shows a scary warning here, or even tries to lock the screen. Ignore the warning and proceed.
Step 2: Revoke accessibility and notification access
Settings > Accessibility > Downloaded apps, tap the app, turn it off. Then Notification access, turn it off. Then Special app access > Display over other apps, turn it off. This cuts the app off from your screen and messages immediately, even before it is uninstalled.
Step 3: Force stop
Settings > Apps > the app > Force stop. This ends its running services so it cannot interfere with the next step.
Step 4: Uninstall
On the same App info page, tap Uninstall. If the button is greyed out, device admin is probably still active; go back to step 1. If the app is listed as a system app and the button says Disable instead, it was either installed into the system partition (rare, needs a rooted phone) or installed by a management profile; see the work-profile step below.
Step 5: For stubborn apps, use adb
If the app refuses to uninstall or reappears, connect the phone to the computer with USB debugging on and run:
adb shell pm uninstall -k --user 0 com.example.app
--user 0 targets the main user profile, which lets you remove apps that the normal Uninstall button will not. -k keeps the app’s data directory, which is useful if you want to preserve evidence; leave it out to remove the data too. If the command says Success, the app is gone for that user. If it says DELETE_FAILED_INTERNAL_ERROR or similar, the app is on the system partition and a factory reset is the realistic next step.
Step 6: Safe mode
If the phone misbehaves while you work (screen locks itself, settings close, the app keeps re-opening), boot into Safe mode. Hold the power button, then press and hold the Power off option on screen until you see "Reboot to safe mode" and confirm. In Safe mode only preinstalled apps run, so stalkerware cannot fight back. Uninstall it from Settings > Apps as normal, then restart.
Step 7: Remove unknown accounts
Settings > Passwords & accounts (or Accounts and backup > Manage accounts), tap each account you do not recognise and remove it. Some stalkerware syncs through a Google account the installer added.
Step 8: Check work profile, Knox and Family Link
If a work profile exists that you did not create, remove it: Settings > Accounts > Work profile > Remove work profile (Pixel) or Settings > Accounts and backup > Manage accounts > Work profile (Samsung). If the phone shows "This device is managed by your organisation" and you have no organisation, a management app is installed; you may need a factory reset to remove it. For Family Link supervision on an adult’s phone, Settings > Digital Wellbeing & parental controls > Parental controls > Stop supervision; if that is locked, the reset is again the route.
Step 9: Verify
Run adb shell pm list packages -f -3 again and drop the output into the scanner. The package should be gone. Reboot, and check once more, because a boot receiver in a leftover component can reinstall some families.
Step 10: Factory reset, if you need certainty
A factory reset wipes every app and setting and returns the phone to how it was out of the box. It removes any stalkerware installed as a normal app, and anything installed via management profiles, Family Link, or sideloading. For most people it is the cleanest option, and if you cannot identify exactly what is on the phone, it is the safest.
Settings > System > Reset options > Erase all data (factory reset) on Pixel; Settings > General management > Reset > Factory data reset on Samsung.
What a factory reset does not fix:
- Restoring from backup. If you restore your Google backup afterwards, Android may reinstall the apps that were on the phone, including the stalkerware, especially if it was installed through the Play Store under a developer-style listing. Set the phone up fresh, sign in, and reinstall apps by hand. Copy photos and documents across, not "everything".
- Your SIM. A reset does not touch the SIM card. If someone has access to your mobile account (SIM swap, call forwarding set up at the carrier, an added authorised user), they still have it. Call your carrier, set an account PIN, and check for call-forwarding or "divert" settings with
*#21#dialled as a call, which on most networks shows forwarding status. - Compromised cloud accounts. If the person knows your Google password, a clean phone changes nothing; they can still read your mail, see your location history and restore your backup to their own phone. The hardening checklist below is not optional.
- A rooted phone or a modified system partition. Rare, but if the phone was rooted and the spyware was baked into the system image, a factory reset may leave it in place. If GuestSpy shows a system-partition install path (
/system/or/product/rather than/data/app/) for a stalkerware package, treat the phone as untrustworthy. Reflashing the official firmware, or replacing the phone, is the honest advice. - Other devices. Your tablet, laptop, smartwatch and old phones signed into the same accounts need the same checks.
When to involve the police or a forensic examiner
Installing monitoring software on another adult’s phone without consent is illegal in most countries. Whether you report it is your decision, and a domestic-violence advocate can help you weigh it. If you think you might, preserve evidence before you remove anything, because the evidence disappears when the app does.
What to keep:
The APK file pulled with adb pull, with its SHA-256 hash from the GuestSpy report.
The full text output of adb shell pm list packages -f -3, pm list packages -u and dumpsys package <pkg>, which contains the firstInstallTime timestamp.
Screenshots or photos of the Device admin, Accessibility and Notification access screens showing the app.
The GuestSpy deep report, exported as PDF, which includes the danger code, evidence rules and ATT&CK mapping.
Your own notes
When the signs started, who had access to the phone, what they knew that they should not have.
Any messages where the person revealed knowledge they could only have from monitoring.
Do not try to log into the stalkerware vendor’s dashboard yourself, and do not confront the person with the evidence before you have a plan. A forensic examiner, which some police forces and specialist charities can arrange, can make a full image of the phone that is admissible as evidence; a factory reset makes that impossible. If evidence matters more than speed, keep the phone powered on, in airplane mode, and untouched until you have spoken to someone.
Run a free scan right now
Drop an APK, a file, your installed-apps list or an iPhone configuration profile into the GuestSpy Web Scanner. Everything is analysed inside your browser. Nothing is uploaded.
Frequently asked questions
Can a website really scan my phone?
No, and GuestSpy does not claim to. The Web Scanner analyses what you give it: an app list you exported with adb or the GuestSpy app, or an APK file you pulled off the phone. Everything is processed inside your browser and nothing is uploaded. The GuestSpy Android app can look at the apps installed on the phone it is running on, which a website cannot.
Will the person who installed it know I removed it?
Very possibly. Most stalkerware dashboards show when the target device last checked in, and some send an alert when the app is uninstalled or loses a permission. That is why the safety plan comes first in this guide. If you are not in danger, this does not matter much. If you are, timing matters a great deal.
Is a factory reset enough on its own?
For apps installed the normal way, yes, as long as you do not restore from a backup that reinstalls them. It does not fix a compromised Google account, a SIM or carrier-account takeover, or the rare case of spyware baked into a rooted phone’s system partition. Treat the reset as one step, not the whole answer.
The app is called "System Service" and has an Android icon. Is it really a system app?
Maybe, maybe not. Stalkerware deliberately copies these names. The way to tell is the package name and the install path. Real system apps live under /system/ or /product/ and have package names from the manufacturer or Google. A "System Service" under /data/app/ with a package like com.guest, com.android.sync.service or a random string is not a system app. Run the package through the scanner and let the certificate and hash decide.
Why does GuestSpy flag old GuestSpy builds?
Because they are stalkerware. The GuestSpy name was once used for a phone-monitoring app in the TheTruthSpy family, package com.guest, now listed as GS-STK-AND-1405. The product has been rebuilt as protection software, and the scanner treats those old builds exactly like any other entry in the database. We would rather you know that than find out on your own.
Does Play Protect or my antivirus already catch this?
Sometimes. Play Protect and mainstream antivirus apps detect many well-known families, but stalkerware vendors repackage their apps constantly to stay ahead, and some antivirus products have historically been reluctant to flag "monitoring" apps at all. GuestSpy uses the Echap indicator set of 176 families plus heuristics that look at behaviour rather than names, which catches renamed builds. Use both; neither is perfect.
I found nothing but I still feel watched. What now?
Check the accounts, not just the phone. A known Google password, a linked WhatsApp session, a shared iCloud or Samsung account, a family-locator app you agreed to years ago, a tracker in the car or in a bag: all of these give someone your information without any spyware on the phone. Go through the hardening checklist in full, and look at our safety page for other ways monitoring happens.
Can I just disable the app instead of uninstalling it?
Disabling stops it running, and in Safe mode or for a system-partition install it may be the only option. But a disabled app can be re-enabled by anyone with the unlocked phone in two taps. Uninstall when you can; use adb shell pm uninstall -k --user 0 if the button is greyed out; and factory reset if neither works.