Mastodon IzzyOnDroid


Say thanks!

Privacy Links
↓ Your product here? ↓
Das Inoffizielle Android-HandbuchAndroid kennenlernen, Tipps & TricksDas Inoffizielle Android-Handbuch
Android kennenlernen, Tipps & Tricks
Buy at Amazon for EUR 2,00
Das Inoffizielle Android SystemhandbuchTiefer ins System einsteigenDas Inoffizielle Android Systemhandbuch
Tiefer ins System einsteigen
Buy at Amazon for EUR 3,00
Die besten Android-AppsDen Androiden austattenDie besten Android-Apps
Den Androiden austatten
Buy at Amazon for EUR 3,00
 
dehelp

How reliable are Malware Scans for Android Apps?

VirusTotal Scan Result
VirusTotal scan result with a single hit

Many people and services trust VirusTotal to scan their APKs. This service integrates scanners from over 60 security vendors–which, among other things, enables the detection of so-called “false positives”: If one scanner flags an issue but all the others do not, this is usually an indication of a false alarm. VirusTotal seems to agree, going by the small green checkmark above the result in the screenshot.

Of course, even when these engines display green checkmarks, it simply means that nothing was detected. They are no guarantee that a file is harmless.

Usually, this works pretty well. But what if several scanners suddenly flag an APK as malicious (malicious/PUA1/Trojan)? Is there any truth to that?

At IzzyOnDroid, we’ve noticed that this happens particularly often with SMS apps–especially when they also have the INTERNET permission (e.g., for SMS forwarding). These are then quickly flagged as “banking Trojans,” as they could intercept banking-related SMS messages2. Since the apps are open source3, it is at least possible to determine whether the source code contains any indications of such behavior. This evidence would be even stronger with reproducible builds, since the specific APK could then be unambiguously linked to the verified source code4.

An app can only be clean when listed in the Google Play Store

In one case5, we therefore decided to get to the bottom of the matter. The app’s developer contacted all the affected vendors, provided them with detailed information, and asked them to correct their scanners accordingly. While some confirmed the corrections shortly thereafter, at least one vendor stubbornly refused–citing an interesting reason:

as per our internal protocol, we are unable to proceed with the whitelisting process unless the application is available on the Google Play Store.

And this is despite the fact that the evidence tells a different story: While I am not aware of any reliably documented case involving F-Droid or IzzyOnDroid that would be comparable to the recurring malware discoveries in the Play Store6, one repeatedly comes across articles about the Play Store reporting hundreds of apps had to be removed because they had infected millions of devices7. This makes such a statement particularly surprising.

Is there any truth to that? Let’s do a POC

My curiosity kicked in, now I wanted to know: What makes an APK file like this malware? So I decided to test this out with the app in question:

So is it just the AndroidManifest.xml that’s “evil”? Let’s put it to the test: Create a ZIP file that contains only the AndroidManifest.xml: 2 hits–including the vendor who insisted on a Google Play listing. Incidentally, this file contains only the app’s metadata (such as the app’s name, version, required permissions, and similar information); on its own, it cannot cause any harm.

It seems, then, that some scanners react strongly (or almost exclusively) to metadata and permissions, and less (or not at all) to actual malicious code.

After we drew some attention to the issue with a Fediverse post9 that received numerous boosts and likes, everything suddenly turned green: not a single hit anymore. The fact that the app is still not listed in the Google Play Store (and probably never will be) suddenly didn’t matter anymore.

So it’s all rubbish – or what?

One shouldn’t draw too many conclusions from a single example. We tried to replicate the POC10 above for another SMS app: The differences were less dramatic in that case. Nevertheless, there are several lessons to be learned from this case:

To sum it up briefly, then: Scanners provide clues, but not a definitive assessment.

appssecurity


  1. PUA: Potentiell Unwanted Application ↩︎

  2. after all, you can use a knife for other things than cutting bread ↩︎

  3. F/LOSS: Free/Libre Open Source Software ↩︎

  4. both F-Droid and IzzyOnDroid support reproducible builds. On IzzyOnDroid, more than two-thirds of the apps are currently covered by such builds, while on F-Droid, the figure is about one-third. ↩︎

  5. DresSecureComms POC ↩︎

  6. a study that is somewhat older but relevant in this context: Understanding the Security Management of Global Third-Party Android Marketplaces. Google ranks only eighth here–F-Droid is in first place (IzzyOnDroid was still “too new” to be included at the time):
     ↩︎

  7. more recent examples: Hundreds of Malicious Google Play-Hosted Apps Bypassed Android 13 Security With Ease (3/2025), Hundreds of Malware-Laden Apps Downloaded 42 Million Times From Google Play (11/2025), GhostAd: Hidden Google Play Adware Drains Devices and Disrupts Millions of Users (11/2025), NoVoice on Google Play with 22 Exploits Attacks Millions of Android Users (4/2026), Android Malware With Almost 500M Downloads Resides in Google Play (7/2026) ↩︎

  8. all metadata that could be used to identify a ZIP file as an APK ↩︎

  9. Toot: SnakeOil ↩︎

  10. anyone who points out that our modified files were no longer valid APKs is, of course, absolutely right–but the same applies to the last ZIP file, which contained only the AndroidManifest.xml↩︎

  11. the same could be said about the so-called “Google Safe Browsing”–but perhaps we’ll cover that in a future article. ↩︎

2026-08-06