First of all,
We can try placing a white circle in R5C1, but using the Edge Connection rule to try and connect it from the bottom right white circles either clockwise or anti-clockwise, we will run into 2 x 2 white circles somwehere. Therefore, R5C1 must be a black circle. Then, we try to place a white circle in R1C9, but that results in 2 x 2 white circles as well. Therefore, R1C9 is a black circle as well. Now, we have two black circles on the edges, we can use Edge Connection to connect them. This gets us to:

From here, we can simply use the Opposite Pairs rule and avoid making any 2 x 2 black or white circles. This leads to a series of chain deductions resulting in:

Now, we turn our attention to the R10C3 cell. If that cell was a white circle, then Edge Connection rule will either create a 2 x 2 white square or a solo black circle in R9C4. Therefore, that cell must be a black circle and using Edge Connection, we get

Then, again applying opposite pair rule and avoiding 2 x 2 squares, we can use chain deductions to get to:

Now, the mass of black circles in the middle is trapped and it needs a way out. So, using connectivity rules, we get to:

Note that R4C10 cannot be a black circle, as it will then need to extend upwards and make a 2 x 2 black square. Therefore, that must be white circle and we then use Edge Connection to get:

Now, trying to place a white circle in R10C5 will lead to a contradiction eventually.
Therefore, that cell must be a black circle and using Opposite Pair rule, we get

Now, trying to place a white circle in R5C8 eventually led to a contradiction as shown here. We cannot place either a white circle or black circle in R9C7.
So, R5C8 must be a black circle instead. Carefully using Opposite Pair rule and avoiding 2 x 2 squares eventually leads to the solution:
