[TUTO] Je veux faire mes builds sous OsX Yosemite...

  • Auteur de la discussion NexusPenguin
  • Date de début
N

NexusPenguin

Membre
Inscrit
20 Septembre 2013
Messages
8
Points
1
  • #1
Salut à toutes et à tous,

Bon, alors voilà, je me lance... pour le fun.

Avant tout, une petite présentation : NexusPenguin, grand fan d'Android et toujours à la recherche de la pépite qui me permettra de personnaliser mes "précieux" pour en faire "mes" précieux :)
Le souci est que j'ai 5 devices : Nexus 5, Nexus 7 (Wi-Fi et 3G), XPeria Z2 Tablet et LG GPad 8.3.

Mon problème ?
J'aimerais avoir une ROM Custom identique sur TOUS mes appareils. Problème : ça n'existe pas :) Ou alors ce sont des ROM Custom basée sur Cyanogen, qui était quand même notoirement buggé dans sa version 12.0 (accroche Wi-Fi aléatoire, raccrochage intempestif lors d'une conversation téléphonique...). Bref, je veux une ROM Custom basée sur AOSP et déclinée sur tous mes appareils. Et ça, ça existe pas.

La solution ?
Bon, puisque ce que je veux n'existe pas, la seule solution est de le créer. J'ai intégré une "team" de développeurs de ROM Custom qui m'ont appris comment faire pour porter leur ROM sur mes devices. C'est assez simple... mais là n'est pas le sujet. En effet, avant de créer ma propre ROM, il faut encore que je configure mon environnement de travail.
Et là, il faut que je me débrouille tout seul...
Internet est mon ami et Google l'ami de mon ami :)
Sauf que, contrairement à une idée communément répandue, Google ne sais pas tout ! Oh, il a su me dire comment configurer mon environnement pour pouvoir compiler ma propre ROM sous Linux. Là, il existe environ 834657 tutos assez bien faits qui disent comment faire. Problème ? Je tourne sous MacOs... Et là, Google jette l'éponge. Il existe des tutos oui. Mais soit ils sont totalement obsolètes (genre : comment compiler sa ROM Custom sous MacOsX 10.5), soit ils sont gavés d'erreurs (parfois tellement grossières que même moi qui suis une brelle j'ai pu les débusquer !), soit ils aboutissent à fusiller votre environnement de travail (et on a plus qu'à réinstaller MacOsX!). Je passe sous silence le tuto publié sur ce même forum il y a quelques temps et qui est à peine lisible tellement c'est une mauvaise traduction (je sais pas s'il est bon, j'ai pas pu dépasser la huitième ligne !).

La question !
Cette lacune de tutoriel bien fait pour pouvoir construire sa propre ROM Custom sous Mac m'a évidemment fait me poser la question suivante : "Est-il seulement possible de construire sa ROM sous Mac ?".Différents indices m'ont laissé penser que c'était possible... mais encore fallait-il savoir comment.

La réponse
Alors voilà, après m'être bien galéré à suivre les tutos pas bien faits, j'ai essayé de passer en revue tout ce que j'avais sous la main pour me lancer dans l'aventure. Et ben j'y suis arrivé !!!! Et vous savez quoi ? Le plus dingue, c'est que c'est HYPER SIMPLE....
Même moi qui suis nul en informatique (je rappelle que je suis sur Mac !) j'y suis arrivé.

Ma proposition :)
Alors je me suis dit : "SI moi j'ai voulu compiler sous Mac, d'autres veulent sans doute le faire". Et j'ai donc décidé de créer ce thread pour aider ceux qui veulent le faire...
Alors si, comme moi, vous voulez compiler sous Mac directement... suivez le guide... ou plutôt le TUTO :)

AVERTISSEMENT
Ce TUTO est fait pour le fun. Il fonctionne chez moi... Il devrait aussi fonctionner chez vous. Mais en aucun cas je ne saurais être tenu pour responsable si cela ne fonctionne pas, si vous plantez votre Mac, si vous plantez le Mac de votre belle-mère, si vous vous engueulez avec votre belle-mère, que vous déclenchez une guerre nucléaire... Enfin voilà : aucune responsabilité pour les conséquences, petites ou cataclysmiques, du fait que ce TUTO ne marche pas chez vous.
Sachez surtout qu'il vous faudra une machine suffisamment puissante si vous voulez que le build se finisse avant la fin du jour d'après !!!!

ALTERNATIVES
Si vous voulez tenter l'aventure évidemment, vous pouvez.
MAIS sachez qu'il existe une alternative et qu'elle est simple : construire sous Linux avec une machine virtuelle !
Si, jusqu'à une période récente, VMWare était la solution la plus performante, avec les mises-à-jour de Parallels Desktop et de VMWare, je trouve que Parallels Desktop reprend l'avantage... sur des petits détails (reconnaissance de toutes les touches du clavier ; passage d'un bureau à l'autre...).
Il existe aussi une solution de virtualisation gratuite développée par Oracle : VirtualBox.Vous pouvez l'utiliser. C'est gratuit... Ceci étant, il semble que les dernières versions aient intorduit un bridage de l'utilisation des ressources de la machine hôte (donc le Mac) lorsque l'invité (donc Linux) tourne à fond... Résultat, les temps de build s'allongent assez largement... Pour éviter de bridage, je vous conseille d'utiliser la version 4.3.6, qui semble être la dernière à tirer parti de 85 à 90% des ressources de l'hôte... Cette version fonctionne parfaitement avec Debian 8.1/8.2... En tout cas, elle fonctionne parfaitement avec LMDE qui est vraiment une Debian à la sauce Linux Mint (l'une des meilleures distros Linux pour nos besoins).

Quant au système à installer, les distributions Linux basées sur Debian (Linux Mint Debian Edition ou Ubuntu par exemple) sont les plus accessibles aux néophytes... Si vous êtes un poil plus avancé, Debian 8.1 sera parfait. Pour le bureau, puisque vous êtes sous Mac, Mate ou Cinnamon me semblent adaptés à nos habitudes. Si vous voulez, il existe même une distribution comportant un bureau assez proches de MacOS : il s'agit de Elementary.

ALORS : natif ou VM ? Franchement, si vous voulez la facilité, c'est la VM. Bien configurée, la VM compile aussi vite que MacOsX en natif !
Comptez 35 à 40 minutes sur une machine comme la mienne : MacPro "camion" ; Dual Xeon 2.93Ghz (8 coeurs physiques qui passent en 16 threads sous forte charge) ; 40Go de RAM et 2 SSD Intel en RAID 0 sur carte PCI Sonnet Pro.
Pour info, sur mon ancien iMac 21,5 i5 Quade-Core 2.5Ghz avec un SSD et 16Go de RAM il me fallait environ 1h20.

SUIVEZ LE GUIDE
Mais bon, assez parlé !!!!! Place au choses sérieuses.
Commençons par ce qu'il vous faut :)
- 1°) un ordinateur Apple qui fasse tourner MacOs X 10.10 (aka Yosemite) [j'ai testé, cela fonctionne aussi sous 10.8 et 10.9...].
- 2°) de l'espace disque (environ 10Go juste pour les soft à utiliser).
- 3°) une connexion internet digne de ce nom (bon c'est pas obligatoire, mais ça aidera quand même vachement bien !).
- 4°) une maîtrise de MacOS (je n'ai pas vocation à vous apprendre à cliquer et à tenir la souris).
- 5°) une petite connaissance du Terminal...
- 6°) un porte-monnaie bien garni pour acheter tous les softs dont vous aurez besoin (environ 8750€ de softs, mais bon ça marche !).
- 7°) un peu d'humour (pour comprendre que le 6 est de la pure supercherie et que vous ne débourserez pas 1 centime !)
- 8°) une bonne sauvegarde toutes vos données pour le cas où !!!!
- 9°) BEAUCOUP de patience... et être prêt à réinstaller MacOsX pour le cas où !!!!
 
N

NexusPenguin

Membre
Inscrit
20 Septembre 2013
Messages
8
Points
1
  • #2
Bon, vous avez tenu jusqu'ici et vous vous êtes ingurgité mon insupportable blah-blah ?
Félicitations :)
Comme récompense... je vais commencer.

ETAPE 1 : PRE-REQUIS
- Allez créer un compte développeur chez Apple ()
- Allez créer un compte développeur chez Oracle
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !



ETAPE 2 : TELECHARGEMENTS
- 1°) Téléchargez le kit de développement de Java :
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !

ATTENTION : il faut choisir la bonne version ! Cliquez sur "jdk-7u80-macosx-x64.dmg". Il va vous emmener sur une page où vous devrez entrer votre L/P pour pouvoir télécharger. D'où la création du compte en étape 1 !!!

- 2°) Téléchargez Xcode 5.1.1 (10 mars 2014) et XCode 6.4 (30 juin 2015) depuis le site dédié aux développeurs Apple...
ATTENTION : pour avoir accès aux ressources, il va vous falloir le L/P créé à l'étape 1 ! Comme quoi c'est utile :)

- 3°) Depuis le même site, téléchargez les "Command Line Tools (OsX 10.10) for XCode 6.4 (30 juin 2015)
ATTENTION : ne vous plantez pas de version... cela pourrait avoir des conséquences bizarres :)

- 4°) Téléchargez MacPorts
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !

ATTENTION : pensez à bien prendre la version pour MacOsX Yosemite... si vous vous trompez, pas grave, ça refusera de s'installer :)



ETAPE 3 : Installer les logiciels
Une fois les logiciels téléchargés, le plus long est fait...
Il suffit maintenant de les installer...
Je pense que l'ordre d'installation importe peu... mais perso j'ai fait dans l'ordre suivant :

- 1°) Installation du jdk 7u80 :
Procédure d'installation classique de MacOS : double clic sur le fichier téléchargé et ensuite double clic sur le paquet dans la fenêtre qui s'ouvre.

-2°) Installation des Xcode :
Double-clic sur le fichier téléchargé et ensuite glisser déposer de Xcode vers le dossier Applications...
Là aussi du grande classique :)
ATTENTION : la copie est assez longue ! Et il faut la faire deux fois : une fois pour XCode 5.1.1 et ensuite une 2ème fois pour XCode 6.4.
ATTENTION 2 : lorsque le 1er XCode a fini de se copier, renommez le donc. XCode 5 pour le 5.1.1 sera, par exemple parfait :) Sinon évidemment, MacOS risque de pas aimer que vous ayez 2 fichiers nommés pareil dans le même dossier :)

- 3°) Installation des Command Line Tools :
Même procédure que pour l'installation de Java jdk 7u80...

- 4°) Installation de MacPorts :
Même procédure que pour l'installation du jdk et des Command Line Tools...
REMARQUE IMPORTANTE : Vous remarquerez que l'installation de MacPorts crée un dossier à la racine de votre disque dur. Ce dossier s'appelle "opt". Repérez-le, il nous sera TRES utile par la suite :) Et si vous le voulez, ouvrez-le et assurez-vous qu'il contient bien le dossier "bin" et le dossier "sbin"...
 
N

NexusPenguin

Membre
Inscrit
20 Septembre 2013
Messages
8
Points
1
  • #3
Vous êtes toujours là ? Super...
Le plus long est fait. Il faut maintenant passer au plus dur.
Qui, vous allez le voir, est d'une simplicité confondante !!!!

ETAPE 4 : Lancer XCode :
Il faut maintenant lancer XCode.
Ma recommandation :
- commencez par lancer XCode 5.1.1 (soyez patient, c'est long...). Une fois que c'est lancé, vous pouvez le quitter :)
- ensuite lancez XCode 6.4 (là aussi c'est long ! Un peu de patience...).

Une fois que c'est lancé, allez dans les "Préférences" et cherchez "Locations" dans les incônes du haut... Un indice : c'est la dernière à droite et elle ressemble à un levier de vitesse :)
Dans la fenêtre qui apparaît, assurez-vous que Command Line Tools (la dernière ligne) indique bien les CLT 6.4.


ETAPE 5 (obligatoire...) : Installer gsed
XCode contient tout ce qu'il faut pour pouvoir procéder à la compilation de votre ROM.
Mais, si les outils sont bien là, la commande qui va lancer la compilation ne sait pas où aller les chercher.
C'est pourquoi il faut installer gsed, qui va en gros permettre de savoir où se trouvent ces outils.
Rassurez-vous, c'est très simple.

Il suffit d'ouvrir un Terminal (allez dans votre dossier "Applications", puis cherchez "Utilitaires" et là, vous trouverez le Terminal).
Dans la fenêtre qui s'ouvre entrez le code suivant :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
ATTENTION : Lors de l'installation, il va vous demander votre mot de passe. Entrez-le.
L'installation devrait aller très vite : les outils sont déjà là, il suffit de faire en sorte que la commande les trouve :)


ETAPE 5 (OPTIONNELLE) : Installer ccache
ccache est un petit programme qui vous permet de mettre en cache les fichiers de compilation.
Euh... d'accord, mais ça sert à quoi ?
Ben en gros, lorsque vous allez compiler la même ROM à plusieurs reprises (pour avoir les dernières versions), cela divisera le temps de compilation par 3 ou 4 :)
L'étape est donc optionnelle, mais recommandée :)
Alors comment faire ?

1°) ouvrez un "Terminal"... application que vous trouverez dans le dossier "Utilitaires" situé dans votre dossier "Applications"
2°) lorsque la fenêtre est ouverte copier/coller la ligne suivante :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
3°) entrez votre mot de passe d'utilisateur
4°) attendez quelques secondes...

Fermez la fenêtre du Terminal.


ETAPE 6 : INSTALLER "REPO"
Il faut maintenant installer "repo".
C'est quoi "repo" ?
C'est simple : c'est le programme qui va vous permettre par la suite de récupérer automatiquement les fichiers sources dont vous aurez besoin pour compiler votre ROM. Bref, un indispensable...
Alors comment faire ?
Là aussi, c'est simple :

- 1°) ouvrez une nouvelle fenêtre de "Terminal"
- 2°) copiez-collez la ligne suivante :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
- 3°) fermez la fenêtre du Terminal.
- 4°) si vous voulez, quitter "Terminal".
 
N

NexusPenguin

Membre
Inscrit
20 Septembre 2013
Messages
8
Points
1
  • #4
ETAPE 7 : "LINKER" REPO
Cette étape est très importante... mais très simple :)
Elle consiste à faire en sorte que, à chaque fois que vous en aurez besoin, la commande "repo" sera disponible.
Pour ce faire il suffit d'aller dans votre dossier de départ (celui qui a l'icône de la maison).
Vous remarquerez qu'il y a un nouveau venu : un dossier "bin" (celui que vous avez créé à l'étape précédente en entrant mkdir ~/bin).
Ouvrez le dossier en question. Il contient un seul élément nommé "repo".
Un clic droit sur cet élément et sélectionnez : "copier".
Ensuite, aller dans le dossier "bin" qui est dans le dossier "opt créé par l'installation de MacPorts et faites un clic-droit puis sélectionnez "coller l'élément".
Le fichier "repo" est maintenant aussi dans le dossier "opt/bin"...


ETAPE 8 (et dernière) : SELECTIONNEZ LES BONS CLT
Bon, maintenant que tout est fait, vous seriez prêts à produire votre propre ROM... si ce n'était pas pour un "petit" détail.
Vous aurez sans doute remarqué que nous avions XCode 5.1.1 et XCode 6.4.
Or, les deux font à peu près la même chose et vous vous demandez sans doute pourquoi...

L'explication vient maintenant.

XCode 5.1.1 permet de faire le build de la ROM... mais si vous voulez vous servir de MacPorts, il faut avoir la versions 6.4 de XCode. Si XCode 6.4 n'est pas installé et le Command Line Tools 6.4 ne sont pas sélectionneés dans les Préférences de XTools, MacPorts vous dira que la version de XCode installé est trop ancienne... et vous demandera d'installer au moins 6.1.

Le souci est que les CLT de la version 6.4 de XCode ne contiennent pas les frameworks (moi non plus je sais ce que c'est... inutile de demander !) nécessaire pour que la compilation de la ROM aboutisse.

La parade est simple : il suffit d'ouvrir XCode (6.4 ou 5.1.1 cela n'a aucune importance !), d'aller dans les "Préférences", de chercher "Locations" dans les icônes des préférences (dernière icône en haut à droite en forme de levier de vitesse) et d'aller dans la dernière ligne de la fenêtre qui apparaît et de sélectionner "Command Line Tools : 5.1.1" dans le menu déroulant.

Vous pouvez maintenant quitter XCode et l'oublier... sauf si vous voulez vous servir à nouveau de MacPorts... auquel cas il faut remettre les CLT 6.4, installer votre logiciel avec MacPorts et ensuite resélectionner les CLT 5.1.1...





VOILA : il vous reste à prendre les sources de la ROM de votre choix et de lancer la compilation :)

Le tuto est long ? Oui, il est long... mais en fait c'est très simple. Et, une fois les téléchargements terminés, comptez environ 5 à 10 minutes pour faire le tout : 5 minutes si vous maîtrisez bien l'environnement MacOs, 10 dans le cas contraire...
Mais si vous êtes ici, j'imagine que vous serez presque tous à 5 minutes et pas à 10 :)
 
Alx31

Alx31

Active Member
Inscrit
11 Novembre 2012
Messages
6 038
Points
36
  • #5
Mdr bien joué... On va dire que c'est une ébauche ? xD
Merci pour le partage :)
 
N

NexusPenguin

Membre
Inscrit
20 Septembre 2013
Messages
8
Points
1
  • #6
Hello Alex,

Bon, on va dire que finalement, pour un premier post sur PhonAndroid, je me défends...
Même si, au vu du nombre incroyable de réponses, mon post n'intéresse apparemment personne :)

A+
 
GN ONE FR TEAM

GN ONE FR TEAM

Member
Inscrit
9 Septembre 2013
Messages
588
Points
16
  • #7
Salut merci pour ton partage
Meme si effectivement beaucoup de dev utilise linux ou Windows ca peut intéresser certain @+
 
AngusArtCom

AngusArtCom

Membre
Inscrit
14 Septembre 2015
Messages
11
Points
1
  • #8
Bonjour,
Bah moi je trouve ça très intéressant comme tuto, ça rappelle que le Mac est équipé d'un noyau de la même famille d'OS.
Je n'ai qu'un MacBook pro 17 pouces sous 10.8 mais ça doit marcher aussi ! À condition d'être plus patient pour les temps de compilation.
Je ne sais pas encore si je vais me lancer dans la même aventure parce qu'il faut faire une image de l'existant avant de commencer. C'est quand même aussi une histoire de sous puisqu'il faut avoir un minimum de matériel pour ne pas se retrouver en galère.
Merci ça m'a bien plu et j'ai tout compris !
 
N

NexusPenguin

Membre
Inscrit
20 Septembre 2013
Messages
8
Points
1
  • #9
Re: [TUTO] Je veux faire mes builds sous OsX Yosemite ou El Capitan...

Hello,

Oui sur un portable ce sera plus long :-(

Pour info : ce tuto doit fonctionner aussi sous El Capitan.
J'avais fait rapidement un test lors de la rédaction du tuto qui correspondait à la sortie de El Capitan je crois.

Bon builds...

A+
 
B

Brecke

Membre
Inscrit
28 Juin 2015
Messages
2
Points
0
  • #10
Bonjour, désolé du petit up mais ça ne marche pas sous El Capitan 10.11.1
Xcode 5.1.1 ne veut pas s'ouvrir :
Impossible d’ouvrir cette version de l’application « Xcode.app » avec cette version d’OS X. Vous avez « Xcode.app » 5.1.1.

A bientôt
 
N

NexusPenguin

Membre
Inscrit
20 Septembre 2013
Messages
8
Points
1
  • #11
Salut,

En effet, cela fonctionnait sur les versions "Pre-Release" de El Capitan.
Mais cela ne fonctionne plus sous les versions "finales"...

Si tu savais ce qu'Apple fait...
Par exemple : ma carte PCI USB 3.1 qui fonctionne parfaitement sous Yosemite ne monte plus rien sous El Capitan...
Régression désormais tout à fait confirmée :-(
Je me tâte de plus en plus pour essayer d'avoir un Mac Pro "Apple Free" c'est-à-dire bootant sous Linux et faisant tourner mes softs sous VM dans Windows !

A+
 
Haut Bas