The phone decides for each settings-section (e.g. telephony, identities, ..) whether it replaces the existing settings-section or if it merges the provided settings with the existing ones.

When patch is set to true then the settings-section is merged. When nothing is declared, patchDefault is set to true.

Usually merging means to replace the setting-subsections with the ones provided:

            <active>true</active><!-- set /telephony/callWaiting/active to true -->
            <!--tone>true</tone--> <!-- dont touch /telephony/callWaiting/tone -->
                <active>false</active><!-- set /telephony/callForwarding/unconditional/active to false -->
                <!-- dont touch target or timeout -->
            <!-- dont touch other callForwarding-subs like busy or noResponse -->
        <!-- dont touch any other telephony-settings -->

In the above example the values to be replaced were decided by the xpath, e.g. /telephony/callWaiting/active. There are multiple settings that come in lists where each element has the same xpath, only a different index. E.g. /keys/phoneXtensions/key. In these cases the merge-mechnism watches for a special attribute that is unique to such an element. These Elements replace their existing counterparts in entirety.

<keys version="1.8.8">
        <key icon="" keyNumber="1" info="" label="">
            <!--replace the key with keyNumber 1 with whatever is provided here-->
        <key icon="" keyNumber="2" info="" label="">
            <!--replace the key with keyNumber 2 with whatever is provided here-->
        <!--don touch any other phoneXtensions-keys-->

This is the current list of these special marking attributes:

Identitiy-elements do not have a special marker-attribute

Identities get merged the standard way. E.g.: to just change the username of the third identity, provision this:

    <identity />
    <identity />
        <!-- change the 3rd username, nothing else: -->