Faits :
A.
A.a. X._, né le 1er février 1994, alias Y._, né en 1993, est un ressortissant de la République de Guinée.
Le 16 août 2011, il a déposé une demande d'asile en Suisse, qui a été radiée le 3 octobre 2011, l'intéressé ayant disparu.
Le 1er octobre 2017, X._ a été arrêté dans le cadre d'une enquête portant sur un trafic de cocaïne. Il était porteur d'un passeport guinéen, valable jusqu'au 18 novembre 2017, et d'une autorisation de séjour au Portugal, valable jusqu'au 5 mars 2018.
Le 3 septembre 2018, le Tribunal correctionnel du canton de Genève a condamné X._ à une peine privative de liberté de 36 mois, dont 12 mois fermes, sous déduction de 338 jours de détention avant jugement et a ordonné son expulsion de Suisse pour une durée de 5 ans, en raison d'infractions à la loi fédérale sur les stupéfiants.
Le 7 septembre 2018, le Secrétariat d'Etat aux migrations (ci-après: le SEM) a indiqué à l'Office cantonal genevois de la population et des migrations (ci-après: l'Office cantonal) que, si X._ n'était pas disposé à rentrer volontairement en Guinée, il fallait le présenter à une délégation guinéenne, à l'occasion d'une audition centralisée. Le 13 septembre 2018, en réponse à une demande de la police genevoise, le SEM a mentionné que X._ serait présenté aux autorités de son pays lors de la prochaine audition centralisée, probablement dans le courant de l'année 2019.
Parallèlement, la Police genevoise, à qui X._ avait indiqué s'opposer à son renvoi en Guinée et souhaiter retourner auprès de sa famille au Portugal, a pris contact avec le Consulat général du Portugal à Genève (ci-après: le Consulat général). Celui-ci a indiqué qu'il ne pouvait délivrer de laissez-passer à X._, faute de nationalité portugaise; une demande allait être faite au service portugais compétent pour ce genre de situation et sa réponse allait être transmise à la Police genevoise.
A.b. Le 30 septembre 2018, X._ s'est vu notifier par l'Office cantonal une décision de non-report de l'expulsion judiciaire et, le même jour, le Commissaire de police du canton de Genève (ci-après: le Commissaire de police) a ordonné sa mise en détention administrative pour une durée de six mois, soit jusqu'au 30 mars 2019. Cet ordre de mise en détention a été confirmé par jugement du Tribunal administratif de première instance du canton de Genève (ci-après: le TAPI) du 1er octobre 2018, qui n'a pas fait l'objet d'un recours.
B.
Le 27 octobre 2018, X._ a formé une demande de mise en liberté auprès du TAPI, soulignant qu'il désirait se rendre rapidement au Portugal, afin de continuer les démarches pour renouveler son titre de séjour, versant à la procédure des documents démontrant l'existence desdites démarches.
L'Office cantonal a indiqué que le Consulat général n'avait pas encore reçu de réponse des services compétents à Lisbonne et qu'une audition par les autorités guinéennes pourrait avoir lieu au mois de décembre 2018.
Le 6 novembre 2018, le TAPI a rejeté la demande de mise en liberté de X._. Le recours déposé par l'intéressé auprès de la Chambre administrative de la Cour de justice genevoise (ci-après: la Cour de justice) a été rejeté par arrêt du 27 novembre 2018.
C.
Contre l'arrêt du 27 novembre 2018, X._ forme un recours en matière de droit public au Tribunal fédéral. Sous suite de frais et dépens, il conclut au fond à l'annulation de l'arrêt attaqué et, principalement, à ce qu'il soit constaté une violation des principes de la proportionnalité et de la célérité et à ce que sa libération immédiate soit ordonnée; subsidiairement, il demande le renvoi de la cause à la Cour de justice pour nouvelle décision au sens des considérants. Il sollicite également l'octroi de l'assistance judiciaire complète ou, à titre subsidiaire, partielle.
La Cour de justice a déclaré n'avoir aucune observation à formuler. L'Office cantonal ne s'est pas prononcé. Le SEM s'est déterminé, indiquant que X._ était obligé de quitter la Suisse et qu'il avait été présenté à une délégation guinéenne en vue de confirmer sa nationalité et ainsi permettre ultérieurement l'établissement d'un laissez-passer par l'Ambassade de Guinée. S'agissant d'un départ pour le Portugal, l'intéressé n'était pas en possession d'un permis de résidence valable et, faute de laissez-passer, il ne pouvait entrer légalement dans ce pays. Rien ne l'empêchait de relancer le processus administratif pour obtenir une nouvelle autorisation d'entrée au Portugal depuis la Guinée.
Dans des observations finales, X._ a relevé que l'audition par les représentants guinéens mentionnée par le SEM était inutile, car sa nationalité ne faisait aucun doute, que les autorités portugaises n'étaient pas opposées à son entrée sur leur territoire et qu'il n'y avait aucune raison de le renvoyer en Guinée alors qu'il avait déjà entrepris depuis la Suisse toutes les démarches nécessaires au renouvellement de son titre de séjour portugais.
Considérant en droit :
1.
1.1. En matière de mesures de contrainte, la décision rendue en dernière instance cantonale par la Cour de justice peut faire l'objet d'un recours en matière de droit public au Tribunal fédéral (cf., notamment, arrêts 2C_956/2015 du 23 novembre 2015 consid. 1 et 2C_637/2015 du 16 octobre 2015 consid. 5). Le présent recours a été interjeté en temps utile, compte tenu des féries (art. 46 al. 1 let. c et art. 100 al. 1 LTF), et dans les formes requises (art. 42 LTF) par le recourant dont la demande de libération a été rejetée, de sorte qu'il remplit les conditions de l'art. 89 al. 1 LTF. Il est donc recevable, sous réserve de ce qui suit.
1.2. Selon un principe général de procédure, les conclusions en constatation de droit ne sont recevables que lorsque des conclusions condamnatoires ou formatrices sont exclues. Sauf situations particulières, les conclusions constatatoires ont donc un caractère subsidiaire (ATF 141 II 113 consid. 1.7 p. 123). Dans la mesure où le recourant conclut, parallèlement à sa libération immédiate, à ce que la violation des principes de proportionnalité et de célérité soit constatée, il formule une conclusion "préparatoire" qui constitue le motif juridique qui, selon lui, justifierait une libération. Une telle conclusion est irrecevable (cf. arrêt 2C_988/2017 du 19 septembre 2018 consid. 1.2, non destiné à la publication).
2.
Le Tribunal fédéral conduit son raisonnement juridique sur la base des faits constatés par l'autorité précédente (art. 105 al. 1 LTF), sous réserve des cas prévus à l'art. 105 al. 2 LTF. Selon l'art. 97 al. 1 LTF, le recours ne peut critiquer les constatations de fait que si les faits ont été établis de façon manifestement inexacte - notion qui correspond à celle d'arbitraire - ou en violation du droit au sens de l'art. 95 LTF et si la correction du vice est susceptible d'influer sur le sort de la cause (ATF 142 II 355 consid. 6 p. 358; 139 II 373 consid. 1.6 p. 377 s.). Conformément à l'art. 106 al. 2 LTF, la partie recourante doit expliquer de manière circonstanciée en quoi ces conditions seraient réalisées. A défaut, il n'est pas possible de tenir compte d'un état de fait qui diverge de celui qui est contenu dans l'acte attaqué (ATF 137 II 353 consid. 5.1 p. 356; arrêt 2C_157/2018 du 28 mai 2018 consid. 2).
3.
Le recourant invoque l'arbitraire dans l'appréciation des preuves et dans l'établissement des faits. Il se plaint aussi d'une motivation insuffisante de l'arrêt attaqué constitutive d'une violation de son droit d'être entendu.
3.1. S'agissant de l'appréciation des preuves et des constatations de fait, il y a arbitraire lorsque l'autorité ne prend pas en compte, sans raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur son sens et sa portée, ou encore lorsque, en se fondant sur les éléments recueillis, elle en tire des constatations insoutenables (ATF 140 III 264 consid. 2.3 p. 266).
Le droit d'être entendu, garanti par l'art. 29 al. 2 Cst., implique notamment pour l'autorité l'obligation de motiver sa décision. La motivation d'une décision est suffisante, au regard du droit d'être entendu, lorsque l'autorité mentionne, au moins brièvement, les motifs qui l'ont guidée et sur lesquels elle a fondé sa décision, de manière à ce que l'intéressé puisse se rendre compte de la portée de celle-ci et l'attaquer en connaissance de cause. Le juge n'a toutefois pas l'obligation d'exposer et de discuter tous les faits, moyens de preuve et griefs invoqués par les parties, mais peut se limiter à l'examen des questions décisives pour l'issue du litige (ATF 142 II 154 consid. 4.2 p. 157). La motivation peut d'ailleurs être implicite et résulter des différents considérants de la décision (ATF 141 V 557 consid. 3.2.1 p. 565; arrêt 2C_382/2017 du 13 décembre 2018 consid. 4.1).
3.2. Le recourant reproche à la Cour de justice d'être tombée dans l'arbitraire pour ne pas avoir fait état du contenu des pièces produites, attestant des démarches qu'il aurait lui-même accomplies auprès des autorités portugaises en vue d'obtenir une autorisation de séjourner dans ce pays, voire la nationalité portugaise. Il affirme que le contenu de ces pièces est fondamental, citant entre autres un document faisant état d'un rendez-vous fixé au 7 mars 2019 à Lisbonne auprès d'un service officiel.
3.2.1. L'arrêt attaqué constate que le recourant, qui avait résidé au Portugal avec sa famille, désirait y retourner par ses propres moyens. Il ne disposait toutefois plus d'aucun titre de séjour lui permettant de se rendre dans ce pays. Les juges précédents retiennent également que l'intéressé avait entrepris des démarches au Portugal qui étaient en cours, afin de pouvoir y retourner, ce qui était attesté par des documents produits par le recourant. Les autorités suisses avaient, pour leur part, agi avec toute la diligence nécessaire, puisqu'elles avaient interpellé les autorités portugaises, afin de savoir si celles-ci étaient disposées à réadmettre le recourant, sans obtenir à ce jour de réponse (arrêt attaqué, p. 6 s.).
3.2.2. N'en déplaise au recourant, on ne voit pas que la description précise des démarches accomplies, dont les juges précédents reconnaissent l'existence, serait déterminante pour justifier sa libération immédiate. En effet, les documents cités par le recourant ne font que démontrer que celui-ci cherche à obtenir un titre de séjour, voire la nationalité portugaise, ce que constate l'arrêt attaqué. En revanche, le détail de ces pièces ne prouve pas que le recourant aurait reçu les documents souhaités ni qu'il serait sur le point de les obtenir. Le fait qu'il ait un rendez-vous, le 7 mars 2019 à Lisbonne, n'enlève rien au fait que, sans laissez-passer, il ne peut se rendre sur le territoire de cet Etat, puisqu'il ne possède plus de passeport valable. Le maintien en détention du recourant n'y change donc rien. Cette convocation ne signifie en outre pas que le Portugal est prêt à l'accueillir. Au demeurant, le recourant n'est pas sans contact au Portugal pour s'occuper des démarches sur place, puisqu'il indique avoir mandaté une avocate à Lisbonne. Quant aux liens du recourant avec le Portugal que ces pièces seraient aussi censées démontrer, les autorités précédentes ont toujours reconnu la volonté du recourant d'aller vivre dans ce pays auprès de sa famille. Enfin, il confine à la témérité d'affirmer qu'il appartenait aux autorités suisses de transmettre aux autorités portugaises des pièces qui, précisément, attestaient des démarches accomplies par le recourant auprès de celles-ci.
3.3. L'intéressé s'en prend ensuite à l'affirmation de l'arrêt attaqué selon laquelle l'Office cantonal avait indiqué que le Consulat général n'avait pas encore reçu de réponse des services compétents à Lisbonne concernant une éventuelle réadmission au Portugal (arrêt attaqué, p. 3).
L'argumentation présentée dans le recours ne remplit toutefois pas les exigences de l'art. 106 al. 2 LTF. En effet, le recourant reproche à la Cour de justice d'avoir omis de mentionner trois courriels des 5 et 6 novembre 2018 produits par l'Office cantonal " dont les contenus n'étaient ni vérifiables ni ne démontraient aucune nouvelle démarche qu'ils (sic) auraient entrepris (sic) entre l'audience du 1er octobre 2018 et celle du 6 novembre 2018" (recours, p. 10). Or, non seulement le recourant ne produit pas lesdits courriels, mais il en dresse aussi un résumé et une interprétation personnels incompréhensibles. Il est partant impossible de saisir pourquoi l'arrêt attaqué contiendrait une motivation insuffisante contraire à l'art. 29 al. 2 Cst. en ne mentionnant pas ces courriels ni en quoi il serait manifestement erroné sur l'appréciation des démarches accomplies pour renvoyer le recourant. Le fait que les autorités suisses aient demandé, avant l'audience concernant la demande de mise en liberté du recourant, si le Consulat général avait obtenu une réponse quant à une éventuelle acceptation du recourant, signifie qu'elles ont relancé les autorités portugaises et correspond ainsi à ce que retient l'arrêt attaqué. Faute de grief intelligible, il ne sera pas entré plus avant sur cette critique.
3.4. On ne voit pas davantage que la Cour de justice aurait établi arbitrairement les faits pour évaluer la diligence des autorités suisses. Le recourant reproche à l'arrêt attaqué de ne pas avoir constaté les faits de manière correcte s'agissant de l'interpellation des autorités portugaises pour savoir si celles-ci étaient disposées à le réadmettre. Il reproche aux juges précédents de ne pas avoir mentionné un échange de courriels entre la "Brigade Renvois" et le Consulat général, en particulier un courriel du 21 novembre 2018 qui porte sur l'éventuelle admission du recourant au Portugal et sur le rendez-vous du 7 mars 2019. Il n'apparaît pourtant pas, et le recourant ne le démontre nullement, que l'omission de mentionner ce courriel aboutirait à une appréciation arbitraire des faits pertinents. Au contraire, le courriel en question prouve que les autorités suisses se sont une nouvelle fois renseignées auprès du Consulat général pour savoir si celui-ci avait reçu une réponse des autorités compétentes au Portugal. En outre, le recourant n'affirme nullement que le Consulat général aurait fourni une réponse que les autorités suisses auraient cachée. Le fait que l'Office cantonal n'ait pas informé immédiatement la "Brigade Renvois" de la démarche n'est à cet égard pas déterminant. On ne discerne donc pas en quoi consisterait, selon le recourant, le caractère insoutenable des éléments à l'origine de l'appréciation de la diligence et de la célérité des autorités suisses figurant dans l'arrêt attaqué.
3.5. Le recourant se plaint également d'une motivation insuffisante en lien avec la proportionnalité de sa mise en détention administrative pour une durée de six mois. Contrairement à ce qu'il soutient, la Cour de justice ne confond pas la proportionnalité avec le respect du principe de célérité. S'il est vrai qu'elle ne développe pas la proportionnalité de façon topique, elle considère que ce principe a été respecté en se référant à l'ensemble des circonstances de la cause, comme en attestent les termes : "au vu de ce qui précède" (arrêt entrepris, p. 6). Il est donc parfaitement possible de comprendre pour quels motifs elle a considéré la mesure comme proportionnée (première détention; absence de collaboration de l'intéressé en vue d'un retour en Guinée; risque de fuite évident). Le recourant est du reste parfaitement en mesure de contester l'arrêt attaqué sur la question de la proportionnalité et le Tribunal fédéral d'en contrôler le bien-fondé, comme il le sera examiné ci-après, ce qui exclut une violation de l'obligation de motiver sur ce point.
3.6. Les critiques relatives aux faits et à la motivation insuffisante de l'arrêt attaqué doivent donc être rejetées. C'est partant sur la base des constatations cantonales (art. 105 al. 1 LTF) que la Cour de céans vérifiera la conformité de l'arrêt attaqué au droit fédéral.
4.
Condamné à une peine privative de liberté de 36 mois pour infraction à la législation sur les stupéfiants (trafic de cocaïne) et expulsé de Suisse pour une durée de cinq ans, le recourant remplit le motif de détention administrative prévu à l'art. 76 al. 1 let. b ch. 1 en lien avec l'art. 75 al. 1 let. g et h de la loi fédérale du 16 décembre 2005 sur les étrangers (depuis le 1er janvier 2019, la loi fédérale du 16 décembre 2005 sur les étrangers et l'intégration [RS 142.20]; ci-après: LEI). Celui-ci ne le conteste du reste pas. En revanche, il invoque, comme il l'avait déjà fait devant les instances cantonales, une violation des principes de célérité (art. 76 al. 4 LEI; infra consid. 5) et de proportionnalité (infra consid. 6), pour justifier sa demande de mise en liberté immédiate.
5.
5.1. S'agissant de la célérité, la détention administrative exige que, du point de vue temporel, les autorités compétentes agissent avec diligence. C'est ce qu'exprime l'art. 76 al. 4 LEI, lorsqu'il impose aux autorités d'entreprendre les démarches nécessaires à l'exécution du renvoi ou de l'expulsion sans tarder. Selon la jurisprudence, le principe de célérité est violé si les autorités compétentes n'entreprennent aucune démarche en vue de l'exécution du renvoi ou de l'expulsion pendant une durée supérieure à deux mois et que leur inactivité ne repose pas en première ligne sur le comportement des autorités étrangères ou de la personne concernée elle-même (cf. ATF 139 I 206 consid. 2.1 p. 211; arrêt 2C_1106/2018 du 4 janvier 2019 consid. 3.3.2).
5.2. Ressortissant guinéen, l'intéressé indique avoir quitté ce pays à l'âge de 13 ans et vécu depuis lors au Portugal avec sa famille où il souhaite retourner, refusant pour ce motif un renvoi en Guinée. Il ne possède toutefois plus aucun passeport guinéen ni titre de séjour portugais valables. Au moment de confirmer sa mise en détention, le TAPI, dans son jugement du 1er octobre 2018, a constaté que les autorités avaient déjà accompli des démarches en vue du renvoi du recourant soit en Guinée soit au Portugal. Le 27 octobre 2018, l'intéressé a demandé sa mise en liberté. Lors de l'audience devant le TAPI, le 6 novembre suivant, l'Office cantonal a indiqué que le Consulat général n'avait pas encore reçu de réponse des services compétents de Lisbonne sur une éventuelle admission du recourant au Portugal. S'agissant d'un renvoi en Guinée, une audition par les autorités guinéennes pouvait avoir lieu au début du mois de décembre 2018. L'arrêt attaqué du 27 novembre 2018 se réfère également à un document émanant du SEM indiquant que l'intéressé allait être entendu par une délégation de la République de Guinée le 5 décembre 2018. En outre, le 22 novembre 2018, le Consulat général avait confirmé que, pour pouvoir se rendre au Portugal, le recourant devait avoir un document d'identité valable. Or, l'intéressé, refusant de se rendre en Guinée, n'avait entrepris aucune démarche auprès des autorités de son pays d'origine pour obtenir un document d'identité qui ne soit pas périmé.
5.3. Ces circonstances ne traduisent aucun manquement à l'obligation de célérité des autorités suisses. Au contraire, celles-ci ont entrepris des démarches régulières tant envers les autorités guinéennes que portugaises en vue du renvoi du recourant. Le grief est donc infondé.
6.
6.1. La détention administrative doit, conformément à l'art. 36 al. 3 Cst., apparaître dans son ensemble comme proportionnée pour rester acceptable. Tant sur le plan général que concret, il faut qu'elle demeure dans un rapport raisonnable avec le but visé (cf. ATF 143 I 147 consid. 3.1 p. 151; 142 I 135 consid. 4.1 p. 151). C'est pourquoi l'art. 79 al. 1 LEI prévoit que la détention en phase préparatoire et la détention en vue du renvoi ou de l'expulsion visées aux art. 75 à 77 LEI ainsi que la détention pour insoumission visée à l'art. 78 LEI ne peuvent excéder six mois au total. Cette durée ne peut être prolongée qu'avec l'accord de l'autorité judiciaire cantonale et à certaines conditions (cf. art. 79 al. 2 LEI).
6.2. Lorsqu'il conteste la proportionnalité de la mesure, le recourant perd de vue que sa détention administrative fait suite à une lourde condamnation pénale pour trafic de cocaïne et au prononcé de son expulsion de Suisse pour une durée de cinq ans. L'intéressé représente ainsi une menace pour la sécurité, de sorte qu'il existe un intérêt public évident à ce que les autorités suisses s'assurent que son renvoi sera bien exécuté. Dès lors que le recourant, originaire de Guinée, affirme qu'il ne veut pas retourner dans ce pays et qu'il n'a fait aucune démarche pour obtenir un document d'identité propre à permettre son retour, il n'apparaît pas disproportionné de le placer en détention le temps d'obtenir les papiers nécessaires de la part des autorités guinéennes, ce qui risque de prendre un certain temps en raison de la non-coopération du recourant. Quant à un éventuel retour au Portugal, il n'est pas de nature à justifier la libération de l'intéressé, dès lors qu'en l'état, il n'a aucun permis de séjour dans ce pays et qu'il est dépourvu de papiers d'identité valables qui lui permettraient d'entrer sur le territoire portugais.
6.3. Dans ce contexte, on ne voit pas que la détention du recourant soit actuellement contraire au principe de proportionnalité, ce qui justifierait une libération immédiate.
7.
Le recours doit donc être rejeté dans la mesure de sa recevabilité. La cause apparaissant d'emblée dépourvue de chances de succès, la demande d'assistance judiciaire complète doit être rejetée (cf. art. 64 al. 1 LTF). Compte tenu de la situation du recourant, détenu sur le point d'être expulsé, il ne sera toutefois pas perçu de frais judiciaires, ce qui revient à rendre la demande d'assistance judiciaire partielle également formée par le recourant sans objet. Il ne sera pas alloué de dépens (art. 68 al. 3 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire complète du recourant est rejetée.
3.
Il ne sera pas perçu de frais judiciaires.
4.
Le présent arrêt est communiqué à la mandataire du recourant, au Commissaire de police du canton de Genève, à l'Office cantonal de la population et des migrations du canton de Genève, à la Cour de justice du canton de Genève, Chambre administrative, 1ère section, et au Secrétariat d'Etat aux migrations.
Lausanne, le 21 janvier 2019
Au nom de la IIe Cour de droit public
du Tribunal fédéral suisse
Le Président : Seiler
Le Greffier : Ermotti