Most indie developers who get this rejection aren't shipping malware. But certain coding patterns, third-party SDKs, or obfuscation techniques can trigger Play Protect's automated detection. Here's how to investigate and respond.
What Apple said
“Your app has been flagged by Google Play Protect for behavior that may be harmful to users or their devices. This includes patterns associated with malware, spyware, or unwanted software. Your app has been rejected and/or removed from Google Play until these issues are resolved and reviewed.”
Google Play Protect uses automated analysis to identify apps that exhibit behaviors similar to known malware — excessive permissions, obfuscated code, dynamic code loading, suspicious network traffic patterns, or attempting to access data unrelated to the app's stated purpose. You don't have to be a bad actor to trigger this; certain legitimate development patterns set off the same signals.
While you're at it — Apple also requires these pages for every app.
Fix this rejection, then make sure you're covered on the compliance side too. Apple requires every app to link to a hosted Privacy Policy, Terms of Service, Support page, and Data Deletion page. No link means another rejection — just for a different reason.