Faits: A. Le 26 novembre 2010, peu après 18h, X._ a participé, avec six à neuf comparses armés, à l'attaque d'un bureau de change à Chêne-Bourg. Après avoir neutralisé l'agent de sécurité et fait sauter la vitrine à l'explosif, X._ est entré dans le bureau avec une hache afin de prendre l'argent dans les caisses. Plusieurs policiers, dont A._ et B._, alertés par le bruit de l'explosion, se sont rendus sur les lieux et ont essuyé des tirs de fusil d'assaut de la part des complices qui faisaient le guet. Ceux-ci ayant pris la fuite, X._ a été interpellé alors qu'il sortait du bureau avec un sac. Ne réagissant pas aux sommations, il s'est enfui en courant, puis s'est emparé d'un véhicule en ayant fait sortir la passagère qui s'y trouvait. Lors du démarrage, il heurta une passante et roula à deux reprises sur ses jambes. Durant ces manoeuvres, les deux agents, arrivés à proximité ouvrirent le feu, respectivement à huit et deux reprises, le blessant quatre fois aux bras. Après avoir heurté un véhicule et tenté d'en voler un autre, il fut arrêté alors qu'il s'enfuyait à pied. Il a été inculpé de brigandage aggravé, de mise en danger de la vie d'autrui et d'emploi d'explosifs notamment. B. Le 21 février 2011, X._ a déposé plainte pénale contre les deux policiers précités pour délit manqué de meurtre et mise en danger de la vie d'autrui. Par décision du 24 janvier 2012, le Ministère public genevois a refusé d'entrer en matière sur cette plainte. Les policiers étaient intervenus alors que l'intéressé venait de participer à une agression mettant en danger de nombreuses vies, et alors qu'il tentait de fuir sans se soucier des autres personnes. L'usage de l'arme de service tendait à défendre l'agent B._ - qui se trouvait derrière le véhicule alors que celui-ci s'élançait en marche arrière -, à empêcher l'intéressé d'écraser une nouvelle fois la passante sur laquelle il avait roulé à deux reprises, ainsi qu'à éviter sa fuite. L'intervention était proportionnée. Par arrêt du 19 mars 2012, la Chambre pénale de recours de la Cour de justice du canton de Genève a rejeté le recours formé par X._ contre cette décision. Celle-ci avait été rendue près d'une année et sans acte d'instruction spécifique, mais cela n'affectait pas sa validité. Sa motivation était suffisante en fait et en droit. L'intervention des policiers était justifiée compte tenu de la menace que représentait l'intéressé. C. Par acte du 7 mai 2011, X._ forme un recours en matière pénale par lequel il demande que l'ordonnance de non-entrée en matière soit déclarée irrecevable (subsidiairement, que l'arrêt cantonal soit annulé) et que la cause soit renvoyée au Ministère public pour ouverture d'une instruction. Il requiert en outre l'assistance judiciaire. La Chambre pénale persiste dans les considérants de son arrêt. Le Procureur général conclut au rejet du recours. 