Parameter in qgc is different from parameter set in rcS in SITL

This is a common question in v1.8.0 v1.9.0 and v.1.11.0. I often change EKF2_AID_MASK in SITL, but every time I change in rcS, the parameter in qgc is still unchanged. In fact, the parameter is unchanged in SITL.
For example, before changing, the EKF2_AID_MASK = 1 in rcS and I change it to 24.

# GPS used
#param set EKF2_AID_MASK 1
# Vision used and GPS denied
param set EKF2_AID_MASK 24

However, after I start SITL, GPS is still used.

INFO  [ecl/EKF] 5188000: reset position to GPS
INFO  [ecl/EKF] 5188000: reset velocity to GPS
INFO  [ecl/EKF] 5188000: commencing GPS fusion

And in qgc, image
The method to solve this is to set the parameter in qgc and then reboot the SITL. After that, every time I start SITL, the EKF2_AID_MASK is 24.
For single UAVs this is ok, but for multiple UAVs, that’s quite complicated.
And now I met a trouble, [ERROR] [1589815147.619588996, 10.380000000]: FCU: system power unavailable happens in multi-UAV simulation. Even though I set CBRK_SUPPLY_CHK 894281 as rcS in px4 master branch does, when I start simulation, CBRK_SUPPLY_CHK is still 0 for each UAV. And I must set parameter for each UAV one by one. I don’t know why the parameter changed in rcS cannot take effect at once.

In v1.8.0, it’s not rcS but in Firmware/posix-configs/SITL/init/ekf2, however the problem is the same.

rm ~/.ros/eeprom/parameters* solved this problem.