Faits: A. Le 6 septembre 2005, le Service de protection de la jeunesse du canton de Genève a dénoncé au Procureur général des attouchements prétendument commis sur l'enfant A._, née en 1963, par l'ex-ami de sa mère, X._. B. Le 14 septembre 2005, B._ a déposé plainte pénale contre X._. Elle exposait qu'ils s'étaient rencontrés le 12 septembre 2005 dans un pub, afin de parler de leur enfant commun, C._, âgé de 14 mois. La discussion avait dégénéré. X._ s'était fâché et lui avait craché au visage en la traitant de "pute", sur quoi elle lui avait renversé un verre de bière sur la tête, puis avait cassé le verre. Il l'avait alors violemment frappée à la tête et elle était tombée au sol. Entendu le même jour par la police, X._ a confirmé avoir eu une discussion virulente avec son ex-amie. Cette dernière s'était énervée, lui avait jeté un cendrier au visage et lui avait brisé un verre sur la tête. Il l'avait giflée à deux reprises. C. Le 16 septembre 2005, X._ a été inculpé d'actes d'ordre sexuel avec des enfants et de lésions corporelles simples Lors de son audition par le juge d'instruction, le 6 octobre 2005, X._, assisté de son conseil, a expliqué que son ex-amie lui avait demandé de l'argent pour payer la baby-sitter de leur fils C._. Il avait refusé, rétorquant que l'argent était en réalité destiné à jouer au casino. Elle lui avait alors dit qu'elle avait un ami tunisien, qui allait reconnaître C._ comme son enfant. Il lui avait répondu qu'il y avait une loi et qu'il reprendrait son fils. Son ex-amie s'était alors levée et lui avait cassé un verre de bière sur la tête. Il avait saigné, mais n'avait pas porté plainte, car il s'agissait de la mère de son fils. Lorsque celle-ci lui avait brisé le verre sur la tête, il avait eu très peur. De son côté, la plaignante a confirmé avoir demandé de l'argent à son ex-ami pour payer la nourrice. Il lui avait dit avoir entrepris des démarches pour reconnaître C._. Elle lui avait rétorqué qu'il était prématuré d'en parler, au vu des révélations de A._. Elle lui avait ensuite déclaré qu'elle avait un ami tunisien, qui avait une bonne situation et était éventuellement disposé à reconnaître C._. X._ lui avait craché au visage, la traitant de "pute". Elle s'était levée et lui avait renversé la bière sur la tête, puis avait cassé le verre. Elle avait envisagé de le blesser avec le tesson, mais s'était en définitive blessée elle-même à un doigt de la main droite. Elle avait en outre lancé un cendrier. X._ l'avait violemment giflée, si bien qu'elle avait presque perdu connaissance. D. Par ordonnance du 10 mai 2006, le Procureur général a renvoyé X._ devant le Tribunal de police, du chef d'infraction à l'art. 187 CP exclusivement, classant ainsi implicitement la procédure en ce qui concerne les lésions corporelles simples. Statuant le 21 décembre 2006 sur appel de X._, la Chambre pénale de la Cour de justice genevoise l'a libéré des fins de la poursuite pénale, considérant que les éléments constitutifs de l'art. 187 CP n'étaient pas réalisés. E. Le 11 juillet 2007, X._ a recouru à la Chambre d'accusation genevoise contre la décision du Procureur général du 10 mai 2006, en tant que cette dernière classait implicitement la procédure quant à la prévention de lésions corporelles simples. Il concluait à l'annulation du classement et au prononcé d'un non-lieu. Par ordonnance du 26 septembre 2007, la Chambre d'accusation a rejeté le recours et confirmé le classement. Préalablement, elle a observé que, selon la pratique cantonale, une décision de classement implicite non notifiée ne faisait pas courir le délai de recours à son encontre; en l'occurrence, ce dernier était donc recevable, nonobstant le fait qu'il avait été déposé le 11 juillet 2007 seulement. Sur le fond, elle a considéré que la prévention de lésions corporelles simples ou, du moins, de voies de fait était suffisamment établie, de sorte que le prononcé d'un non-lieu était exclu. F. X._ forme un recours en matière pénale au Tribunal fédéral, pour arbitraire dans l'établissement des faits et violation de l'art. 33 al. 1 aCP. Il conclut à l'annulation de la décision attaquée, en sollicitant l'assistance judiciaire. Des déterminations n'ont pas été requises.