First, you must be clear that Google's Android code and Linux kernel code are separate. Android itself is licensed under Apache License 2.0, which is permissive, and in Wikipedia's words:
The Apache License is permissive in that it does not require a derivative work of the software, or modifications to the original, to be distributed using the same license.
As such, none of Android modification by the vendors are normally made available.
Second, in case of Linux kernel, being licensed under GPLv2, the code is released to the public, either buried somewhere within the device (less likely) or available to download on some obscure page in the vendor's website dedicated to open-source codes in their products.
However, there is a major caveat to the Linux kernel code made publicly available—proprietary drivers and kernel modules of similar functionality. Linux kernel can load binary blobs distributed under proprietary license, and the source code of such blobs necessary to run your device is naturally not distributed. Bottom line being, even if you do manage to get your hands on the kernel source specific to your device, you won't necessarily be able to use it to compile your own functioning Linux-based OS.
Permissive, in context
What exactly do we mean by a permissive license? From your comments, I think you've taken it to mean the ability to run other permissively or proprietarily licensed software. But that is wrong.
Permissive in this context means, how permissible it is to let you do as you want with the source code.
GPL is not permissive in the sense that you're legally bound to publicize any modification you make to a GPL-licensed code. It does not permit you take everybody's contribution, make changes to it (regardless of making it better or worse) and hide it away. If you're going to distribute the binary, you've to distribute the source code as well. Since it does not permit you to make private changes it is therefore not permissive.
Apache License and the BSD licenses are examples of permissive licenses. Opposite of strictly non-permissive GPL, it lets you make any modification to the codes licensed under them and keep it to yourself, in other words, it is permissive. That is to say, you can take the Android code, even if you change it enough to make it unrecognizable, you're free to keep it yourself. And that is exactly what Android device vendors does.