[TuAndroid Semanal #5] Apache 2.0 vs GPLv2

Android es un sistema operativo que se caracteriza por capacidad de personalización, opciones y sobretodo por ser “libre”. En ocasiones hemos escuchado las siglas AOSP (Android Open Source Project) en disímiles circunstancias, lo cual nos confirma que el sistema que amamos y usamos día a día está abierto para que cualquier desarrollador haga uso de sus sources para compilar su propia versión de Android. Sin embargo puede que os hayáis percatado que puse la palabra libre entre comillas, y lo hice con toda intención, Android puede ser tan libre como los desarrolladores lo deseen, pero ¿por qué? Empecemos un poco antes para poder entenderlo mejor.

¿Qué es el software libre?

El software libre es un tipo de software que ofrece al usuario la libertad de copiar, usar, distribuir, estudiar, modificar y mejorar software existente desarrollado por otro usuario. Es decir, se respeta la libertad de la comunidad para realizar estas acciones y mejorar el código del software mediante el aprendizaje colectivo.

El software libre se encuentra apadrinado bajo la GPL de GNU (General Public License) o Licencia Pública General que garantiza que los desarrolladores, fabricantes, usuarios y cualquier organización tenga acceso a la funcionalidad del software que se encuentre bajo esta licencia. Este projecto aboga que cada usuario y desarrollador debería tener la libertad de realizar cambios en el software, permitiendo de esta manera que cada usuario aprenda de otro sus métodos, manera de programar y los use en beneficio propio y de la comunidad. Genial, ¿verdad?

El software propietario por otra parte implica que aunque muchos usuarios descarguen la aplicación del desarrollador, solamente él tiene acceso al código de la misma y por ende es su decisión si permite que usted lo copie o comparta. Este obstáculo impide a otros usuarios modificar el programa y corregir errores. Estas decisiones pueden constituir un impacto negativo en el desarrollo de la informática del futuro, dado que cada día es más necesaria la constante interacción con los usuarios. Aunque dejaré que sea el/la lector/a quien de la última palabra al respecto.

¿Qué tiene que ver todo esto con Android?

Android no se encuentra licenciado bajo la GPL, sino bajo Apache 2.0 la cual difiere de la primera. Apache es una licencia más permisiva y no posee los mismos requerimientos que la GPL. Pero, ¿esto significa que Android no es libre? Nada que ver, significa que es tan libre como los fabricantes lo deseen. La licencia Apache no requiere que usted libere su código fuente al público, aunque usted está en la total libertad de hacerlo si desea, además que trabajos futuros bajo la licencia Apache no comparten la misma licencia, ¿cómo? Más abajo le explico mejor.

Así que mientras la GPL obliga al desarrollador a compartir su código con la comunidad (en GitHub por ejemplo), Apache permite a los fabricantes tomar, por ejemplo, el código fuente en AOSP y desarrollar su propia versión de Android, crear una capa modificada y añadir lo que deseen, y luego mantener el código fuente cerrado para no permitir su visualización, ejemplo de esto es MIUI, TouchWiz (ahora Samsung Experience), LG UX, entre otras.

Por otra parte, no todo en Android se encuentra bajo la licencia Apache. Ciertamente el framework de Android se encuentra bajo esta licencia, sin embargo el kernel (núcleo) al estar basado en el Linux Kernel significa que el código fuente del mismo tiene que ser compartido para su visualización y modificación, lo quiera o no el fabricante, debido a que Linux al ser software libre está licenciado con GPLv2. Que el kernel de Android esté basado en Linux ayuda mucho a los desarrolladores de custom ROMs porque poseen acceso al kernel “original” proveído por el fabricante.

Tomado de Twitter

Cabe destacar que una licencia no es un contrato, esto obliga a regirse por la misma dado que constituye un incumplimiento de ley del copyright, es decir que si un desarrollador o fabricante decide no aceptar los términos y condiciones de la GPL, no tienen derechos a distribuir software bajo la licencia GPL. Teniendo en cuenta que muchos fabricantes lo hacen, están incurriendo en una violación de la ley.

Mientras el kernel de Android esté basado en Linux, los fabricantes tienen que compartir su código fuente en cuanto el terminal en cuestión sea lanzado al mercado, no hay excusas posibles, es obligatorio.

Conclusiones

Android no es completamente “libre”, los fabricantes deciden cuanto dejan libre para el público, cosa que no sucede con AOSP ni con las custom ROMs aunque estén regidas Apache, los desarrolladores siempre hacen público su trabajo en GitHub para que otros lo estudien y aprendan del mismo.

Nadie niega que el software libre en muchas ocasiones carece de cierto nivel al compararse con el propietario, con el primero no se busca ganancia alguna, no es el objetivo del desarrollador, y aunque con el segundo el propietario puede “proteger” su capacidad intelectual, en la mayoría de los casos, es la remuneración lo que se desea. No afirmo que esto sea incorrecto, cada desarrollador posee la libertad de decidir si su software será para la comunidad con total libertad, o para la una comunidad con billetes preparados.

De cualquier manera, el kernel de Android sí está basado en software libre y aquí si no hay decisiones que valgan, sino obligaciones. No son pocos los fabricantes importantes como Xiaomi que son reincidentes violadores de una licencia pensada para la comunidad y no para el lucro de algunos.

Sin embargo, me gustaría leer tu opinión al respecto

Déjanos tu comentario

Como siempre les pido que sean consecuentes y respetuosos con los comentarios, nada de ataques personales en contra de los Moderadores, Editores, Admnistradores ni otros lectores. De más está decir lo que pasa con los comentarios fuera de regla.

Siéntete libre de contactarme

Estaré fuera de La Habana por un par de días (para otra provincia) así que si si desea contactarme puede hacerlo, aunque espere un poco de retraso debido a que no me será posible conectarme. Pido disculpas si causa algún incoveniente. 

Comparte en las redes sociales

6 comentarios

Ir al formulario de comentarios

    • Mandrake el Mago on 16 abril, 2018 at 9:02 am
    • Responder

    Reincidentes violadores de esta licencia son casi todos los grandes fabricantes no solo Xiaomi, Samsung es bien reacia, diria que mas que ninguna. Las actualizaciones demoradas de una version de Android para otra es su expresion mas acentuada, y lo sufre el cliente de estas grandes marcas, principalmente los dueños de modelos de gama baja-media, los de gama alta todavia tienen algo mas de soporte.
    Por cierto me acaban de informar que esta disponible via OTA la actualizacion a MIUI 9.5.8.0 del Redmi Note 4 Snapdragon, pesa 1.3 GB.

    1. Las actualizaciones no tienen nada que ver con esto, Samsung presenta las sources de sus kernel con bastante rapidez, en eso discrepo totalmente contigo, las actualizaciones lentas, rápidas o nulas no dependen en ninguna medida de estas licencias, mucho más teniendo en cuenta que menos el kernel, todo lo restante de Android está basado en Apache.
      Las sources del Redmi 4X estuvieron casi un año sin aparecer, eso es una violación descarada.
      En cambio Samsung puso a disposición de la comunidad las sources del S9 y S9+ en menos de un mes.
      Que Samsung no actualice sus modelos de gama baja-media o cualquier otro fabricante, depende en gran medida de la importancia, soporte técnico y la capa excesivamente modificada que esos terminales posean y no de una violación de ninguna licencia.
      PD: las sources de Nougat del Redmi Note 4 SD aparecieron hace poco menos de una semana, solamente estaban las de Marshmallow.
      PD2: las sources de Oreo del Mi A1 estuvieron casi 4 meses sin aparecer.
      Esto hiere el desarrollo de estos terminales, obviamente los que posean SoCs MediaTek, se encuentran excentos de toda culpa dado que MediaTek ha decidido no regirse por esto y sus kernels son código cerrado.
      PD3: sí, la actualización está disponible desde el día 11 de abril, ¿qué trae de nuevo?

        • Luis Fernando Ceballos Sori on 20 abril, 2018 at 2:25 pm
        • Responder

        Patrick395x, necesito que subas una publicaci’on en la que hagas referencia a NovaDroid y nos expliques a mi y a dos o tres más personitas que visitan el blog la respuesta a esta incógnita: A pesar de no tener Google, ¿Se basa en AOSP NovaDroid o No?

        Mis averiguaciones datan de que:
        – NovaDroid, se basa en AOSP, obviamente, que es Android puro, solo que sin Google y con aplicaciones muy utilizadas en Cuba que vienen preinstaladas

        Dinos que sabes al respecto, aunque yo estaré averiguando al respecto, para informarnos mejor del tema y ver si me callo la boca un rato, y esos que me dicen lo contrario igual, ya que ellos dicen que mi criterio es “una broma”

        Pero la gracia que me da es la siguiente: Si no fuese Android puro (AOSP (Android Open Source Project)) ¿Como se le iba a llamar a la capa de personalización de NovaDroid? ¿Tiene fundamento o no mi inquietud?

        Bueno, eso es todo. Saludos.

        1. Lo haré para la próxima semanal, donde mostraré el verdadero AOSP Puro.
          Pero desde ahora te voy diciendo que sí, NovaDroid y como cualquier otro sistema que sea Android ESTÁ basado en AOSP que es el proyecto de código abierto del cual todos los desarrolladores se nutren para hacer sus capas o custom ROMs, ejemplo de estos son básicamente todas las capas personalizadas que hemos visto: LineageOS, MIUI, EMUI, ColorOS, OxygenOS y todas las que se te ocurran.

          “NovaDroid es una personalización del sistema operativo Android, desarrollada a partir del código fuente y adaptada a las necesidades y realidades de la sociedad cubana”
          Esto es lo que dice en el sitio oficial de NovaDroid. Vamos a ponerlo más simple aún, si no está basado en AOSP no es Android, es otra cosa con un kernel Linux, porque el gerrit de AOSP es lo único de Android que es completamente liberado para el público (las sources de Android P no son públicas completamente).
          Recordemos que Android al estar basado en Apache, lo que compiles con AOSP no tiene porqué estar basado en Apache, puede ser GPLv2 y estar íntegramente en GitHub, cosa que ni Samsung, ni Huawei, ni Xiaomi hacen porque sus productos finales no usan ni Apache ni GPLv2, excepto por el Kernel porque no les queda otra salida.
          Me gustaría referirme a NovaDroid como una especie de LineageOS, LineageOS está basado en AOSP, pero graciosamente NO ES AOSP PURO, sino AOSP con características extra como LiveDisplay, Accents, AudioFX y demás. NovaDroid no trae GApps por defecto como LOS, sin embargo trae aplicaciones muy convenientes para la experiencia cubana, pero eso no significa que deje de estar basado en AOSP, lo que lamentablemente no es Android Puro, sino algo más Stock, es un 80-90% Puro dado que no trae muchas aplicaciones preinstaladas y no posee nada de Google.
          Sin embargo, lo ratifico, NovaDroid no es diferente de los firmwares personalizados de otros fabricantes, está basado en AOSP y punto, es ahí donde el código fuente está liberado.
          Saludos y espero haya sido de ayuda.

    • pepe on 18 abril, 2018 at 11:47 am
    • Responder

    tengo entendido que por cosas como esta google quiere desarrollar su propio kernel.

    1. Sí, pero esto será con Fuchsia OS y no con Android

Deja un comentario

Your email address will not be published.