无技术不法律
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第3章 操作系统——思维母体

法律要点 开源与刷机引发的版权侵权

操作系统是当下最重要的软件之一,毕竟它是其他多数软件的工作环境,也往往只有极具实力的机构才能完成操作系统的开发,并且围绕操作系统搭建生态环境,因此操作系统软件聚集了大量的商业资源和利益,加之很多操作系统为了开放生态都用了开源策略,将源代码一定程度上开放授权,由此便引发一系列后续使用中的法律问题。此外,不少商业机构为了获利,在没有能力自建操作系统的情况下,索性直接破解、替换已有的操作系统,此举也会带来包括侵权、不正当竞争甚至刑事犯罪等问题。

前面我们介绍了软件,而操作系统也是一个软件,如果说软件是计算机的灵魂,那操作系统就是灵魂中的灵魂了,所以我们有必要单独介绍一下操作系统的基本原理,以及与之相关的法律问题。

为了方便介绍,我们就以大家最耳熟能详的PC端的Windows和移动端的安卓(Android)两个操作系统作为例子,同时也会介绍一下跟操作系统密切相关的一项技术——ROOT权限。

如果你不知道操作系统是做什么的,这里有一个可能不算精准但是比较形象的类比:电脑或是手机硬件就相当于一个毛坯房,单纯的钢筋、水泥、混凝土盖出来的毛坯房,显然住不了人。如果想住人,首先要“硬装”,包括铺设水电管路、煤气、网络等,操作系统就可以简单地理解为房子的硬装,没有硬装,房子的基本功能是没法实现的,没有操作系统,计算机硬件也是干不了活的。

有了硬装之后,接下来就可以往里面放家具,比如灯具、电视机、沙发、电冰箱等这些东西,也就是“软装”,这一步相当于在操作系统安装那些第三方的应用软件,有了应用软件之后,电脑这所房子的精装修就算完成了,接下来你就可以拎包入住,正常地使用电脑的各项功能。

硬件=毛坯房

操作系统=硬装

各种应用=软装

操作系统是一个软件,但是它应该属于世界上最复杂、难度最高的软件之一,因为它需要在硬件和应用软件之间起到一个桥梁和枢纽的作用。要了解操作系统,我们需要先了解操作系统大致的一个历史演进。

最早的最古老的操作系统叫Unix,它的生命力非常顽强,到现在还在大规模地使用。Unix主要是一个商用的操作系统,在它的基础上后来慢慢地借鉴衍生出了一个新的操作系统叫Linux,这也是一个大名鼎鼎的操作系统,Linux更偏重走开源路线,就是源代码开放并且主打免费。所以简单理解为Unix强调版权、强调收费,属于“copy-right”一派,Linux强调开源、强调免费,属于“copy-left”一派。

这两个操作系统在初期的使用界面基本上是面向专业人士,通过输入一些命令行来控制和操作电脑。我们普通用户没有技术背景很难上手,所以才有了两个商业天才,乔布斯和比尔·盖茨,他们想到把操作系统变成一个视窗的形式,所有的操作都在一个个窗口中以点按、滑动的方式完成,非常的直观易用,所以就诞生了Mac OS和Windows以及安卓。

至此,操作系统开始在普通大众中间普及起来,这就是为什么Mac OS和Windows能成为操作系统领域的霸主。当然现在进入移动互联网时代,更重要的是依赖手机,所以在手机端有了iOS和安卓两大阵营。

Unix、Linux、Mac OS、Windows、iOS、安卓互相之间其实也是剪不断理还乱的关系。如Linux大量地借鉴了Unix,安卓的内核就是Linux,Mac OS以封闭的操作系统为人所熟知,实际上有资料显示其也是基于Unix开发出来的,所以它们互相之间有很多的关联和沿袭的脉络。

操作系统的演进

以上算是操作系统的背景知识,接下来我们要把操作系统详细拆解开来深入了解一下。

操作系统主要是分四层架构出来的,首先顶层就是我们平时看到的操作系统自带的一些应用。以安卓为例,系统自带的基础性应用包括短信、日历、浏览器、通信录等,这些构成了安卓系统的最上层,也是我们最频繁接触到的一层。

再往下一层是应用程序框架,是给开发人员用的,如果你想开发在安卓环境下能够跑起来的一些应用程序,或者是你想把安卓自带的一些应用程序做一些改头换面,就要用到这些技术性的框架。形象化一点可以把框架理解成为水泥、砖瓦,这些东西是盖房子用的物料,开发人员编写应用程序就像是盖房子,需要用到这些基础材料。

再往下一层是“系统运行库”,这个部分又包括“系统库”和“安卓运行时”,简单理解就是一些更底层的程序模块,主要是用来调用一些比较基础性的系统功能。比如,一个视频播放软件,它要完成视频文件的读、写、播放,都要调用到系统库的一些函数。“安卓运行时”则主要是涉及系统的一些进程管理。

最底层就是业内所熟知的Linux内核了,内核包括两个部分,一个部分是硬件的驱动模块,如一个手机,有相机、显示屏、Wi-Fi模组等,这些物理硬件要有专门的驱动软件去给它们发指令才能运行,而基础硬件驱动模块就是由Linux内核搞定的。

再有一个很重要部分的就是Linux内核提供进程管理、文件管理、网络管理、系统安全、系统权限管理,这些都是非常关键的系统功能。我们这里选取其中一个比较重要的概念介绍一下——进程管理,这个概念在操作系统学科中也非常重要。

用过Windows的朋友应该接触过进程管理,当你按住Ctrl+Alt+ Delete键,就可以呼出“任务管理器”,里面就会罗列出内存当中跑的所有进程。我们打开“任务管理器”可以将一个进程结束掉,这样就可以使通过窗口无法关闭(没有响应)的程序强制退出。

在Mac OS系统中,也有同样的系统应用叫作“活动监视器”。

能够做到这一点是因为进程是操作系统在内存中开辟的一个个专用通道,每一个通道对应一个运行中的应用程序。应用程序在运行的时候,要调用CPU的计算能力同时也要在内存里占用一定的资源等,如果没有一个很好的管理模式就乱套了,而且很多时候多个应用程序是同时打开的,要实现它们各自使用相应的CPU和内存资源互不冲突,就要给每一个程序单独在内存里面开辟出来一个进程。

打个形象的比方,应用程序就好像是民航客机,这些飞机每天几百架上千架同时在天上飞,为什么不会撞到一起呢?因为每一个飞机都有空管局给它设置好了航道,飞机都只在自己的航道里飞就不会相撞了。进程也是一样的道理,操作系统给这些应用程序在内存中划出一条条航道,它们就可以各自运行互不干扰。

进程的概念在法律人处理一些“黑灰产”案件时都有可能碰到,如游戏外观、群控、数据劫持等,因为这些技术往往都是通过对内存做手脚来实现一些特定的目的。

ROOT和越狱

开机进入Windows系统的时候,你会发现首先要输入密码,但是密码对应的账号上面有的时候会标“user”,有的时候会标“Administrator”,什么意思呢?

“Administrator”代表了你以管理员的身份进入操作系统,这时你使用过的文件、安装的应用都会在下次开机时保留,但如果以“user”身份登录,操作完退出之后系统不再保留之前的使用记录。

所以从这一点上就看出来操作系统是一个分不同用户权限的系统,那么是不是“Administrator”权限在Windows里面就是最大了呢?还不是。你会注意到有些时候我们要安装一些文件时系统会提示:“需要TrustedInstaller权限才能执行操作”。

“Trusted”就是被信任的意思,“Installer”就是安装者或者说发起人的意思。那么这几个权限谁大谁小呢?在Windows操作系统里面,最高一级的权限叫“TrustedInstaller”,再往下是“Administrator”管理员,然后往下是user(游客)。

每个操作系统原理都差不多,都会给用户分级,在安卓系统中,类似于Windows里面的“TrustedInstaller”就叫作“ROOT”权限了。

前面我们介绍过安卓是基于Linux内核开发出来的,Linux自己系统中的最高用户权限就叫作“ROOT”权限,所以就一直沿用到了安卓系统。拥有ROOT权限,相当于在安卓系统里面你就是老大,就如同皇帝一般。

这里列举了六条ROOT用户的权限:

1.对系统所有应用进行读写操作;

2.修改系统的默认存储位置,修改参数;

3.安装在系统原本受限制的外部程序或应用;

4.控制各应用程序的开启或关闭;

5.通过系统函数替换、HOOK控制第三方程序;

6.刷机,替换、重装整个操作系统。

不难发现,ROOT权限无异于安卓系统中的帝王权限,拿到了ROOT权限就等于拿到了系统的最高指挥权,这吸引着无数技术开发者跃跃欲试,试图突破安卓手机厂商的封锁将ROOT权限据为己有。

拿到安卓的ROOT权限其实本质上就是拿到安卓内核Linux的ROOT权限,成功的关键在于Linux系统里面有一个系统文件叫“SU”文件,这个文件简单理解就是在操作系统里面负责给所有的用户分配权限用的,谁是超级权限,谁是管理员,谁是普通用户都是它说了算,所以它有点像武侠小说里面的葵花宝典,谁拿到它谁就可以一统江湖。

各大手机厂商也都知道SU文件非常重要,万一被别人利用了会有大麻烦,所以基于安卓定制自己的操作系统的时候,都直接把SU文件删除了,以便解决“不怕贼偷就怕贼惦记”的问题。

删了SU文件就相当于把葵花宝典烧了,烧了之后就彻底没办法了吗?不是。有些技术人员还想到一招,自己写一个SU文件,利用安卓系统的漏洞放到原来被删除的SU文件的位置上,当然这个自己编写的SU文件是提前动了些手脚的,肯定是要听从开发者的指令,要给开发者分配ROOT权限,至此,安卓系统的ROOT权限算是被劫持了。

所以最开始“ROOT”的意思是代表着一种系统权限,但是现在我们把通过技术手段获取安卓ROOT权限就简称为“ROOT”,相当于把一个名词给动词化地使用了。我们现在一说起ROOT,就可以理解为是拿下ROOT权限的这样一个技术动作,在苹果的iOS系统中也有类似的获取最高权限的动作,俗称“越狱”。

接下来再思考一个问题,都知道安卓手机用的是安卓系统,为啥市面上看到的这些安卓手机里的系统都不一样?

比如,华为用的是EMUI,魅族是Flyme,小米是MIUI,OPPO是Color OS,每一家手机公司都不一样。这是由于各家厂商基于安卓的原生系统做了自己的深度定制开发,因为给自己的手机硬件配上自己定制的操作系统在用户那里会形成一个非常好的品牌识别度。

同时由于安卓原生系统有很多设置不符合国人的操作习惯,所以在这个基础上可以定制出很多特色功能,再加上还可以内置自己的应用商店、浏览器等,这些都是非常赚钱的增值服务,所以说每一个安卓手机系统都是基于安卓进行的深度定制。

但是有一点值得注意,普通公众往往会有一个误解,认为定制说白了不就是给安卓系统换一个皮肤、换一个界面吗?没啥技术含量,这不是很简单吗?我记得当时锤子科技的Smartisan OS发布的时候,很多人就这样嘲笑,说不过是换了一套皮肤的安卓。

其实不是这样的,在安卓系统上做一次深度的定制开发,并且完成跟手机硬件的良好适配是非常难的,要有大量投入,通常需要数万人工/天的工作量才能够完成,所以说绝对不是一个小作坊、几十个开发人员敲敲打打就能搞出来的东西。

接下来值得了解的一个问题是我们作为普通用户或多或少会觉得安卓不够安全,尤其是跟苹果相比,实际情况是这样吗?

大家要知道安卓是谷歌的系统,当然最早是谷歌收购了一家安卓的雏形公司,然后再继续开发出正式的安卓。谷歌是全球数一数二的科技巨头,拿出来的东西不可能在安全性方面比苹果差太多,事实上安卓也确实是非常安全的。但是为什么国内现在很多第三方的研究报告都提到安卓有很多漏洞和安全风险呢?那是因为拿到中国以后的安卓版本存在两个问题。

第一,它自带的谷歌应用商店Google play没法在中国使用。

这一点对安全影响很大,Google play就相当于苹果iOS系统里的Appstore,是操作系统官方的应用商店,谷歌和苹果都在自己的应用商店里加入了大量的安全检测措施,提前帮你把很多的第三方应用风险、漏洞、不安全隐患都排除掉了。

但是很可惜,Google play因为谷歌在国内不放服务器,不符合我们国内的法律规定,以至于无法使用。这样一来第三方应用来源就很难保证了,非可靠渠道下载的第三方应用携带了哪些安全隐患没人说得清楚,所以就导致了安卓在国内经常会出现各种问题。当然,国内几个大厂的品牌手机都有厂商自己的官方应用商店,里面的应用相对是比较有保障的,因为它们也会做安全检测。

第二,安卓本身是一个开源的系统,就是把源代码都开放给你看,这样一来,很多别有用心的人就会借助对源代码的分析和研究,发现并利用系统的漏洞,如拿到ROOT权限。

既然说到了开源(Open Source),我们有必要把开源协议一起做一个简要的梳理,因为开源软件在软件行业里面其实也占到了几乎半壁江山的体量。

开源的精神宗旨是放弃版权,让作品本身可以为大家所共享,就像最流行的开源许可协议GNU GPL前言的第一句说到的一样:“The GNU General Public License is a free,copyleft license for software and other kinds of works.”[1]GNU通用公共许可证是一个自由的Copyleft许可证,适用于软件和其他类型的作品

注意,此处的“free” 指的是“自由”而不是“免费”,代表着使用软件对所有的用户来说是自由的,和价格无关[见前言的第三句:When we speak of free software,we are referring to freedom,not price.Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish),that you receive source code or can get it if you want it,that you can change the software or use pieces of it in new free programs,and that you know you can do these things][2][当我们谈论“自由软件”时,我们指的是“自由”,而不是价格。我们的通用公共许可证旨在确保您可以自由地发放自由软件的副本(如果您愿意,可以收取费用),您可以收到源代码或在需要时获得源代码,您可以更改软件或在新的自由程序中使用软件,并且您知道您可以执行这些操作]。

绝大部分正规的开源软件都有自己的开源协议,下图中华为的Mate30 Pro机型中披露的开源协议正是GNU GPLv2:

我们把其中Written Offer这一段翻译出来如下:

Written Offer

This product contains software whose rights holders license it on the terms of the GNU General Public License,version 2 (GPLv2) and/or other open source software licenses.We will provide you and any third party with the source code of the software licensed under an open source software license for a charge no more than our costs for physically performing such distribution on a medium customarily used for software interchange (e.g.CD) if you send us a written request by mail or email to the following addresses:mobile@huawei.com.

书面报价

本产品包含其权利持有人根据GNU通用公共许可证、版本2(GPLv2)和/或其他开放源代码软件许可证的条款对其进行许可的软件。如果您通过邮件或电子邮件向我们发送书面请求至以下地址,我们将向您和任何第三方提供根据开放源代码软件许可证获得许可的软件源代码,费用不超过我们在通常用于软件交换的介质(如CD)上实际执行此类分发的成本:mobile@huawei.com。

可见,华为的操作系统中引用的是GNU通用公共许可证版本2(GPLv2),接下来我们可以从自由软件基金会(FSF)官网找到3.0版本的 GNU General Public License(http://www.gnu.org/licenses/gpl-3.0.html)。

就以GNU GPL为例,在自由软件基金会的官方网站上有这个协议的完整版本,协议本身并不长,其中记载的要点在开源协议中颇具代表性,整理如下表:

比较标准的中文翻译版本是Leo-Hong [leohca (at) yahoo.com] 翻译整理、 Chao-Hong Liu 校正的版本,当然按照自由软件基金会的要求,这个译本用样明确声明:“这是一份 GNU 通用公共授权非正式的中文翻译。它并非由自由软件基金会所发表,亦非使用 GNU 通用公共授权的软件的法定发布条款——只有 GNU 通用公共授权英文原文的版本始具有此等效力。”

其中关于“传染性”的规定很重要,就是说如果你基于该软件做二次开发,则开发出的新版本同样要适用GPL协议,就像病毒一样有传染性,这使得不少开发者对于GPL协议下的开源软件颇为忌惮,因为相当于开发之后的软件自己没有太多可以保密或者收费的空间了。

好在开源协议不止这一种,市面上有形形色色的开源协议版本,经过开源促进会(Open Source Initiative)组织通过批准的开源协议就有58种之多(http://www.opensource.org/licenses/alphabetical)。

开源协议中最有代表性的大致有六种:BSD、GPL、LGPL、Mozilla、MIT、Apache。主要是授权范围宽窄各有不同,以下再简要地介绍几个。

LGPL

GNU 还有另外一种协议,叫作GNU Lesser General Public License(GNU较宽松公共许可证)。它对产品所保留的权利比 GPL 少,GPL要求包含有部分GPL授权代码的软件以GPL方式发布,这样开发者就无法在收费的专属软件里使用GPL授权代码,而LGPL不要求其他使用LGPL授权代码的软件以LGPL方式发布,因此更为“宽泛”,比较适合用于非开源产品的开源类库或框架,采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

Apache License 2.0

Apache License是Apache软件基金会发布的一个自由软件许可证。该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权,同样允许附条件的代码修改和再发布(作为开源或商业软件),需要满足的条件也和BSD类似,主要内容包括:

Apache License的授权更加彻底(全球范围内永久授权),并且二次开发成果也允许投入商用,同时对专利和商标方面也有涉及。

BSD许可证

BSD是Berkeley Software Distribution的缩写,意思是伯克利软件发行版,其实指代的是Unix操作系统的一个衍生版本,而BSD许可证是随着加州大学伯克利分校发布BSD Unix操作系统衍生出来的。

在了解BSD Unix之前,我们有必要简单介绍一下Unix。这是一个诞生于20世纪70年代初,比Linux还要古老并被Linux所借鉴的操作系统,早期分别由AT&T公司和加州大学等学术机构开发维护,对应衍生出由商业公司持有的闭源版本(如微软从AT&T拿到授权后开发出Windows NT,成为闭源商业软件的一代霸主)和由学术机构持有的开源版本,后者的代表之一就是BSD Unix操作系统,因此BSD Unix是Unix操作系统的一个衍生分支。

鉴于BSD操作系统的学术背景,BSD许可证也是一个给予使用者很大自由的协议。可以自由地使用、修改源代码,也可以将修改后的代码作为开源或者专有软件再发布,但需要满足以下三个条件:

1.如果再发布的产品中包含源代码,则在源代码中必须带有BSD协议;

2.如果再发布的只是二进制类库/软件,则在其中的文档和版权声明中必须带有BSD协议;

3.不得使用开源代码的作者/机构名字和原来产品的名字做市场推广。

法律问题

首先是关于开源协议的法律效力,开源协议作为开源机构自己制定的规则,只不过是嵌入自己的开源软件里,别人用软件的时候并没有经过同意确认的过程,它的法律效力可以被认可吗?对此美国联邦法院判过一个案子,美国的一家公司开发了一款Ghostscript(Ghostscript是一个用于PostScript®语言和PDF文件的解释器。它可以在GNU GPL Affero许可证下使用,或从Artifex软件公司获得商业使用许可。它已被积极开发了30多年,并在这段时间内被移植到几个不同的系统上。Ghostscript由一个PostScript解释器层和一个图形库组成),然后被一家韩国公司用了,而Ghostscript里面就携带了GNU GPL协议。

后来用完之后,韩国公司也没给美国公司钱,后者于是起诉。韩国公司就抗辩说GPL协议我并没有同意,怎么能对我发生效力呢?联邦法院审理之后认为人们在下载软件的时候默认同意GNU GPL——这意味着GNU GPL 是自我传播的,即使没有“签署合同”,当你选择开源路线时,它就被认定为是具备强制执行力的合同。此案成为确认开源协议“自传播效力”的里程碑。

2019年11月,号称“中国 GPL 诉讼第一案”的数某天堂诉柚某科技侵犯计算机软件著作权纠纷案[3]经过北京市高级人民法院二审终审后,最终也是判决侵权成立。这个案件中,被告柚某科技也是主张了对GPL协议的抗辩,法院的判决总体上应该算是默认了GPL是具有法律效力的,但是并没有像美国法院一样特别展开去讲GPL协议。

不论是国外还是国内的案例,都说明我们在编写软件的时候,多数情况下不是“从零到一”把所有代码都原创出来的,而是大量使用到一些开源的第三方代码。从法律角度一定要知道开源软件不是说没有规则可循,它有自己的开源规则,需要使用的一方审慎查看并遵守。

刷机

最早我们接触刷机应该可以回溯到Windows XP的时期,那个时候很多人使用过一段时间就想办法把系统重装,这个动作就是刷机。

重装通常的做法是换一个市面上流行的盗版Windows系统,为啥要用盗版?盗版可能因为去掉了系统中的某些安全模块等用户感知不到的组件,所以占硬盘的空间更小、运行速度更快一些。很多“80后”“70后”印象最深的盗版Windows系统当数番某花园,人们有的时候甚至是买了一个正版的电脑自带了正版的Windows,但还是要直接换成一个番某花园的版本,当然,换掉之后,微软就不再提供相应的维护和升级服务了。

来到移动互联网时代,刷机已经明确指向手机端,很多用户的手机用了一段时间后觉得慢了,或者是不喜欢这个系统自带的一些应用、设置,就进行刷机。

安卓刷机就是我们前面讲的技术,首先拿到ROOT最高权限,接下来就可以把原来预装的操作系统换掉。所以其实在移动端的刷机就跟PC端换掉Windows系统是一样的道理,都是用一个操作系统换掉原来的。

番某花园的开发者最终身陷囹圄,几个主犯都被以侵犯著作权罪追究了刑事责任,因为这些人相当于把人家操作系统破解、盗版之后又替换人家正版,所以既有复制又有发行的行为,构成侵犯著作权罪。

手机这个领域里面,刷机往往并不是把A系统刷成B系统,不太可能把OPPO的Color OS系统刷成一个华为的EMUI系统,还是仍然要用原来的操作系统去刷,只是会把原来的系统做一些改动,如删掉一些内置的应用、改一下皮肤字体、加入一些其他应用等。

这个过程跟番某花园没什么区别,如果有人专门提供刷机用户的操作系统ROM包和刷机工具肯定也是侵害著作权的行为,但区别在于,这种行为不仅仅是对作品传播权益上的侵害,连带造成的效果是手机厂商基于操作系统获取的用户流量的损失。早期PC时代对刷机只强调著作权,是因为那时候交易是一对一的单边市场,Windows把操作系统标一个价格卖给用户,双方再无瓜葛。而到了移动互联网时代,交易变成了由上游增值服务提供商、手机厂商和用户三方形成的双边交易市场,厂商尽量以低价销售手机和操作系统,同时将用户使用手机时形成的流量到上游增值服务提供商那里再次变现,如在手机中内置一些第三方应用获取收益。

所以,时代不同了,手机成了移动互联网最大的流量入口,于是专门提供刷机工具和操作系统安装包的机构就不仅仅是侵害著作权的问题,而是截断了厂商的流量,尤其是如果把这些流量据为己用(在刷机ROM包[4]中内置其他应用获取变现)则可能构成不正当竞争。笔者代理的某品牌手机刷机不正当竞争案经过法院判决认定刷机平台构成了不正当竞争,可见法律适用需要结合技术和时代背景才能更加符合行业发展趋势。


[1] 来源于网页:https://opensource.org/licenses/gpl-3.0.html,最后访问时间:2022年7月10日。

[2] 来源于网页:https://opensource.org/licenses/gpl-3.0.html,最后访问时间:2022年7月10日。

[3] 来源:中国裁判文书网,(2018)京民终471号。

[4] ROM包就好比电脑装系统时所需的安装盘,即手机的系统包。刷机就是把ROM包“刷”入手机中,达到更新手机系统的目的。ROM包一般都是ZIP、RAR等压缩包或其他后缀的样式,依品牌和机型的不同而有所区别。