Their modified kernel with API calls is GPL while they keep their trade secrets... Am I correct?
But it seems the company hasn't been doing that, so even if they make the change now, their old code is still in violation of the GPL, and anyone they distributed it to has the right to request it.
All binary blobs in the Linux kernel aren't automatically illegal according to the GPL, right?
Binary blob kernel modules, in fact, have restricted access to the kernel frameworks (cannot access/use GPL symbols).
Google doesn't ship any proprietary kernel code as part of Android. It's all GPL and available to the public at large.
Some Android kernel parts are maintained separately from the kernel.org mainline tree (i.e. they maintain a fork) but that's not a legal issue (and they're getting better at it anyway).