The OSGi specification states that org.osgi.framework.os.name is a configuration property. If it is not set then the framework should provide an appropriate value.
However, the Felix code always sets this property itself, regardless if there is already a value set. This makes it impossible to override.
I've created a patch on Github https://github.com/apache/felix/pull/145