乐于分享
好东西不私藏

【AI知产】开源软件侵权第一案深度解读

【AI知产】开源软件侵权第一案深度解读

案号:2019)粤73知民初207号

审理法院:广州知识产权法院

判决日期:2021年9月29日

案由:侵害计算机软件著作权纠纷

一、诉讼主体

1、原告及适格理由

原告:济宁市LW网络科技有限公司(以下简称"LW公司")

适格理由

LW公司持有国家版权局于2017年11月8日颁发的软著登字第2198812号《计算机软件著作权登记证书》,软件名称为"LWVirtualApp)插件化框架虚拟引擎系统[简称:VirtualApp]V1.0",权利取得方式为受让,权利范围为全部权利。

GitHub官网上VirtualApp项目简介记载该项目由LW科技于2017年8月份正式公司化运作开发运营,项目管理者asLody上传初始源代码并发起开源项目,联系方式QQ10890指向LW公司法定代表人张璐,项目管理者asLody指向公司股东罗迪。

法院认定,以上事实相互印证,LW公司将涉案软件上传到GitHub官网并持续迭代更新,是VirtualApp开源软件的著作权人。

即使存在其他贡献者,法院认为LW公司作为提交了绝大部分代码量的项目管理者,有权单独提起诉讼,无需经过其他贡献者授权。

2、被告及适格理由

被告一:广州市WY网络科技有限公司(以下简称"WY公司")

被诉行为:开发并运营"微信视频美颜版""微信视频美颜相机版App""微信视频美颜相机""微信视频美颜相机版"四款被诉侵权软件,通过华为应用市场、应用宝等平台提供下载,收取会员费。

被告二:深圳GZH科技有限公司(以下简称"GZH公司")

被诉行为:通过微信渠道代WY公司收取被诉侵权软件用户的会员费用。

被告三:深圳AST科技有限公司(以下简称"AST公司")

被诉行为:通过支付宝渠道代WY公司收取被诉侵权软件用户的会员费用。

被告四:XYSY(深圳)有限公司(以下简称"XY公司")

被诉行为:通过微信渠道代WY公司收取被诉侵权软件用户的会员费用。

适格理由:原告主张四被告共同实施了侵害计算机软件著作权的行为,其中WY公司为被诉软件的开发者和运营者,GZH公司、AST公司、祥运公司通过代收会员费参与侵权获利,构成共同侵权,应承担连带责任。

二、案由和管辖

1、案由及确定案由的理由

案由:侵害计算机软件著作权纠纷

确定理由:

原告LW公司主张其享有VirtualApp计算机软件的著作权,被告WY公司开发的被诉侵权软件使用了与VirtualApp软件实质相似的源代码,侵害了原告享有的复制权、发行权和信息网络传播权。

本案争议的核心是计算机软件源代码的著作权侵权问题,属于典型的侵害计算机软件著作权纠纷。

案件涉及开源软件许可协议(GPL V3)的法律性质和效力认定,以及违反开源协议是否构成著作权侵权的法律判断。

2、管辖及管辖权依据

管辖法院:广州知识产权法院

管辖权依据:

根据《最高人民法院关于知识产权法院案件管辖等有关问题的通知》,知识产权法院管辖所在市辖区内的第一审知识产权民事案件。

本案被告WY公司住所地位于广东省广州市天河区,属于广州知识产权法院辖区范围。

本案为侵害计算机软件著作权纠纷,属于知识产权法院专门管辖的技术类知识产权案件。

法院于2019年3月4日立案,依法适用普通程序,于2020年11月3日公开开庭审理。

三、原告主张

1、原告诉讼请求、请求权基础及设计诉讼请求的理由

诉讼请求:

1. 判令WY公司、GZH公司、AST公司、祥运公司立即停止侵害LW公司的VirtualApp计算机软件著作权中的复制权、发行权、信息网络传播权,即立即停止通过互联网提供所有版本的"微信视频美颜版""微信视频美颜相机版App""微信视频美颜相机""微信视频美颜相机版"软件的下载、安装和运营服务;

2. 判令四被告连带赔偿LW公司经济损失1500万元;

3. 判令四被告连带赔偿LW公司为制止侵权行为而支出的合理费用15万元;

4. 判令四被告承担本案诉讼费。

请求权基础:

《中华人民共和国著作权法》(2010年修正)第四十八条第一项:未经著作权人许可复制、发行其作品的,应当承担停止侵害、赔偿损失等民事责任。

《计算机软件保护条例》第八条:软件著作权人享有复制权、发行权、信息网络传播权等权利。

《最高人民法院关于审理侵害信息网络传播权民事纠纷案件适用法律若干问题的规定》第三条:未经许可通过信息网络提供权利人享有信息网络传播权的作品,构成侵害信息网络传播权行为。

设计诉讼请求的理由:

停止侵害请求:原告主张被告的行为同时侵害了复制权、发行权和信息网络传播权三项权利,覆盖了被告通过互联网提供软件下载、安装和运营的全链条行为。

高额赔偿请求:原告以被告侵权获利为计算依据,主张1500万元经济损失,依据是被诉软件在华为应用市场和应用宝的下载量(136万次+32万次)以及会员费收入(月会员36.8-42.8元),推算被告获利超过6000万元。

连带责任主张:原告认为GZH公司、AST公司、祥运公司通过代收会员费参与侵权获利,与WY公司构成共同侵权,应承担连带责任。

合理费用主张:原告主张15万元合理开支,包括公证费、鉴定费、翻译费、律师费等维权成本。

2、原告主张和举证

序号

证据名称

证明目的

三性认可情况

1

计算机软件著作权登记证书(软著登字第2198812号)

证明原告享有VirtualApp软件的全部著作权

法院予以采信

2

(2018)粤广南粤第6915号公证书

公证下载GitHub上VirtualApp 2017年12月30日版本,证明原告主张权利的软件版本及商业授权声明

法院予以采信

3

(2018)粤广南粤第6918号公证书

公证从应用宝和华为应用市场下载被诉侵权软件,证明被诉软件的存在及下载量

法院予以采信

4

(2018)粤广南粤第7561号公证书

公证从其他平台下载被诉侵权软件的不同版本,证明侵权行为的持续性和广泛性

法院予以采信

5

(2018)粤广南粤第7600号公证书

公证被诉软件会员套餐价格及收款方(GZH科技、AST公司),证明被告获利及共同侵权

法院予以采信

6

(2019)粤广南粤第3491号公证书

公证被诉软件下载量增长至148万次及会员费调整,证明侵权规模扩大

法院予以采信

7

(2019)粤广南粤第13546号公证书

公证VirtualApp项目历史节点及商业使用限制声明的演变过程

法院予以采信

8

(2019)粤广南粤第13547号公证书

公证VirtualXposed项目主分支中关于VirtualApp商业使用限制的声明

法院予以采信

9

(2019)粤广南粤第22339号公证书

公证VirtualXposed项目exposed分支提交历史

法院予以采信

10

(2019)粤广南粤第22342号公证书

公证VirtualXposed项目exposed分支相关声明

法院予以采信

11

(2019)粤广南粤第22340号公证书

公证GitHub官网用户协议和用户指引

法院予以采信

12

广东鑫证司法鉴定所《司法鉴定意见书》(穗司鉴19010180900257号)

证明被诉侵权软件与VirtualApp软件源代码构成实质相似(424个可比代码中421个相似)

法院予以采信

13

民事委托代理合同、公证费发票、鉴定费发票(30000元)、翻译费发票(820元)

证明原告为制止侵权支出的合理费用

法院酌情予以考虑

14

当事人工商登记信息

证明原被告主体资格

法院予以采信

15

QQ聊天记录(VirtualApp商业版授权费用)

证明原告商业授权费用标准(单款APP一年20万元),作为赔偿参考

法院作为判赔考虑因素

3、原告取证(是否特殊技术手段取证)

原告取证主要采用以下方式,未使用特殊技术手段取证

公证取证:原告全部取证过程均在公证处公证员监督下完成,使用公证处计算机和网络进行操作,确保取证过程的客观真实性。

司法鉴定:原告委托广东鑫证司法鉴定所对被诉软件与VirtualApp软件进行源代码相似性鉴定,由专业机构出具鉴定意见。

反编译技术:鉴定过程中对被诉软件安装包进行反编译以获取源代码,这是软件著作权侵权案件中的常规技术手段。

网页固定:通过公证方式固定GitHub项目页面、应用市场下载页面、软件内会员支付页面等电子证据。

4、原告如何保障证据的三性

真实性保障:

全部取证过程均在公证处进行,由公证员监督操作公证处的计算机和网络设备,排除了原告自行操作可能导致的证据篡改风险。

使用保全证据专用手机进行移动应用取证,确保设备清洁性。

司法鉴定由具备资质的第三方机构(广东鑫证司法鉴定所)完成,鉴定程序规范。

合法性保障:

取证方式符合《公证法》和《民事诉讼法》关于证据保全的规定。

公证取证均在公开可访问的网络环境下进行,未侵入被告系统或获取非公开信息。

司法鉴定机构具备合法资质,鉴定程序符合行业规范。

关联性保障:

取证对象明确指向被诉四款软件,与原告诉讼请求直接对应。

取证内容覆盖了软件下载、安装、运行、支付等完整侵权链条。

代码相似性鉴定直接对比了原告主张权利的软件版本与被诉软件的源代码。

通过多份公证书固定了不同时间节点的证据,证明侵权行为的持续性。

5、原告主张赔偿额数量及其计算方式

主张赔偿总额:经济损失1500万元 + 合理费用15万元 = 1515万元

计算方式:

计算依据:以被告侵权获利为计算标准。

下载量数据:被诉侵权软件在华为应用市场下载量136万次,在应用宝下载量32万次,合计168万次(后增长至148万次+32万次)。

会员费标准:一个月VIP会员36.8元(后调整为42.8元),六个月VIP会员78.8元(后调整为88.8元)。

推算逻辑:以用户一次下载/安装仅购买一个月会员计算,即168万次 × 36.8元/月 ≈ 6182万元,原告认为被告获利超过6000万元。

最终主张:原告在6000万元获利基础上主张1500万元经济损失,约为推算获利的四分之一。

合理费用:主张15万元,包括公证费、鉴定费(30000元)、翻译费(820元)、律师费等。

四、被告抗辩

1、被告抗辩点、抗辩权基础及提出抗辩点的理由

WY公司主要抗辩点:

1. 原告主体不适格抗辩:LW公司并非涉案计算机软件的著作权人,无权提起本案诉讼。理由是VirtualApp开源项目有32位贡献者参与编写,项目人aslody仅为著作权人之一,该项目为不可分割使用的合作作品,aslody单方转让著作权的行为无效。

2. 合法授权抗辩(GPL V3协议):VirtualApp项目为适用GPL V3协议的开源项目,WY公司依据GPL V3协议已合法取得源代码的复制权、修改权和发行权,不存在侵权情形。

3. 合法来源抗辩:被诉侵权软件的沙盒分身基础框架代码是在VirtualXposed开源项目Xposed分支2018年1月10日版本基础上自主研发而成,该版本适用GPL V3协议开源免费发布。

4. 权利滥用抗辩:项目人aslody将开源项目据为私有并大肆敛财,违背开源社区基本准则和诚实信用原则,其诉讼请求于理于法无据。

5. 功能区分抗辩:被诉软件主要功能为微信视频美颜,而非沙盒分身功能本身,WY公司投入大量人力财力自主研发创新。

6. 赔偿过高抗辩:LW公司恶意诉讼,1500万元经济损失毫无事实和法律依据。WY公司在收到起诉状时就下架了被诉侵权软件。

7. 权利吸收抗辩:复制权在信息网络环境下被信息网络传播权吸收和覆盖,不应同时主张。

GZH公司、AST公司、祥运公司抗辩点:

1. 代收服务费抗辩:WY公司为合作关系,仅代WY公司收取用户付款,提取服务费用后结算给WY公司,并未从侵权行为中获利。

2. 合同免责抗辩:WY公司约定仅提供款项代收接入服务,WY公司与第三方的争议与其无关。

3. 形式审查抗辩:合作之初已对被诉软件的著作权登记证书进行形式审查,无能力进行实质性判断,不构成共同侵权。

4. 责任承担抗辩:WY公司承诺承担全部法律责任。

抗辩权基础:

《著作权法》关于合作作品的规定

GPL V3开源许可协议的授权条款

《合同法》关于合同效力和免责条款的规定

《著作权法》关于合理使用的规定

侵权责任法关于共同侵权的认定标准

2、被告抗辩和举证

序号

证据名称

证明目的

三性认可情况

1

(2019)深盐证字第2421号公证书

证明VirtualApp项目有三十多位贡献者,使用了多个开源项目代码,原告并非唯一著作权人

法院确认了贡献者存在的事实,但未支持合作作品主张

2

(2019)深盐证字第3424号公证书

证明VirtualXposed项目加入了GPL 3.0协议,被告依据该协议合法使用

法院确认GPL V3协议存在的事实

3

(2019)深盐证字第2772号公证书

证明被诉软件用户协议中提供了源代码下载地址,已履行开源义务

法院未予采信,认为未实际提供有效开源

4

(2019)深盐证字第4246号公证书

证明VirtualXposed项目exposed分支2018年1月10日版本的存在,被告基于该版本开发

法院确认该事实,但认为被告未举证证明被诉代码来源于此

5

(2019)深盐证字第4768号公证书

证明VirtualApp项目中有多个贡献者提交代码,进一步佐证合作作品主张

法院未支持合作作品主张

3、被告取证

被告取证同样未使用特殊技术手段,主要采用:

公证取证:全部取证过程在深圳市盐田公证处公证员监督下完成,使用公证处计算机和手机进行操作。

网页固定:通过公证方式固定GitHub项目页面、贡献者列表、开源许可协议等电子证据。

软件取证:下载安装被诉软件,查看用户协议中的源代码信息地址并下载。

4、被告如何保障证据的三性

真实性保障:

取证过程在公证处进行,由公证员监督操作公证处设备。

GitHub上的开源项目历史提交记录进行公证固定,确保时间线的真实性。

合法性保障:

取证方式符合公证程序规定。

取证对象均为公开可访问的开源项目页面和应用市场软件。

关联性保障:

证据围绕"原告非唯一著作权人""GPL V3协议授权""被诉软件有合法来源"三大抗辩主线组织。

通过多份公证书固定了VirtualApp项目、VirtualXposed项目的历史节点,构建了开源授权的时间线。

5、被告抗辩赔偿额数量及其计算方式

被告抗辩主张:全部驳回原告诉讼请求,不承担任何赔偿责任。

抗辩理由:

WY公司不存在任何侵权情形,LW公司系恶意提起诉讼,1500万元经济损失毫无事实和法律依据。

WY公司在收到起诉状时就下架了被诉侵权软件,目前应用市场上的版本并非涉案被诉侵权版本。

被诉软件主要功能是微信视频美颜,沙盒分身仅为基础功能,原告主张的赔偿额与涉案软件在被诉产品中的价值不成比例。

关于下载量,WY公司抗辩存在刷量情况,实际下载量远低于显示数据(WY公司提供的数据显示华为应用市场下载次数也有近二十万次)。

会员费收入不能等同于侵权获利,被诉软件的价值主要在于美颜功能而非沙盒分身功能。

五、争议焦点

1、法院梳理的争议焦点

法院在判决中明确归纳了本案需要认定的三个核心问题:

1. LW公司是否有权提起本案诉讼:LW公司是否为涉案VirtualApp软件的著作权人,以及提起诉讼是否需要其他贡献者授权。

2. 被诉侵权行为是否侵害LW公司的复制权、发行权和信息网络传播权:涉及GPL V3协议的法律性质和效力、LW公司是否有权加入商业使用限制、WY公司收取会员费和未提供源代码是否违反GPL V3协议等子问题。

3. 若侵权成立,各被告应如何承担民事责任:WY公司、GZH公司、AST公司、祥运公司的责任承担方式,以及赔偿数额的确定。

2、其余可能的争议焦点

结合判决书全文,本案真正的核心争议焦点可进一步细化为:

1. GPL V3协议的法律性质与效力认定:这是本案最核心的法律问题。GPL V3协议究竟是单纯的授权许可还是具有合同性质?违反GPL V3协议的法律后果是违约还是侵权?这直接决定了本案的请求权基础和法律适用。

2. 开源软件著作权人的权利边界:开源软件作者是否可以在GPL V3协议之外附加商业使用限制条款?项目管理者单方删除GPL V3协议是否具有回溯效力?这涉及开源软件生态的基本规则。

3. 违反开源协议与著作权侵权的关系:被许可人违反GPL V3协议(如不公开源代码)时,其使用行为是否从"有权使用"转变为"无权使用"从而构成著作权侵权?这是开源软件司法保护的关键问题。

4. 开源软件合作作品的认定标准:GitHub上众多贡献者提交代码是否构成合作作品?项目管理者是否有权单独维权?这关系到开源软件维权的可行性。

5. GPL"病毒效应"的范围界定:使用GPL开源代码的衍生作品是否必须全部开源?如何区分独立作品与衍生作品?这直接影响侵权范围的认定。

3、该案还有哪些值得讨论的要点

开源协议变更的溯及力问题:项目管理者在2017年10月29日删除GPL V3协议,对于此前已经下载并使用该开源代码的用户是否产生影响?法院认为删除GPL V3协议无回溯力,但对于"删除前已下载但删除后继续使用"的情形如何处理,判决未深入展开。

商业使用限制条款的效力:LW公司在GPL V3协议之外附加"商业使用需购买授权"的声明,该声明的法律效力如何?法院认定该条款属于GPL V3协议禁止的"进一步限制"因而无效,但如果该声明是以独立的附加许可形式出现,是否可能有效?

贡献者的权利保护:判决认为即使是合作作品,项目管理者也有权单独起诉。但贡献者的权益如何保障?收益如何分配?判决仅在说理部分提及"所得收益应当合理分配给所有合作作者",但未在判项中体现。

侵权获利的计算方法:原告以"下载量×月会员费"推算获利超过6000万元,法院最终酌定50万元。两者差距悬殊,反映了开源软件侵权案件中获利计算的难题——开源代码在整个软件中的价值占比如何确定?

代收费用方的共同侵权认定:法院认为仅凭代收会员费不足以认定共同侵权。那么代收方需要达到何种参与程度才构成共同侵权?判决的标准是否过于宽松?

开源软件与商业软件的边界:本案反映了开源软件商业化的典型矛盾——开源项目发起人如何在保持开源的同时实现商业变现?"开源核心+商业服务"的模式是否可行?

六、法院裁判

1、裁判思路

法院的裁判思路遵循"主体资格→行为定性→责任承担"的递进逻辑:

1. 第一步:确认原告诉权。先认定LW公司是VirtualApp软件的著作权人,且有权单独提起诉讼,解决了"谁有权告"的前提问题。

2. 第二步:认定GPL V3协议的法律性质。法院用大量篇幅论证GPL V3协议具有合同性质,属于附解除条件的著作权合同,为后续侵权认定奠定了法律基础。

3. 第三步:判断商业使用限制条款的效力。法院认定LW公司无权在GPL V3协议中加入商业使用限制保留条款,该限制属于GPL V3协议禁止的"进一步限制"。

4. 第四步:认定被告行为是否违反GPL V3协议。法院认定WY公司未向用户提供被诉软件源代码下载,违反了GPL V3协议的规定,导致授权自动终止,构成侵权。

5. 第五步:确定侵权范围和权利类型。法院认定WY公司侵害了发行权和信息网络传播权(信息网络传播权吸收复制权)。

6. 第六步:确定各被告责任。WY公司承担直接侵权责任,代收费用的三公司不构成共同侵权。

7. 第七步:酌定赔偿数额。综合考虑多种因素,酌定赔偿50万元(含合理开支)。

2、裁判要点

1)关于LW公司是否有权提起诉讼

争议焦点:LW公司是否为著作权人?是否需要其他贡献者授权?

事实认定:

LW公司持有计算机软件著作权登记证书。

GitHub项目简介记载由LW科技开发运营,项目管理者asLody及联系方式QQ10890分别指向公司股东罗迪和法定代表人张璐。

项目管理者于2016年7月7日首次提交507个文件、共31097行初始源代码。

贡献者提交代码需经项目管理者同意才能合并入主分支。

项目管理者提交的代码量占绝大部分。

论证过程:

关于著作权人身份:根据《计算机软件保护条例》第九条和《最高人民法院关于审理著作权民事纠纷案件适用法律若干问题的解释》第七条,著作权登记证书可以作为证据。WY公司虽否认但未提交相反证据,故认定LW公司为著作权人。

关于合作作品:合作作品需满足"作者为两人以上、有共同创作合意、有共同创作行为、贡献了独创性表达"四要件。贡献者提交代码经项目管理者同意后合并,虽存在共同创作合意,但WY公司未举证证明贡献者提交的代码具有独创性表达,仅根据代码行数无法判断。故无法认定属合作作品。

关于其他贡献者授权:即使属合作作品,根据《著作权法实施条例》第九条和《计算机软件保护条例》第十条,不能协商一致又无正当理由的,任何一方不得阻止他方行使除转让以外的其他权利。开源软件贡献者人数众多且动态变化,要求必须经所有贡献者授权才能维权,将导致开源软件维权无从提起。因此LW公司有权单独起诉。

裁判结论:LW公司有权提起本案诉讼。

2)关于GPL V3协议的法律性质和效力

争议焦点:GPL V3协议是单纯许可还是合同?违反协议的法律后果是什么?

事实认定:

VirtualApp项目于2016年7月8日加入LGPL V3协议,2016年9月10日更换为GPL V3协议。

2017年10月29日项目管理者删除了GPL V3协议。

LW公司主张权利的2017年12月30日版本与删除GPL V3协议前的版本差别不大。

论证过程:

法院系统梳理了开源授权许可协议的发展历程及分类(GPL类、LGPL类、BSD/MIT类),并介绍了美国Jacobsen案和德国Welte案的司法实践。

法院认定GPL V3协议具有合同性质:①协议内容具备合同特征,属于广义合同范畴;②协议是非典型合同(不同于典型著作权许可合同);③协议是格式合同,预先拟定且不属于无效情形;④对协议的承诺通过行为作出(用户复制、修改、发行源代码即视为接受协议);⑤协议通过电子文本形式订立,属于书面形式。

法院认定GPL V3协议属于附解除条件的著作权合同:许可条款是版权许可的条件,用户违背条款规定则许可前提条件不复存在,协议终止适用,授权自动终止。

关于删除GPL V3协议的效力:只要某个版本加入GPL V3协议,则无法任意删除,该版本源代码将永久保持开源。删除GPL V3协议无回溯力,仅影响后续版本。LW公司主张权利的版本仍属适用GPL V3协议的开源软件。

裁判结论:GPL V3协议具有合同性质,合法有效,属于附解除条件的著作权合同。

3)关于商业使用限制保留条款的效力

争议焦点:LW公司是否有权在GPL V3协议中加入"商业使用需购买授权"的限制?

事实认定:

项目管理者asLody于2017年7月3日声明"当您需要将VA用于商业途径时,需要进行授权"。

该声明此后一直保留。

VirtualXposed项目中也保留了类似声明。

论证过程:

开源软件作者将全部著作财产权利让渡给使用者,但并未放弃用商业化方式促进开源软件产业发展。

GPL V3协议序言明确"所谓自由软件,我们强调的是自由,而非价格免费",开源软件可以用于商业运作,但盈利方式应围绕衍生产品进行。

开源软件的定义包含"不能歧视任何领域",不得规定软件不能用于商业目的。

根据GPL V3协议第7条,附加许可仅限于特定情形(如不担保责任、保留法律声明、禁止误传来源、限制宣传使用名号、降低商标使用级别、要求许诺不连带等),此外的非许可性附加条款都属于第10条所说的"进一步的限制",可以被删除。

"商业使用需购买授权"的限制不属于GPL V3协议第7条允许的附加许可,而是对协议授权权利的进一步限制,违反了GPL V3协议的规定。

裁判结论:LW公司无权在GPL V3协议中加入商业使用限制保留条款,该限制无效。

4)关于WY公司行为是否构成侵权

争议焦点:WY公司收取会员费和未提供源代码下载的行为是否违反GPL V3协议?是否构成侵权?

事实认定:

被诉软件与VirtualApp软件424个可比代码中421个具有相似性(高度相似165个、一般相似17个、实质相似239个),仅3个不相似。

WY公司主张被诉软件基于VirtualXposed项目自主研发,但未提交证据证实。

WY公司虽主张在用户协议中提供了源代码下载地址,但未实际有效履行开源义务。

被诉软件通过华为应用市场、应用宝等平台提供下载,收取会员费。

论证过程:

关于代码来源:WY公司虽主张被诉代码来源于VirtualXposed,但未举证证明。即使来源于VirtualXposed,VirtualXposed本身也是基于VirtualApp开发的,仍受GPL V3协议约束。

关于源代码公开义务:根据GPL V3协议第5条,用户依据协议获取源代码进行修改、再发布,必须保证其他用户可以获取修改后的源代码。这是GPL V3协议保持开源传染性的核心要求。

关于开源范围:沙盒分身功能代码作为被诉软件的衍生部分整体发布,WY公司未举证证明该部分代码是独立的,或使用了分层架构适用不同协议。因此被诉软件应整体适用GPL V3协议,WY公司应开源整个被诉软件的源代码。

关于侵权定性:违反开源软件许可协议存在违约救济和侵权救济两种方式,两者竞合由当事人选择。LW公司选择主张侵权,法院从侵权角度评述。

根据《合同法》第四十五条,附解除条件的合同自条件成就时失效。WY公司未提供源代码下载违反GPL V3协议,导致授权自动终止,其复制、发布行为因失去权利来源而构成侵权。

关于权利类型:WY公司将侵权软件上传到应用市场供用户下载,侵害信息网络传播权;向用户提供安装包下载并收取会员费,侵害发行权。信息网络传播行为必然经过复制过程,故信息网络传播权吸收复制权,不再单独认定复制权侵权。

裁判结论:WY公司的行为侵害了LW公司对涉案软件的发行权和信息网络传播权。

5)关于各被告的责任承担

争议焦点:GZH公司、AST公司、祥运公司是否构成共同侵权?

事实认定:

三公司仅代WY公司收取用户会员费,提取服务费后结算给WY公司。

三公司对被诉软件的著作权登记证书进行了形式审查。

WY公司承诺承担全部法律责任。

论证过程:

三公司仅提供代收款项服务,已对软件著作权登记证书做了初步审查。

再施加过高的审查注意义务不符常理。

仅凭代收会员充值款项的事实尚不足以认定与WY公司构成共同侵权。

裁判结论:GZH公司、AST公司、祥运公司不构成共同侵权,不承担连带责任。仅WY公司承担侵权责任。

3、法院认定侵权的范式和具体理由

侵权认定范式:"违反开源协议→授权自动终止→失去权利来源→构成著作权侵权"

具体理由:

1. GPL V3协议具有合同性质:法院将GPL V3协议定性为附解除条件的著作权合同,这是侵权认定的逻辑起点。

2. 违反协议导致授权终止:根据《合同法》第四十五条和GPL V3协议第8条,被许可人违反协议规定的,其获得的授权自动终止。

3. 授权终止后使用构成侵权:授权终止后,被许可人继续复制、发行软件的行为因失去权利来源而构成著作权侵权。

4. 违约与侵权竞合:违反开源协议同时构成违约和侵权,权利人可以选择救济方式。本案原告选择侵权之诉,法院按侵权审理。

本案中具体的侵权行为:

WY公司未向用户提供被诉侵权软件源代码下载,违反了GPL V3协议关于修改后再发布必须公开源代码的规定。

WY公司将含有VirtualApp源代码的被诉软件上传到应用市场供公众下载,侵害了信息网络传播权。

WY公司向用户提供软件安装包并收取会员费,侵害了发行权。

4、法院认定责任承担的理由

WY公司的责任:

WY公司作为被诉侵权软件的开发者和运营者,直接实施了侵权行为,应承担停止侵害和赔偿损失的民事责任。

停止侵害的范围:立即停止通过互联网提供含有侵权沙盒分身功能源代码的四款软件的下载、安装和运营服务。

WY公司虽抗辩已全部下架,但未举证证明,故法院仍判决停止侵害。

GZH公司、AST公司、祥运公司的责任:

三公司仅提供代收款项服务,不构成共同侵权。

理由:①仅代收会员费,参与程度有限;②已做形式审查,过高注意义务不符常理;③无证据证明三公司明知或应知侵权。

5、法院认定赔偿的理由及其计算方式

赔偿数额:50万元(包含维权合理开支)

计算方式:法定赔偿(酌定赔偿)

酌定因素:

1. 涉案软件的功能地位:VirtualApp源代码在四款软件中主要实现沙盒分身功能,是基础功能,虽非应用层面的核心功能,但缺乏该功能则软件无法发挥作用。

2. 侵权规模:四款软件在各平台下载累计上百万次,WY公司虽抗辩存在刷量,但其提供的数据显示华为应用市场下载次数也有近二十万次,WY公司可通过引流实现流量变现。

3. 商业授权费用:LW公司VirtualApp商业版本对外授权许可收费情况(单款APP一年20万元)。

4. 会员费收入:WY公司收取四款软件会员费的数额,但该数额仅是判赔考虑因素之一(因未提交源代码才构成侵权,而非因使用了开源代码本身)。

5. 侵权情节:WY公司的侵权行为性质、侵权时间及拒不履行开源授权许可协议的情况。

6. 维权合理费用:公证费、鉴定费(30000元)、翻译费(820元),律师费酌情考虑。

说明:法院对LW公司调查会员费流水的申请不予支持,认为WY公司因未提交源代码下载违反GPL V3协议才构成侵权,会员费数额仅是判赔考虑因素之一。

七、判决结果

一审判决结果:

1. 被告广州市WY网络科技有限公司应于本判决发生法律效力之日立即停止侵害原告济宁市LW网络科技有限公司对涉案"LWVirtualApp)插件化框架虚拟引擎系统[简称:VirtualApp]V1.0"的发行权、信息网络传播权的行为,即停止通过互联网提供含有侵权沙盒分身功能源代码的"微信视频美颜版""微信视频美颜相机版App""微信视频美颜相机""微信视频美颜相机版"四款软件的下载、安装和运营服务;

2. 被告广州市WY网络科技有限公司应于本判决发生法律效力之日起十日内赔偿原告济宁市LW网络科技有限公司经济损失及维权合理开支共计50万元;

3. 驳回原告济宁市LW网络科技有限公司的其他诉讼请求。

案件受理费:112700元,由原告LW公司负担72700元,被告WY公司负担40000元。

上诉权利:如不服本判决,可在判决书送达之日起十五日内,向本院递交上诉状,上诉于最高人民法院。

八、案涉法条

法律法规

具体条款

《中华人民共和国著作权法》(2010年修正)第四十八条第一项

未经著作权人许可复制、发行其作品的,应当根据情况,承担停止侵害、消除影响、赔礼道歉、赔偿损失等民事责任。

《中华人民共和国著作权法》(2010年修正)第四十九条

侵犯著作权的,侵权人应当按照权利人的实际损失给予赔偿;实际损失难以计算的,可以按照侵权人的违法所得给予赔偿。赔偿数额还应当包括权利人为制止侵权行为所支付的合理开支。权利人的实际损失或者侵权人的违法所得不能确定的,由人民法院根据侵权行为的情节,判决给予五十万元以下的赔偿。

《中华人民共和国合同法》第四十五条

当事人对合同的效力可以约定附条件。附生效条件的合同,自条件成就时生效。附解除条件的合同,自条件成就时失效。

《计算机软件保护条例》第八条第一款

复制权即是将软件制作一份或者多份的权利,发行权即是以出售或者赠与方式向公众提供软件的原件或者复制权的权利。

《计算机软件保护条例》第九条

软件著作权属于软件开发者,本条例另有规定的除外。如无相反证明,在软件上署名的自然人、法人或者其他组织为开发者。

《计算机软件保护条例》第十条

合作开发的软件不能分割使用的,其著作权由各合作开发者共同享有,通过协商一致行使;不能协商一致,又无正当理由的,任何一方不得阻止他方行使除转让权以外的其他权利,但是所得收益应当合理分配给所有合作开发者。

《中华人民共和国著作权法实施条例》第九条

合作作品不可以分割使用的,其著作权由各合作作者共同享有,通过协商一致行使;不能协商一致,又无正当理由的,任何一方不得阻止他方行使除转让以外的其他权利,但是所得收益应当合理分配给所有合作作者。

《最高人民法院关于审理著作权民事纠纷案件适用法律若干问题的解释》第七条第一款

当事人提供的涉及著作权的底稿、原件、合法出版物、著作权登记证书、认证机构出具的证明、取得权利的合同等,可以作为证据。

《最高人民法院关于审理侵害信息网络传播权民事纠纷案件适用法律若干问题的规定》第三条

网络用户、网络服务提供者未经许可,通过信息网络提供权利人享有信息网络传播权的作品、表演、录音录像制品,除法律、行政法规另有规定外,人民法院应当认定其构成侵害信息网络传播权行为。

《中华人民共和国民事诉讼法》第六十四条第一款

当事人对自己提出的主张,有责任提供证据。

《中华人民共和国民事诉讼法》第一百四十四条

被告经传票传唤,无正当理由拒不到庭的,或者未经法庭许可中途退庭的,可以缺席判决。

GNU通用公共授权许可协议第3版(GPL V3)

5条(发布修改过的源代码版本)、第7条(附加条款)、第8条(终止授权)、第10条(对下游接收者的自动授权)等

九、原告主张VS被告完整答辩意见

序号

原告主张

被告答辩意见

1

原告享有VirtualApp软件全部著作权

原告非唯一著作权人,开源项目有32位贡献者,属合作作品,单方转让无效

2

被告未经许可使用原告软件源代码,构成侵权

VirtualApp适用GPL V3协议,被告依据协议合法取得授权,不构成侵权

3

商业使用需购买授权,被告未购买商业授权即商用构成侵权

GPL V3协议允许商业用途,商业使用限制是协议禁止的"进一步限制",无效

4

被诉软件与原告软件424个可比代码中421个相似,构成实质相似

被诉软件基于VirtualXposed开源项目自主研发,有合法来源

5

被告侵害复制权、发行权、信息网络传播权

复制权被信息网络传播权吸收,不应同时主张

6

被告获利超过6000万元,主张赔偿1500万元

原告恶意诉讼,赔偿请求毫无依据,已下架被诉软件

7

四被告构成共同侵权,承担连带责任

三代收公司仅提供代收服务,已做形式审查,不构成共同侵权

8

原告为维权支出合理费用15万元

原告恶意诉讼,合理费用应由其自行承担

9

项目人删除GPL V3协议后,软件不再受协议约束

开源免费发布后权利已用尽,不得撤销开源授权,删除协议无回溯力

10

VirtualXposed保留了商业使用限制条款,被告应遵守

下游被授权人有权删除附加限制条款,VirtualXposed已删除此类要求

十、原被告双方的核心诉讼策略及攻防

1、原告核心诉讼策略

策略一:著作权登记+公证固定,夯实权利基础

原告首先以计算机软件著作权登记证书作为权利基础,初步证明其著作权人身份。

通过多份公证书固定GitHub项目页面、项目管理者身份、联系方式等信息,将开源项目与原告公司建立关联,形成完整的证据链。

策略二:司法鉴定+实质相似,证明侵权事实

原告委托专业司法鉴定机构进行代码相似性鉴定,得出424个可比代码中421个相似的结论,以"实质相似+接触可能"的标准证明侵权。

通过公证下载被诉软件的多个版本,证明侵权行为的持续性和广泛性。

策略三:高额获利+连带责任,追求最大赔偿

原告以被告获利为计算依据,用"下载量×会员费"的方式推算被告获利超过6000万元,进而主张1500万元赔偿,采取"高要价"策略。

将代收费用的三家公司一并起诉,主张连带责任,扩大责任主体范围,增加执行保障。

策略四:商业使用限制+违反协议,构建侵权路径

原告同时主张被告违反商业使用限制条款和GPL V3协议(不提供开源代码),构成无权使用。

在法院释明后,明确选择侵权之诉而非违约之诉,以获得更强的救济(停止侵害、损害赔偿等)。

2、被告核心诉讼策略

策略一:主体不适格抗辩,从根源否定诉权

被告首先挑战原告的著作权人身份,主张开源项目有众多贡献者,属合作作品,原告无权单方起诉。

这是釜底抽薪式的抗辩,如果成功则原告全部诉求失去基础。

策略二:GPL协议+合法授权,否定侵权定性

被告核心抗辩是GPL V3协议的合法授权,主张其依据开源协议合法取得使用权利,不构成侵权。

被告详细论证GPL V3协议的条款内容和法律效力,强调协议允许商业用途,商业使用限制是协议禁止的"进一步限制"。

策略三:合法来源+自主研发,切断侵权链条

被告主张被诉软件基于VirtualXposed开源项目自主研发,试图通过"中间层"切断与原告软件的直接关联。

强调自身投入大量人力财力进行创新开发,被诉软件的核心价值在于美颜功能而非沙盒分身。

策略四:权利滥用+违背诚信,进行道德反击

被告指责原告违背开源社区准则,将开源项目据为私有并敛财,试图从道德层面否定原告诉讼的正当性。

主张原告恶意诉讼,请求驳回全部诉讼请求。

3、双方攻防要点总结

争议维度

原告进攻

被告防御

主体资格

软著登记证书+GitHub项目关联=著作权人

32位贡献者+合作作品=原告无权单方起诉

权利基础

商业使用需购买授权,被告未授权即商用

GPL V3允许商业用途,限制条款无效

侵权定性

代码实质相似+未经许可=侵权

GPL V3合法授权+VirtualXposed来源=合法

开源义务

被告未公开源代码,违反GPL协议

用户协议已提供源代码下载地址

赔偿数额

获利6000万+主张1500万

恶意诉讼+刷量+美颜功能为核心价值

责任主体

四被告共同侵权+连带责任

代收公司仅提供服务+形式审查=无责

4、法院裁判的核心逻辑

法院在双方攻防之间走出了一条"中间道路":

对原告:支持了其著作权人身份和起诉资格,认定被告行为构成侵权,但大幅降低了赔偿数额(从1500万降至50万),且驳回了对三代收公司的连带责任主张。

对被告:支持了其关于"商业使用限制条款无效"的主张,但否定了其"不构成侵权"的核心抗辩,认定未公开源代码违反GPL V3协议构成侵权。

裁判本质:法院确立了"违反GPL协议=授权终止=构成侵权"的裁判规则,为开源软件司法保护提供了重要先例,但同时通过低额赔偿体现了司法的谦抑性,避免对开源生态造成过大冲击。

本案作为国内较早深入论述GPL V3协议法律性质的判例,其裁判思路和论证逻辑对开源软件著作权保护具有重要的参考价值。

-end-
关联推荐:
刘大亮律师简介:崇尚科技人文精神的法律人
全球AI专利法律服务体系介绍
扫描二维码,加入AI合规交流群。
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-20 19:31:29 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/952947.html
  2. 运行时间 : 0.298737s [ 吞吐率:3.35req/s ] 内存消耗:4,827.38kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=53d8b89bff28dcf1592a59068002cf16
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 4.22 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 10.56 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.11 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001073s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001499s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000653s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000864s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001626s ]
  6. SELECT * FROM `set` [ RunTime:0.000623s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001832s ]
  8. SELECT * FROM `article` WHERE `id` = 952947 LIMIT 1 [ RunTime:0.001822s ]
  9. UPDATE `article` SET `lasttime` = 1787225489 WHERE `id` = 952947 [ RunTime:0.016031s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000678s ]
  11. SELECT * FROM `article` WHERE `id` < 952947 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001037s ]
  12. SELECT * FROM `article` WHERE `id` > 952947 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000935s ]
  13. SELECT * FROM `article` WHERE `id` < 952947 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.015028s ]
  14. SELECT * FROM `article` WHERE `id` < 952947 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.044162s ]
  15. SELECT * FROM `article` WHERE `id` < 952947 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.025157s ]
0.302598s