CN108768662A - 一种对Android APK增加自定义签名的方法 - Google Patents
一种对Android APK增加自定义签名的方法 Download PDFInfo
- Publication number
- CN108768662A CN108768662A CN201810541749.5A CN201810541749A CN108768662A CN 108768662 A CN108768662 A CN 108768662A CN 201810541749 A CN201810541749 A CN 201810541749A CN 108768662 A CN108768662 A CN 108768662A
- Authority
- CN
- China
- Prior art keywords
- apk
- signature
- self
- block
- signing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种对Android APK增加自定义签名的方法,其是将使用官方仅v1签名或包含v2签名方案已签名的APK进行添加额外签名,并附加到对应APK上。该APK整个字节流作为原文进行P7签名处理,并在仅v1方案时插入EOCD块的注释段中,在包含v2签名方案时插入APK Signing Block块中的“ID‑值”对中,并且使用自定义ID(unit32)+P7签名长度(unit32)+P7签名数据的结构,可以方便的在仅v1签名方案中计算EOCD注释段大小以及包含v2签名方案下计算EOCD中核心中央目录的偏移量。有效地增强了原签名APK的完整性校验基础,并且提供包括我国自主研制的SM2算法更多的签名算法支持,同时在P7签名数据中携带签名证书,提供应用证书以进行CA认证。并且修改后APK可以正常的用于原先APK的升级安装中,不影响原APK的签名校验。
Description
技术领域
本发明涉及签名和验签的方法,特别涉及Android中用于在APK完整性校验机制中添加自定义签名验签的方法。
背景技术
在Android平台上运行的每个应用都必须有开发者签名,在应用商店或Android设备上的软件包安装程序会拒绝没有获得签名就尝试安装的应用。
在Android上,应用签名是将应用放入沙盒的第一步。签名可确保不同应用使用不同的用户ID,从而确保一个应用无法访问其他应用数据,除通过明确定义进程间通信(IPC)访问。
Android应用目前可由第三方(原始设备制造商(OEM)、运营商、其他应用市场)进行签名,也可自签名,Android提供了使用自签名证书进行代码签名的功能,应用并非必须由核心机构签名,目前并不对应用证书进行电子商务认证中心(CA)认证。
目前Android支持两种签名方案,一种是JAR签名,即常说的v1(Signed JAR File)签名方案(参考相关链接:https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#Signed_JAR_File),v1签名方案缺点在于无法保证APK的完整性,例如APK在没有v2签名(参考相关链接https://source.android.google.cn/security/apksigning/v2)的情况下,其格式为标准的ZIP格式,修改ZIP的元数据并不被识别,即不被v1签名所保护。在Android 7.0中引入了APK签名v2(v2签名方案),该方案直接对APK的内容进行哈希处理和签名,并将“APK签名分块”插入APK中,该方案对ZIP元数据的修改将会导致APK签名作废,不仅加快了校验速度,并增强了完整性校验。因为APK的v2签名方案是在Androuid 7.0(Nought)中引入的,为了兼容Android 6.0(Marshmallow)及更低的版本安装,多数情况下将采用v1+v2的签名方案,即先使用v1签名对apk进行签名,然后再使用v2签名对其进行签名。
目前上述的签名方案中,首先是不对应用证书进行CA认证,其次仅支持部分签名算法ID,且完全不支持我国自主研制的SM2算法签名,为此,申请人进行了有益的探索和尝试,找到了解决上述问题的办法,下面将要介绍的技术方案便是在这种背景下产生的。
发明内容
本发明的目的之一在于针对现有Android签名方案所存在的不足而提供一种对Android APK增加自定义签名的方法,该方法提供一种不影响原APK的签名验签,添加额外的自定义签名,并在签名中携带签名证书用以进行CA认证,并提供更加全面的算法支持,例如SM3WithSM2,SHA3-256WITHRSA等。并考虑到仅v1签名,以及携带v2签名的不同应用场景,提供兼容的解决方案。
本发明所解决的技术问题可以采用以下技术方案来实现:
一种对Android APK增加自定义签名的方法,包括如下步骤:
步骤1,获取整个APK文件作为字节流读入;
步骤2,不为签名操作,跳过该步骤,如果为签名操作,根据步骤1获取的APK字节流做不带原文的P7签名处理,获得以原APK字节流作为原文的P7签名;
步骤3,APK为标准ZIP格式,获取对应的中央目录记录的结尾(EOCD)块;
步骤4,根据步骤1获取的APK字节流,判断签名方案,如果仅有v1签名方案则进入步骤5,如果存在v2签名方案则进入步骤8;
步骤5,如果为签名操作,进入步骤6,如果为验签操作,进入步骤7;
步骤6,根据步骤3获得的中央目录记录的结尾块,修改其中注释段大小,并在注释段内容中添加对应自定义“ID-值“对,ID为自定义ID,值为步骤2获取到P7签名块大小,以unit32值来标识该大小,后跟P7签名数据块;进入步骤14;
步骤7,根据步骤3获得的中央目录记录的结尾块,获取到注释段大小,根据注释段大小,查询自定义ID,紧跟自定义ID的内容为P7签名数据大小,根据P7签名数据大小读入P7签名数据;还原注释段大小,删除添加的自定义数据,得到原先APK数据作为原文,进行P7验签操作,进入步骤15;
步骤8,在存在v2签名方案的情况下,APK在标准ZIP格式上添加了一个“APK签名分块”,根据步骤3获取的中央目录记录的结尾块,通过中央目录记录的结尾块中记录的核心中央目录偏移可以找到APK Signing Block;
步骤9,如果为签名操作,进入步骤10,如果为验签操作,进入步骤12;
步骤10,根据步骤8获取的APK Signing Block,因为v2签名对APK完整性加入了校验,但是校验内容仅包括Contents of ZIP entries,Central Directory,End of CentralDirectory三个部分与APK Signing Block中的signed data部分,保护APK Signing Block中的signed data是为了防止删除安全系数高的签名的攻击,但是并不影响APK SigningBlock中其他字段的变动,根据官方文档在解译该分块时,应忽略ID未知的“ID-值”对,我们可以通过插入对应自定义“ID-值”对到对应“ID-值”序列位置,ID为自定义ID,值为步骤2获取到P7签名块大小,以unit32值来标识该大小,后跟与仅v1签名方案保持一致格式的P7签名数据块;
步骤11,根据步骤10修改后的Signing APK Block计算出新的核心中央目录偏移量,并根据步骤3获的EOCD块,将EOCD块中记录的核心中央目录偏移修改为现有最新的偏移量;进入步骤14;
步骤12,根据步骤8获取的APK Signing Block,根据官方定义结构可以查询到“ID-值”对的位置,然后跳过官方“APK签名方案v2分块”即为自定ID位置,判断ID值是否为自定义ID,防止其他插入数据引发异常,获取P7签名数据大小,后紧跟P7签名数据;
步骤13,根据步骤12获得的APK Signing Block,删除自定义部分内容,并将EOCD块中记录的核心中央目录偏移修改为删除自定义字段后核心中央目录偏移,以还原的APK字节流作为原文,进行P7签名的验签操作;进入步骤15;
步骤14,将步骤6与步骤11生成的新APK的字节流写入APK文件中。新的APK即包含自定义“ID-值”对的APK;
步骤15,如果验签结果为true,则对应额外签名验证成功,如果验签结果为false,则对应额外签名验证失败。
在本发明的一个优选实施例中,所述步骤4中,所述v2签名方案为包含仅有v2签名方案以及v1,v2签名方案同时存在良好总情况。
在本发明的一个优选实施例中,所述步骤6中,所述注释段大小仅2字节,数据不超过64K,unit32占4字节,可标识近4g大小数据。
本发明的一个优选实施例中,所述步骤6中,所述P7签名数据块带签名证书用于CA认证,不带原文,以整个APK字节流作为原文。
由于采用了如上的技术方案,本发明与现有技术相比,具有以下优点:
1.将整个使用官方签名后APK的字节流作为原文,进行P7签名操作(带签名证书用于CA认证,不带原文,已整个APK字节流作为原文,带原文数据过大),之后将产生的P7签名数据按照自定义ID(unit32)+P7签名长度(unit32)+P7签名数据结构在仅v1签名签名方案时插入EOCD块中注释段,在包含v2签名方案时插入APK Signing Block块中的“ID-值”对中。
2.对整个APK的字节流进行处理:将整个APK字节流进行处理,进一步扩大了原APK的完整性校验,原APK在仅v1签名方案是,可以通过该方案对ZIP元数据进行保护,当修改了对应ZIP元数据,将会在验签过程失败,在包含v2签名方案中,进一步增强了完整性校验,再添加额外签名后,无论在APK的字节流中做任何处理,均会被新增签名所校验。并且在基础上,提供比官方更加全面的算法支持,不仅局限于官方的7种签名算法,支持多种签名算法,包括我国自主研制的SM2算法。
3.使用P7签名进行签名验签:P7结构中不带原文,因为原文为整个APK的字节流,数据可能比较大,影响APK体积,且仅v1方案中注释段大小必须限制在64K,所以采用不带原文的P7签名方式,P7签名数据中带签名证书,以提供对应用证书进行CA的认证,更加有效地保证APK的开发者签名的来源。
4.签名数据按照自定义ID(unit32)+P7签名长度(unit32)+P7签名数据:签名数据按照自定义ID(unit32)+P7签名长度(unit32)+P7签名数据,可以保证再有其他ID存在的情况下,可以找到我方定义的结构,并获取对应的P7签名数据,在仅v1签名方案中计算EOCD注释段大小以及包含v2签名方案下计算EOCD中核心中央目录的偏移量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种对Android APK增加自定义签名的方法的流程图。
图2为本发明的对APK添加额外签名流程图。
图3是本发明的对APK添加的额外签名进行验签流程图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
参见图1,对APK添加额外签名的流程说明:
签名步骤1:获取APK字节流。
签名步骤2:对步骤1获取的APK字节流做一次P7签名处理(带签名证书用于CA认证,不带原文,已整个APK字节流作为原文,带原文数据过大)。
签名步骤3:获取APK中的EOCD块。
签名步骤4:判断是仅v1签名方案还是包含v2签名方案。如果是仅v1签名方案进入步骤5,如果是包含v2签名方案进入步骤6。
签名步骤5:在EOCD块的注释内容中添加自定义ID(unit32)+P7签名数据长度(unit32)+P7签名数据,修改EOCD块注释大小字段为现注释大小+自定义内容大小。进入步骤7。
签名步骤6:根据EOCD块中核心中央目录偏移查询到APK Signing Block位置,向其中“ID-值”对中插入ID为自定义ID(unit32),值为P7签名数据长度(unit32)+P7签名数据的数据内容,并修改EOCD块中核心中央目录偏移为原偏移+添加数据的长度。
签名步骤7:输出对应修改后的字节流到新的APK文件中。
参见图2,对APK添加的额外签名进行验签的流程说明:
验签步骤1:获取APK字节流。
验签步骤2:获取APK中EOCD块。
验签步骤3:判断是仅v1签名方案还是包含v2签名方案。如果是仅v1签名方案进入步骤4,如果是包含v2签名方案进入步骤6。
验签步骤4:在EOCD注释段中查找对应自定ID,若未找到则直接判定验签失败,找到对应ID,ID后紧跟为P7签名数据大小,根据大小可以获取对应P7签名数据。
验签步骤5:将EOCD中注释段添加自定义内容删除,并将对应EOCD注释段大小字段更新为现大小-自定义内容大小。进入步骤9。
验签步骤6:通过EOCD块中记录的核心中央目录偏移,获取APK Signing Block块。
验签步骤7:在APK Signing Blcok中查找对应ID,若未找到则直接判定验签失败,找到对应ID,ID后紧跟为P7签名数据大小,根据大小可以获取对应P7签名数据(格式与仅v1情况下保持一致)。
验签步骤8:将自定义“ID-值”对从APK Signing Block中删除,并修改EOCD块中核心中央目录偏移为现偏移-自定义内容大小。
验签步骤9:将还原的APK字节流作为原文,与P7签名数据进行验签操作。
Claims (4)
1.一种对Android APK增加自定义签名的方法,其特征在于,包括如下步骤:
步骤1,获取整个APK文件作为字节流读入;
步骤2,不为签名操作,跳过该步骤,如果为签名操作,根据步骤1获取的APK字节流做不带原文的P7签名处理,获得以原APK字节流作为原文的P7签名;
步骤3,APK为标准ZIP格式,获取对应的中央目录记录的结尾(EOCD)块;
步骤4,根据步骤1获取的APK字节流,判断签名方案,如果仅有v1签名方案则进入步骤5,如果存在v2签名方案则进入步骤8;
步骤5,如果为签名操作,进入步骤6,如果为验签操作,进入步骤7;
步骤6,根据步骤3获得的中央目录记录的结尾块,修改其中注释段大小,并在注释段内容中添加对应自定义“ID-值“对,ID为自定义ID,值为步骤2获取到P7签名块大小,以unit32值来标识该大小,后跟P7签名数据块;进入步骤14;
步骤7,根据步骤3获得的中央目录记录的结尾块,获取到注释段大小,根据注释段大小,查询自定义ID,紧跟自定义ID的内容为P7签名数据大小,根据P7签名数据大小读入P7签名数据;还原注释段大小,删除添加的自定义数据,得到原先APK数据作为原文,进行P7验签操作,进入步骤15;
步骤8,在存在v2签名方案的情况下,APK在标准ZIP格式上添加了一个“APK签名分块”,根据步骤3获取的中央目录记录的结尾块,通过中央目录记录的结尾块中记录的核心中央目录偏移可以找到APK Signing Block;
步骤9,如果为签名操作,进入步骤10,如果为验签操作,进入步骤12;
步骤10,根据步骤8获取的APK Signing Block,因为v2签名对APK完整性加入了校验,但是校验内容仅包括Contents of ZIP entries,Central Directory,End of CentralDirectory三个部分与APK Signing Block中的signed data部分,保护APK Signing Block中的signed data是为了防止删除安全系数高的签名的攻击,但是并不影响APK SigningBlock中其他字段的变动,根据官方文档在解译该分块时,应忽略ID未知的“ID-值”对,我们可以通过插入对应自定义“ID-值”对到对应“ID-值”序列位置,ID为自定义ID,值为步骤2获取到P7签名块大小,以unit32值来标识该大小,后跟与仅v1签名方案保持一致格式的P7签名数据块;
步骤11,根据步骤10修改后的Signing APK Block计算出新的核心中央目录偏移量,并根据步骤3获的EOCD块,将EOCD块中记录的核心中央目录偏移修改为现有最新的偏移量;进入步骤14;
步骤12,根据步骤8获取的APK Signing Block,根据官方定义结构可以查询到“ID-值”对的位置,然后跳过官方“APK签名方案v2分块”即为自定ID位置,判断ID值是否为自定义ID,防止其他插入数据引发异常,获取P7签名数据大小,后紧跟P7签名数据;
步骤13,根据步骤12获得的APK Signing Block,删除自定义部分内容,并将EOCD块中记录的核心中央目录偏移修改为删除自定义字段后核心中央目录偏移,以还原的APK字节流作为原文,进行P7签名的验签操作;进入步骤15;
步骤14,将步骤6与步骤11生成的新APK的字节流写入APK文件中。新的APK即包含自定义“ID-值”对的APK;
步骤15,如果验签结果为true,则对应额外签名验证成功,如果验签结果为false,则对应额外签名验证失败。
2.如权利要求1所述的一种对Android APK增加自定义签名的方法,其特征在于,所述步骤4中,所述v2签名方案为包含仅有v2签名方案以及v1,v2签名方案同时存在良好总情况。
3.如权利要求1所述的一种对Android APK增加自定义签名的方法,其特征在于,在本发明的一个优选实施例中,所述步骤6中,所述注释段大小仅2字节,数据不超过64K,unit32占4字节,可标识近4g大小数据。
4.如权利要求1所述的一种对Android APK增加自定义签名的方法,其特征在于,本发明的一个优选实施例中,所述步骤6中,所述P7签名数据块带签名证书用于CA认证,不带原文,以整个APK字节流作为原文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810541749.5A CN108768662B (zh) | 2018-05-30 | 2018-05-30 | 一种对Android APK增加自定义签名的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810541749.5A CN108768662B (zh) | 2018-05-30 | 2018-05-30 | 一种对Android APK增加自定义签名的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108768662A true CN108768662A (zh) | 2018-11-06 |
CN108768662B CN108768662B (zh) | 2021-05-07 |
Family
ID=64004649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810541749.5A Active CN108768662B (zh) | 2018-05-30 | 2018-05-30 | 一种对Android APK增加自定义签名的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108768662B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634760A (zh) * | 2018-12-13 | 2019-04-16 | 上海阔地教育科技有限公司 | 基于Web端和App端的数据通讯方法及系统 |
CN109740305A (zh) * | 2018-12-26 | 2019-05-10 | 深圳市优博讯科技股份有限公司 | 一种应用程序安装包签名方法、安装方法及电子设备 |
CN111970689A (zh) * | 2020-06-29 | 2020-11-20 | 百度在线网络技术(北京)有限公司 | Ota数据包的生成方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021320A (zh) * | 2014-06-20 | 2014-09-03 | 福建天晴数码有限公司 | 保护apk文件版权的方法、装置和系统 |
US8868924B1 (en) * | 2014-03-04 | 2014-10-21 | Kaspersky Lab Zao | System and method for modifying a software distribution package |
CN104391728A (zh) * | 2014-12-12 | 2015-03-04 | 北京奇虎科技有限公司 | 软件升级差量包获取方法和相应的升级方法以及装置 |
CN106357817A (zh) * | 2016-11-02 | 2017-01-25 | 广东浪潮大数据研究有限公司 | 一种应用程序的安装方法及服务端和客户端 |
CN106991320A (zh) * | 2017-03-30 | 2017-07-28 | 福建实达电脑设备有限公司 | 基于定制化安卓系统的应用鉴权方法 |
CN107301343A (zh) * | 2017-06-19 | 2017-10-27 | 大连中科创达软件有限公司 | 安全数据处理方法、装置及电子设备 |
-
2018
- 2018-05-30 CN CN201810541749.5A patent/CN108768662B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8868924B1 (en) * | 2014-03-04 | 2014-10-21 | Kaspersky Lab Zao | System and method for modifying a software distribution package |
CN104021320A (zh) * | 2014-06-20 | 2014-09-03 | 福建天晴数码有限公司 | 保护apk文件版权的方法、装置和系统 |
CN104391728A (zh) * | 2014-12-12 | 2015-03-04 | 北京奇虎科技有限公司 | 软件升级差量包获取方法和相应的升级方法以及装置 |
CN106357817A (zh) * | 2016-11-02 | 2017-01-25 | 广东浪潮大数据研究有限公司 | 一种应用程序的安装方法及服务端和客户端 |
CN106991320A (zh) * | 2017-03-30 | 2017-07-28 | 福建实达电脑设备有限公司 | 基于定制化安卓系统的应用鉴权方法 |
CN107301343A (zh) * | 2017-06-19 | 2017-10-27 | 大连中科创达软件有限公司 | 安全数据处理方法、装置及电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109634760A (zh) * | 2018-12-13 | 2019-04-16 | 上海阔地教育科技有限公司 | 基于Web端和App端的数据通讯方法及系统 |
CN109740305A (zh) * | 2018-12-26 | 2019-05-10 | 深圳市优博讯科技股份有限公司 | 一种应用程序安装包签名方法、安装方法及电子设备 |
CN109740305B (zh) * | 2018-12-26 | 2022-03-18 | 深圳市优博讯科技股份有限公司 | 一种应用程序安装包签名方法、安装方法及电子设备 |
CN111970689A (zh) * | 2020-06-29 | 2020-11-20 | 百度在线网络技术(北京)有限公司 | Ota数据包的生成方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108768662B (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104346167B (zh) | 生成应用渠道包的方法及装置 | |
US10922435B2 (en) | Image encryption method, image viewing method, system, and terminal | |
CN105391717B (zh) | 一种apk签名认证方法及其系统 | |
CN104052818B (zh) | 一种移动终端的版本升级方法及装置 | |
CN108768662A (zh) | 一种对Android APK增加自定义签名的方法 | |
CN107301343B (zh) | 安全数据处理方法、装置及电子设备 | |
PT565314E (pt) | Metodo para assinar programas itinerantes | |
WO2021218166A1 (zh) | 合同文签方法、装置、设备及计算机可读存储介质 | |
CN106940651A (zh) | Pos终端软件升级方法和装置 | |
CN112560017B (zh) | 一种使用三级证书认证实现apk统一签名的方法 | |
CN107980132A (zh) | 一种apk签名认证方法及系统 | |
CN113627145A (zh) | 一种参数化配置的文件生成方法、装置、设备和介质 | |
CN111539000B (zh) | 一种基于pdf文档的简化电子签名流程的方法、系统及装置 | |
CN110347678B (zh) | 一种金融数据的存储方法、系统、装置及设备 | |
CN108170461A (zh) | 差分升级包生成方法、差分升级方法及装置 | |
US20120030556A1 (en) | Method for enabling interactive content within messaging application | |
CN117371002A (zh) | 模型加密方法、模型解密方法、加密装置和可读存储介质 | |
CN111273920A (zh) | 一种向安装包写入数据的方法、装置及存储介质 | |
CA3146479A1 (en) | Certification of a measurement result of a measuring device | |
US20230075524A1 (en) | Signature control method, non-transitory computer-readable storage medium for storing signature control program, and information processing device | |
CN108563396B (zh) | 一种安全的云端对象存储方法 | |
CN109635558A (zh) | 访问控制方法、装置和系统 | |
US20130097493A1 (en) | Managing Digital Signatures | |
CN106789088A (zh) | 一种软件版本签名机制 | |
WO2021102753A1 (zh) | 刷机包加密方法、装置、电子设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190411 Address after: 200436 Room 601, Lane 299, Lane 299, JIANGCHANG West Road, Jingan District, Shanghai Applicant after: Geer software Limited by Share Ltd Applicant after: Beijing Sonicom Network System Co., Ltd. Address before: 200436 Room 601, Lane 299, Lane 299, JIANGCHANG West Road, Jingan District, Shanghai Applicant before: Geer software Limited by Share Ltd |
|
GR01 | Patent grant | ||
GR01 | Patent grant |