Whatever works (and for that matter works long term, rather than a short term response of panicked politicians reacting quickly). Arguably both have worked to an extent in living memory.
How about not having a sense of entitlement and instead, following the law and accepted norms and standards when you protest?
I think this is wrong and you could easily bring in hundreds of counterexamples of "people breaking accepted standards" in an effective manner. Good example is the sit-in movement, because the photos of white southerners acting like a bunch of barbarians to normal black people at a diner may have seemed normal to someone inoculated in jim crow ideology, most everybody outside of their inane society entirely sympathised with the black people.
In general, it is best to at least muse on how the "general public" will take things. It isn't the end-all, and there are plenty of protests (e.g. farmers spreading crap everywhere, rail strikes) that piss everybody off but can work if you don't overplay your hand.