Tabla de contenido:
- Espera, ¿por qué demonios estás haciendo esto?
- Enlaces que necesitarás
- OK, ¿ahora en qué demonios estás haciendo esto?
- Entonces, ¿cómo lo hiciste?
- Hora de parpadear
- Ponlo junto y ¿qué tienes?
- La línea de fondo
No soy un codificador. Apenas sé G por G ot, y no puedo recordar cuántas veces me he preguntado por qué adb no funcionará, solo para descubrir que olvidé activar la depuración de USB, nuevamente. Tengo Linux en una caja aquí, pero solo lo uso cuando estoy de humor para lanzar media docena de preguntas a Jerry en el lapso de cinco minutos.
Además, no tengo barba para el cuello.
Entonces, ¿qué estoy haciendo en el amplio y amplio mundo de los deportes descargando Xcode en mi MacBook Air? Hasta ahora he ignorado conscientemente, especialmente dado que he pasado 24 horas tratando con un niño enfermo, preocupándome por un amigo enfermo y preparándome para un probable huracán, ¿ignorando en gran medida mi trabajo real?
Yo, aparentemente, tengo un problema con el flasheo. Y así es como recientemente me encontré poniendo el sistema operativo incipiente de Mozilla, también conocido como "Gecko", en el Samsung Nexus S.
Bienvenido al proyecto Boot to Gecko.
Como dije, no soy un programador. Pero me gusta meterme con las cosas. Y logré hacer esto, como a mis hijas les gusta decir, todo … por … mi … yo. Y tú también puedes.
Espera, ¿por qué demonios estás haciendo esto?
Este es el primero de una serie que llamaremos nuestros Proyectos de fin de semana. Cosas que de otro modo no podrías intentar. Pero si podemos hacerlo, tú también puedes.
Dicho esto, hay un par de cosas que no voy a hacer por ti aquí. Esto no va a ser una visión detallada de cómo construir y actualizar el proyecto Boot to Gecko. Te voy a dar los grandes rasgos de mi experiencia. Mozilla tiene una excelente documentación, y realmente deberías leerla si vas a intentar esto. (También es probable que no logre hacer todo bien en la traducción).
La otra cosa que no voy a hacer es señalarle la construcción de otra persona, que se puede flashear a través de ClockworkMod. Puedes buscar eso por tu cuenta. Lo que quería hacer era compilar, construir esto por mi propia inflexión al teléfono.
Y eso fue lo que hice.
Enlaces que necesitarás
Google es tu amigo. Una simple búsqueda de "B2G" encontró todo lo que necesitaba.
- Mozilla - Arranque en Gecko (para la explicación no nerd de B2G)
- B2G en la red de desarrolladores de Mozilla (aquí es donde comienza el verdadero trabajo)
- Construyendo e instalando Boot to Gecko
OK, ¿ahora en qué demonios estás haciendo esto?
Para construir desde cero, según Mozilla, necesitas una máquina Mac o Linux. Tengo los dos aquí. Pero las instrucciones de Mac simplemente parecían más fáciles. (No hay vergüenza en eso, ¿verdad?) Pero eso también tiene sentido. Lo más probable es que si está ejecutando Linux, puede instalar fácilmente todas las herramientas que Mozilla enumeró. ¿Yo? No tanto. Entonces Mac lo fue.
Realmente fue tan simple como esto para mí: instale Xcode desde la Mac App Store, luego inicie Terminal y ejecute algunos comandos. He hecho suficientes ajustes en Android para estar bien con eso. Mozilla tiene un gran script que instala todo lo que necesitas. Luego sincroniza el repositorio git, compila el código y lo actualiza a su dispositivo Android como cualquier otra ROM personalizada. (Y Mozilla también tiene un guión para esa última parte, lo que facilita aún más las cosas).
En cuanto al dispositivo de destino para el que está creando, tiene opciones. Mozilla los dividió en tres niveles:
- Nivel 1: Otoro (algún tipo de dispositivo de desarrollo que usa Mozilla); Pandaboard; un emulador ARM o x86; o el escritorio. No es lo que estaba buscando.
- Nivel 2: Samsung Nexus S y Nexus S 4G. Siento un tema común aquí. Teléfonos fácilmente desbloqueables, y Mozilla dice que estos están recogiendo cambios "secundariamente". Tengo un Nexus S por ahí, así que eso es lo que busqué.
- Nivel 3: Samsung Galaxy S2 y Galaxy Nexus. La gente está jugando, pero el Nivel 2 es tu mejor opción.
Entonces esa es la mitad de la batalla. Ahora para descargar, compilar y flashear B2G.
Había un par de opciones allí también. Una es construir en una caja de Linux. Mozilla detalla todas las herramientas necesarias que necesitará, pero no le muestra dónde obtenerlas. Yo siendo un Linux n00b, eso es algo malo. Para la mayoría del resto de los nerds que usan una distribución u otra, debería ser menos importante.
La otra opción es construir en una Mac. Y Mozilla lo hizo estúpidamente simple.
Entonces, ¿cómo lo hiciste?
Nuevamente, hice esto en una Mac. Y realmente solo había unos pocos pasos básicos que incluso mi cuello sin barba podía seguir.
- Tuve que instalar Xcode, que es el entorno de desarrollo para Mac.
- Instalé Homebrew para Mac.
- Ejecuté un script que proporcionó Mozilla, que verificó los otros requisitos previos y me solicitó que los instalara si fuera necesario.
En este punto notaré que las instrucciones de Mozilla parecían indicar que todo lo que tenía que hacer era instalar Xcode y luego ejecutar el script; el resto se cuidaría solo. Pero primero tuve que instalar Homebrew solo. No estoy seguro si eso se debe a algo que hice (o no), o qué. Pero así fue como me funcionó.
A continuación: Obtenga todo el código de Git. Eso fue tan simple como copiar y pegar otras pocas líneas en la Terminal. Guay.
Entonces: compilar.
Ahora, estos últimos pasos tomaron un tiempo. No estoy seguro de cuánto tiempo. Me fui e hice cosas. Hizo un poco de café. Hizo algunos recados. Escribió un libro Me tomó un tiempo en mi pequeño MacBook Air. Yo esperaba que. Este no es un proyecto demasiado difícil, pero tampoco es demasiado rápido. Dejé que las cosas siguieran su curso y terminé con una imagen flasheable en el nuevo directorio "B2G" de mi MBA.
Hora de parpadear
Asi que. Es hora de agarrar ese Nexus S. Necesitará tener un gestor de arranque desbloqueado, por supuesto, y debe estar ejecutando Android 4.0 Ice Cream Sandwich. (Mozilla no dice nada sobre Jelly Bean, pero también lo hice funcionar. No es demasiado sorprendente).
Encienda el teléfono en modo fastboot y conéctelo. Nada que no hayamos hecho antes con Android, correcto /
Ahora, de nuevo, Mozilla ha hecho esto realmente fácil. No me he molestado en arreglar mis variables de ruta, por lo que adb y fastboot normalmente viven dentro de una carpeta de mi SDK de Android, y eso es todo. Puedo lidiar con eso. Mozilla ha incluido inteligentemente todo eso. Pero aún mejor es que hizo un pequeño guión que hace todo. Comprueba si el gestor de arranque está desbloqueado. Borra todas las particiones que necesita borrar. Luego muestra las nuevas imágenes. Completamente práctico. Eso no es nada que no podría haber hecho yo mismo, pero no soy nada, si no ocasionalmente perezoso. Saludos, Mozilla.
Reiniciar, y, boom. Hemos arrancado a Gecko.
Ponlo junto y ¿qué tienes?
Y ahora, por los frutos de nuestro trabajo.
La línea de fondo
Así que ese es el arranque de Mozilla a Gecko en un Samsung Nexus S. No es un mal pequeño proyecto, en realidad. Tomó un par de horas, un Nexus S en funcionamiento y algo de espacio en el disco duro, pero no fue demasiado exigente para el cerebro. Una vez que lo hayas flasheado en el teléfono, puedes hacer una copia de seguridad usando recuperaciones de Android personalizadas, luego ir y venir como quieras.
Le daría a esto un 6 sobre 10 en la escala de dificultad, solo porque realmente no sé lo que estoy haciendo cuando se trata de compilar código. Pero sigo las instrucciones bastante bien, y Mozilla hizo las cosas agradables y fáciles. Este es uno que puedes intentar por ti mismo.
Podemos ganar una comisión por compras usando nuestros enlaces. Aprende más.