Understanding Open Source Licenses in Android: GPL, Apache, and Their Impact on Huawei
The article examines Google's suspension of Huawei support, explains why Android uses the Apache License instead of GPL, outlines common open‑source licenses, discusses licensing implications for Node.js and mobile ecosystems, and highlights recent licensing controversies affecting developers.
Recently, the United States imposed restrictions on Huawei, and on May 20, 2019 Google announced a suspension of support for certain Huawei services. This article, originally from the "奇舞周刊" newsletter by Liu Guanyu, a senior front‑end engineer at 360, explores the impact of this decision on both Huawei and the open‑source community.
Android and Open Source Licenses – Open‑source software allows free access to source code, but various licenses govern usage and distribution. Linux, the foundation of Android, is licensed under GPLv2, which requires derivative works to also be open‑sourced. However, Android itself adopts the Apache Software License (APL), a business‑friendly license that does not enforce source‑code disclosure for user‑space components. Google mitigated GPL’s “viral” effect by moving many services (e.g., Gmail, Maps, YouTube) to user space via a Hardware Abstraction Layer (HAL), keeping the kernel GPL‑covered while allowing proprietary user‑space applications.
The suspension mainly affects user‑space services, which have limited impact on Chinese users due to strong domestic Android ecosystems, but could significantly affect overseas Huawei users who rely on Google services.
Common Open‑Source Licenses – Beyond GPL and APL, the article lists other popular licenses such as MIT, BSD, ISC, and explains their obligations and liabilities. It references resources like Ruanyifeng’s translation of Paul Bagwell’s license selection guide, Phodal’s summary of complex cases, and GcsSloop’s scenario‑based license chooser.
A table summarizes several mainstream licenses and example software that use them:
License
Software
MIT
babel, .NET Core, Rails, ThinkJS
GPL
Bash, GIMP, Potrace
APL
AOSP
License Coverage – When initializing a Node.js project, npm defaults to the ISC license, leading many Node.js libraries to adopt ISC or the more permissive MIT license. Developers must be aware that using a library under a stricter license can impose constraints on their own software, similar to exposing a private class as public.
Appendix: Recent License‑Related Events
Facebook’s dispute over the BSD+Patents license for React Native.
Redis Modules changing its license.
MongoDB’s license modification.
Oracle JDK 11 switching to a commercial license.
Additional links to original sources and further reading are provided at the end of the article.
360 Tech Engineering
Official tech channel of 360, building the most professional technology aggregation platform for the brand.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.