Android Code Snippet detect emulator/VM

getRadioVersion() always returns empty on VM,
and returns version number on real android device.
Sub Process_Globals
    Private Native As JavaObject
End Sub

Sub Activity_Create(FirstTime As Boolean)
    If FirstTime Then Native.InitializeContext

    Dim IsVM As Boolean = Native.RunMethod("IsVM", Null)
    If IsVM Then
        MsgboxAsync("You are using Virtual Environment","IsVM ?")
        MsgboxAsync("You are using Real Environment","IsVM ?")
    End If
End Sub

public Boolean IsVM()
    return android.os.Build.getRadioVersion().trim().length() == 0;
#End If
Not sure, why this happens, but I know it just works. 😃
I don't have official explanation for this.



2. It will return false for tablets without radio.
Nice pick ! Just Tablets or Mobile as well ?

I read code. Its nice but is signature based.
and will fails to detect if list doesn't matched.

I was hoping to find an universal way to detect every emulator, even after 20 years.

In windows, I just check no. of ports. And vm return 0.
I think it may be possible in android too.
From my short lifespan, I see Every android mobile, always has charging port, radio plug and other ports.

I may be wrong as well.
Thanks a lot Sir for precious time.