Ionic cordova platform - Changes version number

When I run the commands ionic cordova platform add|update ios|android the versions that it trying to install/update always changes compared to whats defined in my package.json or config.xml.

As an example I run npm install cordova-android@^6.4.0 --save. My package is updated and contains the entry "cordova-android": "^6.4.0".

When I run ionic cordova platform add android;

cordova platform add android
Using cordova-fetch for cordova-android@^6.3.0

My config.xml then gets updated as <engine name="android" spec="~6.4.0" />.

The version number changes, as does the version segment (~/^).

Is there anyway to keep greater control of these versions without having ionic or cordova adjust them?