Hard-surface modeling of phone
Not sure what you mean by "hard surface", but have some experience with boolean. So, you are trying to create pits by intersecting the cylinders with the phone bottom (IE: The cylinders are one mesh separate from the phone mesh and you are not using an array modifier)?

I notice that there are ALOT of modifiers on the phone, one of these may be causing the faliure.

Well, here's what I think you should try:

1, cancel the boolean modifier and join the two meshes (object mode, select cylinders, then phone, press Ctrl+J or find join in object menu).
2, enter edit mode and select the cylinders.
3, intersect (knife).
4, select all and merge by distance (at the default small distance).
5, If I remember right, select and delete the top half of the cylinder.
6, select and delete (only faces) the circles covering the holes.

Let me know if this works!