## 5 Evaluation Approach
### Analysis of Feature Models and Diagnosis of Configurations
Regarding the invalid configurations of the _Android_ model, the first configuration has the feature _LOCATION_MODE_OFF_ selected, when it requires the selection of the _LOCATION_ feature. Therefore, the diagnosis consists of the selection of _LOCATION_ feature and deselection of _LOCATION_MODE_OFF_. Regarding the second invalid configuration, the _INPUT_METHOD_ feature is selected but this feature requires that any input method will be chosen. Therefore, the diagnosis proposes the selection of any input method (i.e., _DEFAULT_INPUT_METHOD_, _INPUT_METHOD_SELECTOR_VISIBILITY_, _SELECTED_INPUT_METHOD_SUBTYPE_, _ENABLELED_INPUT_METHODS_). For the third invalid configuration, parameter _ACCESSIBILITY_SPEAK_PASSWORD_ has been chosen. This configuration is invalid because, as indicated in the documentation of the Android security options (API 29), the dictation of passwords has become controlled by individual accessibility services and the apps ignore this parameter. Thus, in the configuration diagnosis there are two options to correct it: deselect _ACCESSIBILITY_SPEAK_PASSWORD_ and choose some of the available accessibility options or deselect _ACCESSIBILITY_ to not select accessibility parameters. In the case of the fourth invalid configuration, parameter _TTS_DEFAULT_ULT_COUNTRY_ has been chosen. This configuration is invalid because, as indicated in the documentation of the Android security options (API 29), the apps no longer use this parameter to know the country used by default by the text-voice converter, but consult the classes provided by the _TTS_ framework. This way, in the configuration diagnosis there are two options to correct it: deselect _TTS_DEFAULT_COUNTRY_ and choose some of the available _TTS_ options or deselect TTS so as not to select parameters related to the text-voice converter. \begin{table}
\begin{tabular}{c l l l} \hline \hline \# & **Configuration** & **Result** & **Diagnosis** \\ \hline \multirow{4}{*}{1} & Linux, SECURITY, SECURITY\_NETWORK, & \multirow{4}{*}{**Valid**} & \multirow{4}{*}{-} \\  & SECURITY\_NETWORK\_XRFM, & & \\  & FORTRIFY\_SOURCE, & & \\  & STATIC\_USERMODDEHELPER, & & \\  & STATIC\_USERMODDEHELPER\_PATH & & \\ \hline \multirow{4}{*}{2} & Linux, SECURITY, SECURITY\_NETWORK, & \multirow{4}{*}{**Valid**} & \multirow{4}{*}{-} \\  & SECURITY\_NETWORK\_XRFM, & & \\  & FORTRIFY\_SOURCE, & & \\  & HARDENED\_USERCOPY\_ALLOCATOR, & & \\  & HARDENED\_USERCOPY\_PAGESPAN, & & \\  & HARDENED\_USERCOPY\_FALLBACK & & \\ \hline \multirow{4}{*}{3} & Linux, SECURITY, & \multirow{4}{*}{**No valid**} & \multirow{4}{*}{**Select** SECURITY\_NETWORK**} **Deselect**: \\  & SECURITY\_NETWORK\_XRFM, & & \\  & FORTRIFY\_SOURCE, & & \\  & STATIC\_USERMODDEHELPER, & & \\  & STAIC\_USERMODDEHELPER, & & \\ \hline \multirow{4}{*}{4} & Linux, SECURITY\_NETWORK, & \multirow{4}{*}{**No valid**} & \multirow{4}{*}{**Select** SECURITY\_NETWORK**} **Deselect**: \\  & HARDENED\_USERCOPY\_ALLBACK, & & \\  & HARDENED\_USERCOPY\_PAGESPAN & & \\ \hline \multirow{4}{*}{5} & Linux, SECURITY\_DMESG\_RESTRICT, & \multirow{4}{*}{**No valid**} & \multirow{4}{*}{**Select**: **STATIC\_USERMODDEHELPER**} **Deselect**: \\  & INTEL\_TXT, LSM, & & \\  & STATIC\_USERMODDEHELPER\_PATH & & \\ \hline \multirow{4}{*}{6} & Linux, SECURITY\_PATH, SECURITYS, & \multirow{4}{*}{**No valid**} & \multirow{4}{*}{**Select**: **SECURITY\_PATH} \\  & INTEL\_TXT, FORTRIFY\_SOURCE & & \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Diagnosis of _Linux_ model configurations.