Define theme information other than through style.css

The presence of style.css with a name is a hard requirement for a valid theme.

From quick look through the code it’s unlikely you can easily work around it. However it seems you can manipulate rest of the data. There is dynamic extra_{$context}_headers hook in get_file_data(), so filtering extra_theme_headers will probably let you splice data in from different source.