Software Product Lines (SPLs) are a mechanism for large-scale reuse where families of related software systems are represented in terms of commonalities and variabilities, e.g., using Feature Models (FMs). While FMs define all possible configurations of an SPL, when considering dynamic SPLs and environmental conditions, not every possible configuration may be valid in all possible contexts. A change in the environment may, therefore, require the reconfiguration of the SPL. With common modeling methodologies, it is not possible to capture the correlation of configuration options, contextual influences, user customizations, and evolution. In this paper, we remedy this problem by first defining a novel framework that allows modeling customizable evolving context-aware SPLs. We then provide a reconfiguration engine that computes how the current configuration needs to be reconfigured when the context is altered, the user preferences changed or the SPL artifacts are evolved and the configuration is adapted to reflect the evolved artifacts.