ThomasBétrancourt Posté(e) 11 mai 2011 Share Posté(e) 11 mai 2011 (modifié) Bonjour, Je suis développeur et je souhaiterais me lancer dans la création d'une ROM Android. Par réflexe, je me suis donc rendu sur le site de AOSP afin de suivre leur documentation afin de me monter un environnement de développement Android (sous GNU/Linux Ubuntu 11.04). Cette procédure ne fonctionne pas encore (problème de récupération des sources depuis GIT avec le script repo). Ma question ne concerne pas cette partie, je finirai bien par trouver. La question que je me pose plus particulièrement, c'est une fois ces sources récupérées, quelle est la démarche pour construire une ROM fonctionnelle pour le HTC Desire. J'imagine que chaque terminal doit inclure ses drivers dans la ROM (radio, apn, écran, cpu...). Je vois un nombre d'outil considérable à la "Android Cooking", mais aucune documentation (à ma connaissance) sur la démarche pour faire les choses soit-même. Pour être clair, mon but n'est pas de créer une Xième ROM et me lancer sur le marché. Je cherche à me faire une ROM qui répondra exactement à mes besoins, aussi légère que possible (bon, la vraie raison, c'est peut-être aussi parce que ce genre de bidouilles me passionnent, et que faire ce genre de choses me plait beaucoup... :P). Pour résumé ma situation actuelle : Environnement de développement : GNU/Linux Ubuntu 11.04 (pré-requis Google installés) Cible : HTC Desire (ROM Stock 2.29 rooted / HBOOT 0.93 S-Off) Récupération des sources AOSP en cours Je prévois également de flasher la radio. Est-ce que ce choix doit être réfléchit l'élaboration de la ROM où est-ce que c'est complètement indépendant ? Est-ce qu'une ROM remplace la radio ? Mon choix se porterait vers la 32.54.00.32U_5.14.05.17, qui n'est pas la dernière mais semble être tout à fait un bon compromis entre autonomie et efficacité ! Je suis ouvert pour tous vos conseils / propositions. Merci d'avance ! -- Liens : http://www.jbauzone.fr/2011/04/10/construire-sa-custom-rom-aosp-android-open-source-project/ http://canardroid.com/wiki/doku.php?id=build_cyanogenmod#fichiers_proprietaires : récupération des fichiers propriétaire Modifié 11 mai 2011 par rclsilver Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Minux Posté(e) 11 mai 2011 Share Posté(e) 11 mai 2011 Salut, Je n'y connais rien en développement de rom depuis l'AOSP, mais tu peux prendre conseil sur XDA, et t'inspirer de l'excellent travail du développeur de la rom Oxygen, qui a mis les sources complètes de ses deux roms (Oxygen et Devnull) en ligne ici : http://gitweb.oxygen.im/ Ton projet m'intéresse beaucoup, donc donne nous des nouvelles ici aussi souvent que possible stp ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ninho Posté(e) 11 mai 2011 Share Posté(e) 11 mai 2011 Salut, Juste au cas ou tu ne le saurais pas, il me semble que depuis gingerbread il te faut linux 64 bits pour pouvoir compiler tes sources! Sinon je ne peux que t'encourager dans ta démarche, j'aime bien aussi ce genre de bidouille mais j'ai pas trop les connaissances nécessaires :) Bon courage!! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 11 mai 2011 Auteur Share Posté(e) 11 mai 2011 (modifié) Ah ah ! Intéressant ! Effectivement, je ne savais pas du tout. Heureusement pour moi, mon linux 64 bits 8 cores m'aidera dans ma tâche ! Pour ce qui est de la récupération des sources Android, j'ai avancé, ça télécharge. Pour info, j'ai utilisé la commande suivante : repo init -u git://android.git.kernel.org/platform/manifest.git ; repo sync ; Je ne sais pas encore si ça répond à mon besoin lol Edit: d'après les sorties d'écran, ça choppe tout le dépôt android, toutes versions publiées. Quelque chose me dit que j'ai pas fini, lol Modifié 11 mai 2011 par rclsilver Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ninho Posté(e) 11 mai 2011 Share Posté(e) 11 mai 2011 Oui il faut préciser quand tu veux seulement une branche: repo init -u git://android.git.kernel.org/platform/manifest.git -b gingerbread J'avais trouvé cette adresse il y a quelque temps plutôt utile; http://www.jbauzone.fr/2011/04/10/construire-sa-custom-rom-aosp-android-open-source-project/ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 11 mai 2011 Auteur Share Posté(e) 11 mai 2011 Très bon lien oui, j'étais tombé dessus. Je l'ai mis dans mon premier post, histoire de faire un bilan au fur et à mesure. Cette partie là explique bien la compilation, moins la partie concernant HTC Desire. Pour le -b, oui je savais, là, au moins, j'aurais tout, lol. Le téléchargement est toujours en cours, les serveurs git sont pas très gentils, ils donnent pas un débit énorme Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ninho Posté(e) 11 mai 2011 Share Posté(e) 11 mai 2011 (modifié) J'avais ce lien aussi ou il parle rapidement pour le htc desire je sais pas si ça te fera avancer ou même correspondra vu que là c'est à partir des sources cyanogen : http://canardroid.com/wiki/doku.php?id=build_cyanogenmod Après je n'ai pas été plus loin ne pouvant faire marcher linux 64 bits sur mon ancien pc et vu que c'était par simple curiosité et que j'ai pas envie de mettre linux en dual boot avec windows pour pas me prendre la tête avec le MBR lors de la désinstallation de linux ^^ Effectivemment j'ai le souvenirs que les serveurs sont pas très rapide, bon courage ;) En tout cas si tu donnes souvent des news je passerai sur ce topic de temps en temps! Modifié 11 mai 2011 par Ninho Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 11 mai 2011 Auteur Share Posté(e) 11 mai 2011 (modifié) Le téléchargement des sources est terminé. Par contre, ça ne compile pas. Afin d'avoir une évolution tracée, je copie les logs, et je mettrai la résolution dès que j'aurai réussi thomas@thomas-asus:~/Android/system$ make -j 9 ============================================ PLATFORM_VERSION_CODENAME=AOSP PLATFORM_VERSION=AOSP TARGET_PRODUCT=full TARGET_BUILD_VARIANT=eng TARGET_SIMULATOR= TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv5te HOST_ARCH=x86 HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=OPENMASTER ============================================ find: "frameworks/base/frameworks/base/docs/html": Aucun fichier ou dossier de ce type find: "out/target/common/docs/gen": Aucun fichier ou dossier de ce type find: "frameworks/base/frameworks/base/docs/html": Aucun fichier ou dossier de ce type find: "out/target/common/docs/gen": Aucun fichier ou dossier de ce type find: "frameworks/base/frameworks/base/docs/html": Aucun fichier ou dossier de ce type find: "out/target/common/docs/gen": Aucun fichier ou dossier de ce type find: "frameworks/base/frameworks/base/docs/html": Aucun fichier ou dossier de ce type find: "out/target/common/docs/gen": Aucun fichier ou dossier de ce type find: "frameworks/base/frameworks/base/docs/html": Aucun fichier ou dossier de ce type find: "out/target/common/docs/gen": Aucun fichier ou dossier de ce type host C: libclearsilver-jni <= external/clearsilver/java-jni/j_neo_util.c host C: libclearsilver-jni <= external/clearsilver/java-jni/j_neo_cs.c host Executable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp) host C: libneo_cgi <= external/clearsilver/cgi/cgi.c host C: libneo_cgi <= external/clearsilver/cgi/html.c host C: libneo_cgi <= external/clearsilver/cgi/date.c host SharedLib: libneo_util (out/host/linux-x86/obj/lib/libneo_util.so) host C: libneo_cgi <= external/clearsilver/cgi/rfc2388.c /usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.so when searching for -lstdc++ /usr/bin/ld: skipping incompatible /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/libstdc++.a when searching for -lstdc++ /usr/bin/ld: cannot find -lstdc++ collect2: ld returned 1 exit status make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] Erreur 1 make: *** Attente des tâches non terminées.... Correction : installation des packages ubuntu suivants git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev pngcrush g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev Modifié 11 mai 2011 par rclsilver Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 11 mai 2011 Auteur Share Posté(e) 11 mai 2011 (modifié) J'avais ce lien aussi ou il parle rapidement pour le htc desire je sais pas si ça te fera avancer ou même correspondra vu que là c'est à partir des sources cyanogen : http://canardroid.com/wiki/doku.php?id=build_cyanogenmod Après je n'ai pas été plus loin ne pouvant faire marcher linux 64 bits sur mon ancien pc et vu que c'était par simple curiosité et que j'ai pas envie de mettre linux en dual boot avec windows pour pas me prendre la tête avec le MBR lors de la désinstallation de linux ^^ Effectivemment j'ai le souvenirs que les serveurs sont pas très rapide, bon courage ;) En tout cas si tu donnes souvent des news je passerai sur ce topic de temps en temps! Ton lien est très intéressant ! Ils disent comment récupérer les parties spécifiques au téléphone / modèle. D'après ce que j'ai compris, ils récupèrent les fichiers propriétaires depuis le téléphone directement. Le problème maintenant, c'est de savoir si ces fichiers doivent être mis à jour en fonction de la version d'Android. Edit : à priori, dans le checkout de AOSP tout à l'heure, le dossier <source root>/device/htc/bravo (htc desire) n'existe pas. Je vais voir si je peux récupérer celui présent dans CyanogenMod et l'utiliser pour l'AOSP... J'attends la fin de ma compilation "nue" avant de faire ce test. Modifié 11 mai 2011 par rclsilver Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 11 mai 2011 Auteur Share Posté(e) 11 mai 2011 Succès ! Premier build OK dans un émulateur : Pour résumer cette première étape : Installation des pré-requis sur Ubuntu 11.04 (voir http://source.android.com/source/initializing.html) Récupération des sources AOSP (voir http://source.android.com/source/downloading.html) Compilation des sources (voir http://source.android.com/source/building.html) Exécution dans un émulateur : emulator -system ~/Android/system/out/target/product/generic/ -kernel ~/Android/system/prebuilt/android-arm/kernel/kernel-qemu -data ~/Android/system/out/target/product/generic/userdata.img (où mon dossier contenant les sources = ~/Android/system) Je n'aurais pas le temps avant quelques jours de faire de nouvelles compilations (notamment avec les fichiers propriétaires HTC). Je me documenterai et posterai ici si je trouve quelque chose. N'hésitez pas pour les intéressés ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Minux Posté(e) 12 mai 2011 Share Posté(e) 12 mai 2011 Ca avance bien, bonnes nouvelles :) Et merci pour tes retours, c'est encourageant ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ninho Posté(e) 12 mai 2011 Share Posté(e) 12 mai 2011 Ah ca c'est bien, en attendant de voir avec les fichiers propriétaire ce que ça peut donner! En tout cas ça peut être un bon topic car il y a très peu d'info en français sur la création de rom à partir des sources. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 12 mai 2011 Auteur Share Posté(e) 12 mai 2011 Yes, j'en suis conscient ! Pour les fichiers propriétaires, j'ai une piste : choper les fichiers depuis une ROM existante. Par contre, la question que je me pose c'est comment eux les chopent au début ? Je sais qu'il y a eu une fuite d'une ROM gingerbread en tests pour le HTC Desire, je pourrais peut etre les choper de cette ROM aussi. Je vous tiens au courant ! Je recompilerai ce weekend avec ces fichiers propriétaires afin de tester. Si quelqu'un a des infos là-dessus, ça sera avec plaisir ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 12 mai 2011 Share Posté(e) 12 mai 2011 (modifié) Je ne sais pas si tu es au courant que HTC publie les sources de ses kernel ? Ca se passe ici : http://developer.htc.com/ Je ne sais pas si ca peut t'aider étant donné qu'il n'y a pour le moment que les sources pour les ROM 2.1 mais ca peut servir de base. Ici tu pourra trouver les sources du kernel modifié par sqn (peut être le dernier développeur à travailler sur le kernel du Desire...) : https://github.com/snq-/bravo-kernel Mais je suis un peu surpris que les deniers commit soit si ancien alors qu'il a publié des modifs dernièrement pour le kernel Gingerbread... Ya plus d'infos là : http://forum.xda-developers.com/showthread.php?t=1039004 Quelques infos sur les RIL ici : http://forum.xda-developers.com/showthread.php?t=902752 En tout cas bon courage. J'avoue que j'ai été tenté plusieurs fois de m'y mettre également puis finalement j'ai pas eu le courage ^^ Modifié 13 mai 2011 par Kiiv Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 13 mai 2011 Auteur Share Posté(e) 13 mai 2011 Ce que je ne comprends pas, c'est le fait d'avoir un kernel par terminal. Je pensais (peut être à tort) qu'il suffisait d'inclure dans le kernel générique les fichiers propres au terminal (drivers, librairies spécifiques...). Après, peut-être qu'il y a des optimisation à effectuer en fonction du terminal, ce qui expliquerait de fork du kernel original... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 13 mai 2011 Share Posté(e) 13 mai 2011 Ba... Si tu inclus des fichiers propres au terminal dans le kernel générique, ca te donne des kernels spécifiques pour chaque terminal, non ? ;) C'est comme n'importe quelle distrib linux, si je compile un kernel pour ma machine il ne fonctionnera pas pour la tienne même si on veux tout les deux faire tourner Ubuntu :/ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 13 mai 2011 Auteur Share Posté(e) 13 mai 2011 Oui ça ok, je suis d'accord. Mais je trouve ça troublant de faire un fork complet du kernel, juste pour ajouter quelques fichiers spécifiques au terminal. Un patch du GIT AOSP aurait été à mon sens peut-être plus pratique. Ce n'est qu'une supposition. Pour ce qui est de faire un build par terminal... Ca, on est tous d'accord que c'est indispensable, il n'a jamais été question de faire sans, lol Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 13 mai 2011 Auteur Share Posté(e) 13 mai 2011 (modifié) Je me pose des questions avec mes lectures. Quelqu'un sait si le fait de flasher la ROM vire le recovery ? Ca serait assez dommage, lol, surtout si le test échoue... (brick brick brick) Modifié 13 mai 2011 par rclsilver Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Minux Posté(e) 13 mai 2011 Share Posté(e) 13 mai 2011 Non, le recovery n'est pas touché par le flash d'une rom. La radio non plus, sauf dans le cas des RUU qui flashent le module radio à la volée. Donc tu peux faire un backup de ta rom actuelle en recovery, flasher ta nouvelle rom, et revenir restaurer l'ancienne après tests ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 13 mai 2011 Auteur Share Posté(e) 13 mai 2011 Ok parfait ! Pour le moment, j'installe CyanogenMod 7.0.3, afin de récupérer les fichiers propriétaires HTC Desire Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 13 mai 2011 Share Posté(e) 13 mai 2011 Oui ça ok, je suis d'accord. Mais je trouve ça troublant de faire un fork complet du kernel, juste pour ajouter quelques fichiers spécifiques au terminal. Un patch du GIT AOSP aurait été à mon sens peut-être plus pratique. Ce n'est qu'une supposition. Pour ce qui est de faire un build par terminal... Ca, on est tous d'accord que c'est indispensable, il n'a jamais été question de faire sans, lol Si tu parle du fork de Snq-, il y a bien plus que "quelques fichiers spécifiques au terminal". Il y a beaucoup de tweak pour améliorer les perfs (OC etc), petites modifs pour ajouter des fonctionnalités (trackpad to unlock) et bien d'autres choses que je ne comprend même pas :emo_im_foot_in_mouth: Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 13 mai 2011 Auteur Share Posté(e) 13 mai 2011 Dans ce cas, OK, là je comprends :) Bon, première fois que je teste Gingerbread (en conditions réelles). Un peu de temps d'adaptation, et ça devrait le faire. Perdre HTC Sense me fait bizarre, il faudra que je vois aussi comment l'ajouter à ma ROM. Plus ça vient, plus je me dis que ça ne va pas être évident :P Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 13 mai 2011 Share Posté(e) 13 mai 2011 Malheureusement, pour ajouter Sense, je pense que tu ne pourras pas partir d'une ROM AOSP :/ HTC modifie les choses en profondeur et toutes les ROMs custom qui possèdent Sense prennent pour base une ROM HTC. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
ThomasBétrancourt Posté(e) 13 mai 2011 Auteur Share Posté(e) 13 mai 2011 C'est bien ce que je craignais. Du coup, si je pars d'une ROM HTC, l'histoire des fichiers propriétaires sera réglée par la même occasion. Je pense que je ferais une ROM viable pour HTC Desire, AOSP, juste histoire de dire de faire un tuto. Puis je partirais depuis une ROM HTC (à voir pour trouver l'origine des sources...) histoire de me compiler une ROM "à moi" avec exactement ce que je veux dessus. Mon but final en fait, c'est d'intégrer un espion sur la ROM. Une sorte de cheval de troie, en cas de vol de mon téléphone, pour le piloter à distance (l'interroger sur sa localisation géographique, effacement des données personnelles à distance, shell...). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Ninho Posté(e) 13 mai 2011 Share Posté(e) 13 mai 2011 Peut être devrais tu regarder du côté de xda pour trouver une rom HTC qui aurait fuité , je suis pas sûr que chez HTC ils mettent les sources ( en tout cas dans leur intégralité ) à disposition de tout le monde! En tout cas je vois que ça prend forme, tu as bien avancé! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.