In many BMWs an anti-squeal shim is fitted between the piston and pad, is this is missing?. Another solution is to chamfer the leading and trailing edges of the friction material - about 2-3mm, also try applying some Copperslip - copper/grease anti-seize compound - to the rear of the pad where the piston bears on it - careful - not too much. Any or all of these should help. DaveE.