The main thing is that the phone is on a Qualcomm processor, and support for earlier versions of android and custom firmware may appear in future updates
With custom firmware, everything is simple: if the DIAG_CHAR module (debugging driver) is saved in the kernel, through which the plug-in receives access to raw-data GSM and SS7, then everything will work. But in custom kernels this module is often missing.
As for the earlier versions of android, here is the official position:
To support Android 5 (Lollipop) an app with native executable like SnoopSnitch necessarily breaks support for Android versions below 4.1. The reason is that on Lollipop position independent executables (PIEs) are mandatory while they are unsupported (and crash) on Android version older than 4.1.
But, no one bothers to fork the code and rewrite it with support for the naive api of earlier versions. True, I'm not sure how many old firmware there are diag-modules. You can check simply if there is a path / dev / diag - then the module is present