Logo da.androidermagazine.com
Logo da.androidermagazine.com

Weekendprojekt: bygg mozilla's boot til gekko til din Android-smartphone

Indholdsfortegnelse:

Anonim

Jeg er ikke en koder. Jeg kender knap G det fra G ot, og jeg kan ikke huske, hvor mange gange jeg har spekuleret på, hvorfor adb ikke fungerer, kun for at opdage, at jeg glemte at tænde for USB-debugging - igen. Jeg har Linux på en kasse her, men jeg bruger den kun nogensinde, når jeg er i humør til at kaste et halvt dusin spørgsmål til Jerry i løbet af fem minutter.

Jeg har heller ikke en nakkeblær.

Så hvad i den store, brede sportsverden gør jeg med at downloade Xcode på min MacBook Air (husk ikke, at indtil dette forår havde jeg været en Windows-fyr hele mit liv), synkronisering fra Git-repos, kompilering af kode og blinkende et operativsystem Jeg har bevidst ignoreret indtil nu - især da jeg har brugt 24 timer på at arbejde med et sygt barn, bekymre mig om en syg ven og forberede mig på en sandsynlig orkan, i vid udstrækning ignorere mit faktiske job?

Jeg har tilsyneladende et problem med at blinke. Og det var sådan, jeg for nylig befandt mig i at lægge Mozillas nye operativsystem, også kendt som "Gecko, " på Samsung Nexus S.

Velkommen til Boot to Gecko-projektet.

Som jeg sagde, jeg er ikke en koder. Men jeg kan godt lide at rod med tingene. Og det lykkedes mig at gøre dette, som mine unge døtre kunne lide at sige alt sammen … af … mit … selv. Og det kan du også.

Vent - hvorfor fanden laver du det?

Dette er den første i en serie, vi kalder vores Weekendprojekter. Ting, som du måske ikke ellers forsøger. Men hvis vi kan gøre det, kan du også.

Når det er sagt, er der et par ting, som jeg ikke vil gøre for dig her. Dette vil ikke være et detaljeret kig på, hvordan man bygger og blitz Boot to Gecko-projektet. Jeg vil give dig de brede streger fra min oplevelse. Mozilla har nogle fremragende dokumentation, og du burde virkelig læse den, hvis du vil prøve dette. (Jeg vil sandsynligvis ikke undgå at få alt godt i oversættelse.)

Den anden ting, jeg ikke skal gøre, er at henvise dig til en andens bygning, der er flashbar selvom ClockworkMod. Du kan søge på det selv. Hvad jeg ønskede at gøre var faktisk at samle bygge dette på min egen bøjning til telefonen selv.

Og det var det, jeg gjorde.

Links, du har brug for

Google er din ven. En simpel søgning efter "B2G" fandt alt, hvad jeg havde brug for.

  • Mozilla - Boot to Gecko (til den ikke-nørde forklaring af B2G)
  • B2G på Mozilla Developer Network (det er her, det virkelige arbejde begynder)
  • Bygning og installation af Boot til Gecko

OK - hvad fanden laver du det nu?

For at bygge fra bunden af ​​skal du ifølge Mozilla enten bruge en Mac eller en Linux-maskine. Jeg har begge her. Men Mac-instruktionerne så simpelthen lettere ud. (Der er ingen skam i det, ikke?) Men det giver mening også. Chancerne er, at hvis du kører Linux, kan du nemt installere alle de værktøjer, som Mozilla er anført. Mig? Ikke så meget. Så det var Mac.

Det var virkelig så simpelt som dette for mig: Installer Xcode fra Mac App Store, skub derefter Terminal op og kør et par kommandoer. Jeg har gjort nok til at tænke i Android til at være i orden med det. Mozilla's har et fantastisk script, der installerer alt, hvad du har brug for. Derefter synkroniserer du git-arkivet, kompilerer koden og flasher den til din Android-enhed som enhver anden brugerdefineret ROM. (Og Mozilla har også fået et script til den sidste del, hvilket gør tingene endnu lettere.)

Hvad angår den målenhed, som du bygger, har du muligheder. Mozilla har delt dem i tre niveauer:

  • Niveau 1: Otoro (en slags dev-enhed, som Mozilla bruger); Pandaboard; en ARM- eller x86-emulator; eller skrivebordet. Ikke hvad jeg ledte efter.
  • Niveau 2: Samsung Nexus S og Nexus S 4G. Jeg fornemmer et fælles tema her. Nemme låsbare telefoner, og Mozilla siger, at disse henter ændringer "sekundært." Jeg har en Nexus S der ligger rundt, så det er det, jeg gik efter.
  • Niveau 3: Samsung Galaxy S2 og Galaxy Nexus. Folk klinger, men Tier 2 er dit bedste skud.

Så det er halve slaget. Nu skal du downloade, kompilere og blinke B2G.

Der var også et par valg der. Den ene er at bygge på en Linux-boks. Mozilla stave alle de nødvendige værktøjer, du har brug for, men det viser dig ikke, hvor du kan hente dem. Jeg er Linux n00b, det er en dårlig ting. For de fleste af resten af ​​nørderne, der bruger en eller anden distro, burde det være mindre af en ting.

Den anden mulighed er at bygge på en Mac. Og Mozilla gjorde det dumt enkelt.

Så hvordan gjorde du det?

Igen gjorde jeg det på en Mac. Og der var virkelig bare nogle få grundlæggende trin, som selv min ikke-skæggede nakke var i stand til at følge.

  1. Jeg var nødt til at installere Xcode, som er udviklingsmiljøet til Mac.
  2. Jeg installerede Homebrew til Mac.
  3. Jeg kørte et script, som Mozilla leverede, som kontrollerede for de andre forudsætninger og fik mig til at installere dem om nødvendigt.

På dette tidspunkt bemærker jeg, at Mozillas instruktioner så ud til at indikere, at alt hvad jeg skulle gøre var at installere Xcode og derefter køre scriptet; resten ville tage sig af sig selv. Men jeg måtte først installere Homebrew på egen hånd. Jeg er ikke sikker på, om det er på grund af noget, jeg gjorde (eller ikke) gjorde, eller hvad. Men det var sådan det virkede for mig.

Next up: Hent al koden fra Git. Det var så simpelt som at kopiere og indsætte endnu et par linjer ind i terminalen. Fedt nok.

Derefter: Sammensæt.

Nu tog disse sidste par trin et stykke tid. Jeg er ikke sikker på, hvor længe. Jeg gik væk og gjorde ting. Lavede lidt kaffe. Kørte nogle ærinder. Skrev en bog. Det tog et stykke tid på min lille MacBook Air. Det forventede jeg. Dette er ikke et alt for vanskeligt projekt, men det er heller ikke for hurtigt. Jeg lod ting løbe deres kurs og endte med et flashbart billede i den nye "B2G" -katalog på min MBA.

Tid til at blinke

Så. Tid til at gribe den Nexus S. Det bliver selvfølgelig nødvendigt at have en ulåst bootloader, og den skal køre Android 4.0 Ice Cream Sandwich. (Mozilla siger ikke noget om Jelly Bean, men jeg fik det også til at arbejde med det. Ikke for overraskende.)

Sæt telefonen i fastboot-tilstand, og sæt den i. Intet, som vi ikke har gjort før med Android, højre /

Nu igen, Mozilla's gjorde dette virkelig let. Jeg har ikke gidet at fastsætte mine sti-variabler, så adb og fastboot lever normalt inden for en mappe i min Android SDK, og det er det. Jeg kan tackle det. Mozilla's inkluderede smart alt dette. Men endnu bedre er, at det lavede et lille script, der gør alt. Det kontrollerer, om bootloader er låst op. Den sletter alle de partitioner, den har brug for at slette. Derefter blinker det de nye billeder. Helt hands-on. Det er ikke noget, jeg ikke kunne have gjort selv, men jeg er intet, hvis ikke lejlighedsvis lejlighedsvis. Skål, Mozilla.

Genstart og boom. Vi har booting til Gecko.

Sæt det sammen, og hvad har du?

Og nu for frugterne af vores arbejde.

Bundlinjen

Så det er Mozilla's Boot to Gecko på en Samsung Nexus S. Ikke et dårligt lille projekt, faktisk. Det tog et par timer, en fungerende Nexus S og noget harddiskplads, men det var ikke for beskatning af hjernen. Når du har flashet det på telefonen, kan du sikkerhedskopiere det ved hjælp af brugerdefinerede Android-gendannelser, så kom og gå som du vil.

Jeg ville give dette en 6 ud af 10 på vanskelighedsskalaen, kun fordi jeg virkelig ikke ved, hvad jeg laver, når det kommer til at udarbejde kode. Men jeg følger ret ret godt, og Mozilla gjorde tingene pæne og lette. Dette kan du prøve selv.

Vi tjener muligvis en provision for køb ved hjælp af vores links. Lær mere.