How does batch normalisation actually work? I actually went through the Keras' batch normalization tutorial and the description there puzzled me more.
Here are some facts about batch normalization that I read recently and want a deep explanation on it.

If you froze all layers of neural networks to their random initialized weights, except for batch normalization layers, you can still get 83% accuracy on CIFAR10.

When setting the trainable layer of batch normalization to false, it will run in inference mode and will not update its mean and variance statistics.
A batch normalisation layer is like a standard FC layer but instead of learning weights and bias', you learn means and variances and scale the whole layer by said means and variances.
Fact 1:
Because it behaves just like a normal layer, and can learn, with the right structure it will learn to get a high enough accuracy.
Fact 2
Disabling learning on a batch norm layer is just like disabling learning on any other layer. It will not updated any of its parameters, and in this case the parameters are the means and variances, and so these will not be updated.