A method, apparatus, device, and medium for distributing an application
By centrally managing application certificates through an application certificate server, the problem of package name conflicts in the operating system is resolved, application security and legitimacy verification are achieved, and the accuracy and consistency of application distribution are ensured.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2021-04-21
- Publication Date
- 2026-04-24
AI Technical Summary
In operating systems, package name conflicts caused by duplicate application package names affect the normal operation of applications and the developer's experience, and existing technologies cannot effectively solve this problem.
The application certificate server provides unified management and assigns a unique application certificate to each developer. The application certificate contains the developer's identifier and other relevant information to distinguish the developer, resolve package name conflicts, and ensure the legality and integrity of the application through the verification mechanism between the application certificate server and the application distribution server.
It enables accurate identification of application developers in the case of duplicate package names, avoids conflicts, improves the security and consistency of application distribution, and ensures the legitimacy and integrity of applications.
Smart Images

Figure CN115220733B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of electronics, and more particularly to a method, apparatus, device, and medium for distributing applications. Background Technology
[0002] Currently, some operating systems use the application's package name as a unique identifier for the application. When installing, upgrading, or running applications, applications with the same package name will be recognized as the same application.
[0003] Some systems, based on openness considerations, support the installation of applications from multiple markets / channels (such as browsers and in-app installations). Different applications distributed by different developers on different channels cannot guarantee globally unique package names, which will induce many package name conflict problems. This affects the normal operation of the application in the system and also results in a poor experience for the developers.
[0004] Therefore, the aforementioned problems in the existing technology still need to be improved. Summary of the Invention
[0005] This application provides a method, apparatus, device, and medium for distributing applications, which solves the problem of package name conflicts caused by duplicate application package names during application distribution.
[0006] In view of the above, the first aspect of this application provides a method for distributing an application, comprising:
[0007] The application certificate server sends a first application certificate to the application developer's device. This first application certificate is used to identify the application developer. The application developer's device is used to add the first application certificate to the application to be distributed in order to obtain the target application.
[0008] The application certificate server obtains second application certificate information from the application distribution server. The second application certificate information is used to record the information of the second application certificate carried in the target application sent by the application developer's device to the application distribution server.
[0009] If the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, the application certificate server sends a verification result to the application distribution server.
[0010] In this application, the application certificate server centrally manages and assigns application certificates to developers to distinguish them from other developers. Developers then add these certificates to their applications, thus resolving package name conflicts caused by duplicate package names. Furthermore, because the application certificates are centrally managed by the application certificate server, it can assist the application distribution server in verifying applications to be distributed based on the application certificate information sent by the distribution server, thereby ensuring unified management of applications to be distributed.
[0011] Optionally, before the application certificate server sends the first application certificate to the application developer's device, the method further includes: the application certificate server obtaining a request from the application developer's device; the application certificate server generating a developer identifier based on the request, the developer identifier being used to identify the application developer; and the application certificate server generating the first application certificate, the first application certificate including the developer identifier.
[0012] In this application, the developer sends a request to the application certificate server through the application developer device. This request is used to apply for an application certificate. The application certificate server then assigns a developer identifier and generates an application certificate based on the request, and then distributes the application certificate to the application developer device, thereby realizing the unified management and control of application certificates by the application certificate server.
[0013] Optionally, if the request includes the company name information of the application developer and / or the country information of the application developer, then the application certificate server generates the first application certificate by: the application certificate server generating the first application certificate based on the developer identifier, and based on the company name information of the application developer and / or the country information of the application developer, the first application certificate including the developer identifier, and one or more of the company name information or the country information associated with the developer identifier.
[0014] In this application, the application certificate includes a developer identifier and one or more of the company name information or country information associated with the developer identifier, thereby enabling the application certificate to identify the developer based on this information, thus distinguishing it from other developers and avoiding conflicts caused by the same application package name.
[0015] Optionally, the application certificate server obtains the second application certificate information from the application distribution server, including: the application certificate server obtaining the developer identifier and the second digest of the second application certificate from the application distribution server; after obtaining the second application certificate information from the application distribution server, the application certificate server further includes: the application certificate server obtaining the first digest of the first application certificate from the local machine based on the developer identifier; if the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, the application certificate server sends a verification pass result to the application distribution server, including: if the application certificate server determines that the first application certificate matches the second application certificate based on the first digest and the second digest, the application certificate server sends the verification pass result to the application distribution server.
[0016] In this application, since the application certificate server is responsible for the unified management of application certificates, the application certificate server can verify the target application to be listed based on the second application certificate information sent by the application distribution server. The second application certificate information is based on the digest of the application certificate. Its advantage is that the amount of data transmitted is small. The application distribution server only needs to send the digest content to the application certificate server to verify whether the application certificate matches.
[0017] Optionally, the first digest is a first hash value generated by the application certificate server based on the content recorded in the first application certificate, and the second digest is a second hash value generated by the application distribution server based on the content recorded in the second application certificate; then, if the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, the application certificate server sends the verification result to the application distribution server, including: if the application certificate server determines that the first hash value and the second hash value are the same, the application certificate server sends the verification result to the application distribution server.
[0018] In this application, the second digest and the first digest can be hashed separately. Since changes in the content of the application certificate will cause changes in the hash value, when the hash values of the first digest and the second digest are the same, the application certificate server can determine that the first application certificate matches the second application certificate, meaning that the content of the application certificate on the application distribution server side has not changed, and thus the verification passes. Conversely, if the hash values of the first digest and the second digest are different, it means that the first application certificate does not match the second application certificate, the application certificate obtained by the application distribution server has changed, and the verification fails.
[0019] Optionally, the application certificate server obtains the second application certificate information from the application distribution server, including: the application certificate server obtaining the second application certificate from the application distribution server; after obtaining the second application certificate information from the application distribution server, the application certificate server further includes: obtaining the developer identifier from the second application certificate; obtaining the first application certificate locally based on the developer identifier; if the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, the application certificate server sends a verification pass result to the application distribution server, including: if the application certificate server compares the developer identifiers of the first application certificate and the second application certificate and they are the same, and the company name information of the application developer is the same, and / or the country information of the application developer is the same, the application certificate server sends a verification pass result to the application distribution server.
[0020] In this application, the application distribution server sends the entire contents of the application certificate to the application certificate server during the verification process, so that the application certificate server can compare the application certificate with the application certificate stored locally by the developer on the application certificate server, thereby performing more accurate verification, such as application certificate integrity verification, legality verification and attribution verification.
[0021] A second aspect of this application provides a method for distributing an application, comprising: an application distribution server obtaining a target application from an application developer's device; the application distribution server obtaining a second application certificate from the target application, the second application certificate being sent to the application developer's device by an application certificate server and added to the target application by the application developer's device; the application distribution server sending second application certificate information of the second application certificate to the application certificate server, the second application certificate information being used to record the content in the second application certificate; and the application distribution server allowing the distribution of the target application based on a verification result obtained from the application certificate server, the verification result being used to indicate that the second application certificate matches a first application certificate distributed by the application certificate server to the application developer.
[0022] Optionally, the second application certificate includes a developer identifier and one or more of the company name information or the country information associated with the developer identifier, the developer identifier being an identifier assigned by the application certificate server to identify the application developer.
[0023] Optionally, the second application certificate information includes a second digest of the second application certificate and the developer identifier, so that the application certificate server can obtain the first application certificate stored locally based on the developer identifier, and send the verification result when it determines that the first application certificate matches the second application certificate through the first digest and the second digest of the first application certificate; then before the application distribution server sends the second application certificate information of the second application certificate to the application certificate server, the method further includes: the application distribution server generating the second digest based on the content recorded in the second application certificate.
[0024] Optionally, the second digest is a hash value, so that when the application certificate server generates a first hash value based on the first application certificate and the second hash value are the same, it sends the verification result; then the application distribution server generates the second digest based on the content recorded in the second application certificate, including: the application distribution server generates the second hash value based on the content recorded in the second application certificate.
[0025] Optionally, the application distribution server sends the second application certificate information of the second application certificate to the application certificate server, including: the application distribution server sends the second application certificate to the application certificate server so that when the developer identifier of the first application certificate and the second application certificate are the same, and the company name information of the application developer is the same, and / or the country information of the application developer is the same, the application certificate server sends the verification result to the application distribution server.
[0026] The beneficial effects of the second aspect mentioned above can be found in the relevant records of the first aspect mentioned above, and will not be repeated here.
[0027] A third aspect of this application provides a method for distributing an application, comprising: an application developer device obtaining a first application certificate from an application certificate server, the first application certificate being used to identify the application developer; the application developer device adding the first application certificate to an application to be distributed, thereby obtaining a target application; and the application developer device sending the target application to an application distribution server.
[0028] Optionally, before the application developer device obtains the first application certificate from the application certificate server, the method further includes: the application developer device sending a request to the application certificate server, the request being used to request the acquisition of the first application certificate.
[0029] Optionally, the request may include the name of the company where the application developer is located, and / or the country where the application developer is located.
[0030] Optionally, the first application certificate includes a developer identifier and one or more of the company name information or the country information associated with the developer identifier, wherein the developer identifier is an identifier assigned by the application certificate server to identify the application developer.
[0031] The beneficial effects of the third aspect mentioned above can be found in the relevant records of the first aspect mentioned above, and will not be repeated here.
[0032] The fourth aspect of this application provides a method for distributing an application, including:
[0033] The user device obtains the target application from the application distribution server. The target application is the application uploaded to the application distribution server by the application developer device. The target application includes an application certificate, which is a certificate sent to the application developer device by the application certificate server so that the application distribution server can verify the target application through the application certificate. When the package name of the target application is the same as the package name of the first local application in the user device, and the application certificate of the target application matches the application certificate of the first local application, the user device determines the target application as an upgrade package of the first local application and upgrades or overwrites the first local application with the target application.
[0034] In this application, since the target application includes an application certificate that can identify the application's developer, the user device can determine that the application matching the application certificate is an upgrade package of the existing application during the installation of the target application, thereby avoiding application conflicts that occur when the package name is duplicated.
[0035] Optionally, the method further includes: when the package name of the target application is the same as the package name of the first local application in the user device, and the application certificate of the target application does not match the application certificate of the first local application, the user device determines the target application as a new application; and the user device installs the target application into the local system.
[0036] In this application, since the target application includes an application certificate that can identify the application developer, when the user device is installing the target application, if the package name is duplicated, the user device can determine that the current application is a brand new application based on the mismatched application certificate, thereby avoiding the application conflict problem that occurs when the package name is duplicated.
[0037] Optionally, the method further includes: when the package name of the target application does not differ from the package name of a local application on the user device, the user device determines the target application as a new application; and the user device installs the target application into the local system.
[0038] In this application, since the target application is verified by the application distribution server during the distribution process, when the package name is not duplicated, the target application can directly identify the current application as a brand new application for installation. The verification process of the application distribution server ensures the security of the application.
[0039] The fifth aspect of this application provides a system for distributing applications, comprising: an application developer device and an application distribution server, wherein the application developer device is used to add an application certificate to an application to be distributed to obtain a target application, the application certificate being used to identify the application developer; the application distribution server is used to obtain the target application from the application developer device and verify the target application according to the application certificate; the application distribution server is further used to allow the distribution of the target application when the verification is successful.
[0040] Optionally, the system further includes an application certificate server, wherein the application certificate server is configured to allocate an application certificate to the application developer device according to the request of the application developer device; the application distribution server is further configured to obtain the application certificate from the target application and send the application certificate information of the application certificate to the application certificate server; the application certificate server is further configured to compare the application certificate information sent by the application distribution server with the application certificate information of the local application certificate to determine whether the application certificate sent by the application distribution server matches the local application certificate, and if they match, send a verification pass result to the application distribution server; the application distribution server is further configured to allow the distribution of the target application when the verification pass result is obtained.
[0041] Optionally, the system also includes a user device, which is used to obtain the target application distributed by the application distribution server and determine whether the target application is a brand new application or an installation and upgrade package of a local application based on the application certificate of the target application.
[0042] The beneficial effects of the fifth aspect mentioned above can be found in the relevant records of the first and fourth aspects mentioned above, and will not be repeated here.
[0043] The sixth aspect of this application provides an application certificate server, including:
[0044] The sending unit is used to send a first application certificate to the application developer's device. The first application certificate is used to identify the application developer. The application developer's device is used to add the first application certificate to the application to be distributed in order to obtain the target application.
[0045] The acquisition unit is used to obtain second application certificate information from the application distribution server. The second application certificate information is used to record the information of the second application certificate carried in the target application sent by the application developer's device to the application distribution server.
[0046] The verification unit is configured to, if the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, send the verification result to the application distribution server via the sending unit.
[0047] Optionally, the acquisition unit is also used to: acquire a request from the application developer's device;
[0048] It also includes an execution unit, which generates a developer identifier based on the request, and the developer identifier is used to identify the application developer;
[0049] The execution unit is also used to generate the first application certificate, which includes the developer identifier.
[0050] Optionally, if the request includes the company name information of the application developer and / or the country information of the application developer, then the execution unit is further configured to:
[0051] The first application certificate is generated based on the developer identifier, and based on the company name information of the application developer and / or the country information of the application developer. The first application certificate includes the developer identifier, and one or more of the company name information or the country information associated with the developer identifier.
[0052] Optionally, the obtaining unit is further configured to: obtain the developer identifier and a second digest of the second application certificate from the application distribution server;
[0053] The execution unit is also configured to: obtain a first digest of the first application certificate from the local machine based on the developer identifier;
[0054] The verification unit is also configured to: if it is determined from the first digest and the second digest that the first application certificate matches the second application certificate, cause the sending unit to send the verification result to the application distribution server.
[0055] Optionally, the first digest is a first hash value generated by the application certificate server based on the content recorded in the first application certificate, and the second digest is a second hash value generated by the application distribution server based on the content recorded in the second application certificate; then, if the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, the verification unit is further configured to:
[0056] If the first hash value is determined to be the same as the second hash value, the sending unit sends the verification result to the application distribution server.
[0057] Optionally, the obtaining unit is further configured to: obtain the second application certificate from the application distribution server;
[0058] The execution unit is also used to: obtain the developer identifier from the second application certificate;
[0059] The execution unit is also used to: obtain the first application certificate from the local machine based on the developer identifier;
[0060] The verification unit is also configured to: if the developer identifier of the first application certificate is the same as that of the second application certificate, and the company name information of the application developer is the same, and / or the country information of the application developer is the same, then send the verification result to the application distribution server.
[0061] The seventh aspect of this application provides an application distribution server, comprising:
[0062] The acquisition unit is used to acquire the target application from the application developer's device.
[0063] An execution unit is configured to obtain a second application certificate from the target application, the second application certificate being sent by the application certificate server to the application developer's device and added to the target application by the application developer's device;
[0064] The sending unit is used to send the second application certificate information of the second application certificate to the application certificate server, wherein the second application certificate information is used to record the contents of the second application certificate.
[0065] The execution unit is also configured to allow the distribution of the target application based on the verification result obtained from the application certificate server, wherein the verification result is used to indicate that the second application certificate matches the first application certificate distributed by the application certificate server to the application developer.
[0066] Optionally, the second application certificate includes a developer identifier and one or more of the company name information or the country information associated with the developer identifier, the developer identifier being an identifier assigned by the application certificate server to identify the application developer.
[0067] Optionally, the second application certificate information includes a second digest of the second application certificate and the developer identifier, so that the application certificate server can obtain the first application certificate stored locally based on the developer identifier, and send the verification pass result when it determines that the first application certificate matches the second application certificate through the first digest and the second digest of the first application certificate; then the execution unit is further configured to:
[0068] The second digest is generated based on the content recorded in the second application certificate.
[0069] Optionally, the second digest is a hash value, so that the application certificate server sends the verification result when the first hash value generated based on the first application certificate is the same as the second hash value; then the execution unit is further configured to:
[0070] A second hash value is generated based on the content recorded in the second application certificate.
[0071] Optionally, the transmitting unit is also used for:
[0072] Send the second application certificate to the application certificate server so that the application certificate server, when comparing the developer identifier of the first application certificate and the second application certificate, finds that they are the same, and the company name information of the application developer is the same, and / or the country information of the application developer is the same, sends the verification result to the application distribution server.
[0073] The eighth aspect of this application provides an application developer device, comprising:
[0074] The acquisition unit is used to acquire a first application certificate from the application certificate server, which is used to identify the application developer.
[0075] An execution unit is used to add the first application certificate to the application to be distributed in order to obtain the target application;
[0076] The sending unit is used to send the target application to the application distribution server.
[0077] Optionally, the sending unit is further configured to send a request to the application certificate server, the request being used to request the acquisition of the first application certificate.
[0078] Optionally, the request may include the name of the company where the application developer is located, and / or the country where the application developer is located.
[0079] Optionally, the first application certificate includes a developer identifier and one or more of the company name information or the country information associated with the developer identifier, wherein the developer identifier is an identifier assigned by the application certificate server to identify the application developer.
[0080] The ninth aspect of this application provides a user equipment, including:
[0081] The acquisition unit is used to acquire a target application from the application distribution server. The target application is an application uploaded to the application distribution server by the application developer's device. The target application includes an application certificate, which is a certificate sent to the application developer's device by the application certificate server, so that the application distribution server can verify the target application through the application certificate.
[0082] An execution unit is configured to determine the target application as an upgrade package of the first local application when the package name of the target application is the same as the package name of the first local application in the user device and the application certificate of the target application matches the application certificate of the first local application, and to upgrade or overwrite the first local application with the target application.
[0083] Optionally, the execution unit is also used for:
[0084] When the package name of the target application is the same as the package name of the first local application in the user device, and the application certificate of the target application does not match the application certificate of the first local application, the target application is identified as a new application.
[0085] Install the target application onto the local system.
[0086] Optionally, the execution unit is also used for:
[0087] If the package name of the target application is not the same as the package name of the local application on the user's device, the target application is identified as a new application.
[0088] Install the target application onto the local system.
[0089] The tenth aspect of this application provides an electronic device, which includes: an interactive device, an input / output (I / O) interface, a processor, and a memory storing program instructions;
[0090] This interactive device is used to obtain user input commands;
[0091] The processor is used to execute program instructions stored in memory, causing the electronic device to perform the method described in any one of the first to fourth aspects.
[0092] The eleventh aspect of this application provides a computer-readable storage medium including instructions that, when executed on a computer device, cause the computer device to perform the method described in any one of the first to fourth aspects.
[0093] The beneficial effects of the sixth to eleventh aspects mentioned above can be found in the descriptions of the first and fourth aspects mentioned above, and will not be repeated here. Attached Figure Description
[0094] Figure 1 This is a diagram illustrating how terminal devices download applications through different app stores.
[0095] Figure 2 This is a diagram illustrating the interface displayed to the user by the terminal when the application signatures are inconsistent.
[0096] Figure 3A schematic diagram illustrating the application distribution method provided in an embodiment of this application;
[0097] Figure 4 This is a schematic diagram illustrating the user device's verification of the target application in the application distribution method provided in this application embodiment;
[0098] Figure 5 A schematic diagram of a system for distributing applications provided in an embodiment of this application;
[0099] Figure 6 A schematic diagram of the electronic device provided in the embodiments of this application;
[0100] Figure 7 A schematic diagram of an application certificate server provided in an embodiment of this application;
[0101] Figure 8 A schematic diagram of an application distribution server provided in an embodiment of this application;
[0102] Figure 9 A schematic diagram of the application developer device provided in the embodiments of this application;
[0103] Figure 10 This is a schematic diagram of a user equipment provided in an embodiment of this application. Detailed Implementation
[0104] This invention provides a method for distributing applications, which solves the problem of package name conflicts caused by duplicate application package names during application distribution.
[0105] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative effort should fall within the scope of protection of the present application.
[0106] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a particular order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments described herein can be implemented in a sequence other than that illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0107] Currently, some operating systems use the application's package name as a unique identifier for the application. When installing, upgrading, or running applications, applications with the same package name will be recognized as the same application.
[0108] Some systems, based on openness considerations, support the installation of applications from multiple markets / channels (such as browsers and in-app installations). Different applications distributed by different developers on different channels cannot guarantee globally unique package names, which will induce many package name conflict problems. This affects the normal operation of the application in the system and also results in a poor experience for the developers.
[0109] For example, Figure 1 As shown, application A (101) has the package name "com.123" and is uploaded to application market A (102) by developer A. Terminal device 105 downloads and installs application A (101) into its local system through application market A (102). Application B (103) also has the package name "com.123" and is uploaded to application market B (104) by developer B. Terminal device 105 downloads application B (103) into its local system through application market B (104). During the installation process, application B (103) and the already installed application A (101) both have the package name "com.123", resulting in a package name conflict. At this time, application B (103) cannot be installed on the terminal's local system.
[0110] Therefore, current application identification commonly adopts the "package name + signing certificate" method, where the signing certificate is a certificate generated by the developer using a private key during application development. As a specific implementation, when installing an application on a system, the "package name + signing certificate" of the application to be installed needs to be compared with the "package name + signing certificate" of already installed applications in the system, which may result in the following situation.
[0111] 1. Different package names: The application to be installed is identified as a brand new application. The application can be installed independently and will not conflict with the already installed applications. They can coexist.
[0112] 2. If the package names are the same, verify the signing certificate as follows:
[0113] 1) Signature certificate consistency: The application to be installed is identified as the same application developed by the same developer as the application already installed in the system with the same signature certificate. The application to be installed can perform overwrite / upgrade installation on the already installed application.
[0114] 2) Inconsistent signature certificates: The application to be installed is identified as a different application developed by different developers. The application is not allowed to be installed / upgraded. The old application must be uninstalled before the new application can be installed.
[0115] Still based on the above Figure 1 To illustrate, consider the example where application A and application B are developed by different developers, both with the package name "com.123". However, because developer A and developer B have different private keys, application A and application B have different signing certificates. During the installation of application B, the system verification reveals that application B's signing certificate is inconsistent with application A's. At this point, the terminal displays the following to the user: Figure 2 The interface shown prompts the user via dialog box 201 that the signature of the current application B is inconsistent with the signature of the installed older version of application A, and application A needs to be uninstalled before application B can be installed.
[0116] However, some problems still exist in the current solution. When a developer changes the signing certificate for the same application, the system will recognize the change and disallow the upgrade, still requiring the old version of the application to be uninstalled before the new version can be installed. Furthermore, if the developer's certificate / private key is leaked, other developers can use the leaked certificate / private key to sign malicious applications (with the same package name as the attacked application). These malicious applications can then be directly installed on the system and overwrite the original application.
[0117] The above issues all affect the efficiency and security of application identification.
[0118] Therefore, to address this issue, this application provides a method for distributing applications. This method uses a server for unified management and assigns application certificates to developers to differentiate them from other developers, thus resolving package name conflicts caused by duplicate package names. For ease of understanding, the method provided in this application embodiment will be described in detail below with reference to the accompanying drawings.
[0119] Please see Figure 3 , Figure 3 This is a schematic diagram illustrating the method for distributing applications provided in the embodiments of this application, such as... Figure 3As shown in the embodiments of this application, the method for distributing applications includes...
[0120] 301. The application developer's device obtains the application certificate from the application certificate server.
[0121] In this embodiment, the application developer device is the terminal where the application developer resides. As a specific implementation, the application developer device is equipped with a developer platform provided for developers, allowing them to develop applications on this platform. The application certificate server manages application certificates and generates the application certificate for the application developer device. The subject of this application certificate includes a content provider identity (CPID), which is an identifier assigned to the application developer device by the application certificate server to identify the developer. This CPID can also be called the developer identifier. In one possible implementation, the CPID has a unique correspondence with the developer, enabling the application developed by that developer to be distinguished from applications developed by other developers based on the subject of the application certificate.
[0122] Furthermore, the subject in the application certificate may also include the name of the company where the application developer's device is located and the developer's country. Optionally, it may also include any other information that can identify the developer's identity. This application embodiment does not limit this.
[0123] It should be noted that, as another specific implementation, a single developer can obtain multiple application certificates, and the subjects contained in these multiple application certificates can have at least some identical content. For example, for developer A, during the development phase of the target application, a debugging certificate (application certificate A) is required; during the deployment phase, a commercial certificate (application certificate B) is required. Developer A may also experience application certificate content leakage, for example, if the content of application certificate B is leaked, then developer A needs to apply for a new application certificate C. In the above example, the subjects contained in the multiple application certificates A, B, and C obtained by the same developer A must have at least some identical content; for example, the CPID must be the same in the subjects of the three application certificates. Optionally, all the content recorded in the subjects of the three application certificates can be identical.
[0124] As a specific implementation, the developer sends a request to the application certificate server through the application developer device. This request is used to apply for an application certificate. Optionally, the request includes information such as the developer's company name and country. The application certificate server verifies the request, such as verifying the authenticity of the company name and the developer's country. Then, it assigns a CPID and generates an application certificate based on the request, and then distributes the application certificate to the application developer device, thereby enabling the application developer device to obtain the application certificate.
[0125] As one possible implementation, the application certificate subject is content assigned by the application certificate server to the application developer's device that distinguishes it from other developers. For example, the application certificate subject can be globally unique. In one possible scenario, if multiple servers are used to distribute application certificates, the field range of the application certificates distributed by each server can be configured to be different, thereby ensuring that the CPID of the application certificates distributed by each server is different within its management domain. Alternatively, the subject of the application certificate assigned to the terminal by one or more servers can be unique within a certain geographical area, such as the subject content of the application certificate being unique within China. In this way, when the application market subsequently lists a target application, it can verify the target application based on the application certificate subject. Compared to the existing technology where users generate signing certificates using private keys for verification, this method prevents certificate forgery, improves certificate security, and also enhances the security of subsequent application verification, avoiding conflicts arising from signing certificates.
[0126] 302. The application developer's device adds the application certificate to the target application.
[0127] In this embodiment, the target application is an application developed by the developer through the developer platform on the application developer's device. When the target application is developed, the application developer's device packages and adds the application certificate to the target application, so that the target application can be identified by the subject in the application certificate. During the subsequent installation process of the target application, the target application can prevent conflicts with other applications based on the subject.
[0128] Optionally, the application developer's device can also add a package name and a developer signature to the target application. The package name is used to identify the name of the target application, thereby forming an identification method of "PackageName+subject" in the target application. The developer signature is a signature generated by the developer based on the private key. In the scheme provided in the embodiments of this application, the developer signature can be used for integrity verification of the target application to prevent the installation package of the target application from being damaged during data transmission.
[0129] 303. The application developer's device sends the target application to the application distribution server.
[0130] In this embodiment, the application distribution server is used to manage and distribute applications. For example, the application distribution server can be a server that provides application market services, or other application distribution channels that allow end users to download applications. This embodiment does not limit the scope of the application distribution server. Taking an application distribution server that supports application market services as an example, the application developer's device sends the target application to the application distribution server so that the target application can be listed in the application market and downloaded by other users from the application market.
[0131] 304. The application distribution server verifies the target application based on the application certificate.
[0132] In this embodiment, the subject in the application certificate is content uniformly managed by the application certificate server. Therefore, the application marketplace in the application distribution server can verify the target application based on the application certificate through the application certificate server, preventing conflicts between applications. In contrast, in traditional solutions, the signature certificate used for application verification is generated by the user and lacks unified management, thus making it impossible to prove the legitimacy of the signature certificate's origin.
[0133] Alternatively, the specific verification steps can be performed using the following methods.
[0134] 1. The application distribution server obtains the second digest and CPID of the second application certificate.
[0135] In this embodiment, the application certificate obtained by the application distribution server from the target application is a second application certificate. The application distribution server generates a second digest based on the content recorded in the second application certificate. Optionally, the second digest can be a hash value generated based on the content of the second application certificate. Changes in the content of the application certificate will cause changes in this hash value. Therefore, the second digest can accurately represent the content contained in the current second application certificate. The CPID is the content recorded in the subject of the application certificate. The application distribution server can obtain the CPID from the subject of the second application certificate.
[0136] 2. The application distribution server sends the second digest and CPID to the application certificate server.
[0137] In this embodiment, the application certificate server is used to manage application certificates. The application certificate server records information about the application certificates assigned to each developer. Therefore, the application distribution server sends the second digest to the application certificate server, which then performs the verification of the second digest.
[0138] Optionally, the application distribution server can also obtain a developer signature from the target application. This developer signature is a signature generated by the developer using their private key and can be used to verify the integrity of the second digest. As a specific implementation, the application distribution server sends the developer signature to the application certificate server, enabling the server to determine whether the second digest has been tampered with based on the developer signature.
[0139] It should be noted that the application certificate server and the application distribution server can be two independent servers or two different functional modules within the same server. This application does not limit the specific implementation of these embodiments.
[0140] 3. The application certificate server verifies the application certificate of the target application based on the second digest and CPID.
[0141] In this embodiment, the application certificate server is a module for managing certificates. As a specific implementation, verification is performed in the following ways.
[0142] 1) The application certificate server obtains the first application certificate assigned to the corresponding developer from the local machine based on the CPID.
[0143] In this embodiment, the application certificate is generated and uniformly managed by the application certificate server. Therefore, the application certificate server locally stores the application certificate corresponding to each CPID. Based on the CPID sent by the application distribution server, the application certificate server can query the application certificate corresponding to the CPID locally.
[0144] 2) The application certificate server generates a first digest based on the content of the first application certificate.
[0145] In this embodiment, the first digest is generated by the application certificate server based on the content recorded in the first application certificate stored locally. The method for generating this digest is the same as the method by which the application distribution server generates the second digest based on the content recorded in the second application certificate.
[0146] 3) Use the certificate server to compare the first digest with the second digest.
[0147] In this embodiment, as a specific implementation, the second digest and the first digest can be hashed separately. Since changes in the content of the application certificate will cause changes in the hash value, when the hash values of the first digest and the second digest are the same, the application certificate server can determine that the first application certificate matches the second application certificate, meaning that the content of the application certificate on the application distribution server side has not changed, and thus the verification passes. Conversely, if the hash values of the first digest and the second digest are inconsistent, it indicates that the first application certificate and the second application certificate do not match, the application certificate obtained by the application distribution server has changed, and the verification fails.
[0148] 4. The application certificate server sends the verification result to the application distribution server.
[0149] In this embodiment, the application certificate server sends the verification result to the application distribution server so that the application distribution server is aware of the application certificate server's verification status of the target application. If the verification result fails, the application distribution server determines that the current target application is illegal and will not be listed, thus ending the process. If the verification result passes, the application distribution server lists the target application.
[0150] It should be noted that the methods provided in steps 1 to 4 above are based on application certificate digest verification. Their advantage lies in the small amount of data transmitted; the application distribution server only needs to send the digest content to the application certificate server to verify whether the application certificate matches. Optionally, the application distribution server can also send the full content of the application certificate to the application certificate server, allowing the application certificate server to compare the application certificate with the application certificate stored locally by the developer, thereby performing more precise verification, such as application certificate integrity verification, validity verification, and attribution verification.
[0151] This embodiment provides two verification methods for the second application certificate: one is to verify by sending a digest of the application certificate, and the other is to verify by directly sending the entire content of the second application certificate. The verification result determines whether the first application certificate and the second application certificate match. Optionally, "matching" can be achieved in the following ways:
[0152] a. The first abstract is completely or partially the same as the second abstract.
[0153] b. The first hash value is exactly the same as or partially the same as the second hash value.
[0154] c. The contents recorded in the first application certificate and the second application certificate are exactly the same or partially the same.
[0155] Therefore, in the verification process of step 304 above, the application certificate server determines that the verification is successful if any one of the conditions a to c is met, and sends the verification result to the application distribution server.
[0156] In this embodiment, since the subject in the application certificate is content uniformly managed by the application certificate server, the application certificate can be verified on the application distribution server (i.e., the application market) side through interaction with the application certificate server, thereby preventing conflicts between applications.
[0157] It should be noted that since the above verification steps are performed through the application certificate, as a specific implementation, if the developer changes the developer signature information in the target application as needed, for example, if the developer changes the developer signature due to the leakage of the private key for executing the application signature, this operation will not affect the verification. That is, the application distribution server will not be affected by the developer changing the developer signature, which improves the stability of the solution. As long as the content of the subject in the allocated application certificate remains unchanged, the "PackageName+subject" identification method will not change, so the application certificate will not affect the application's identification. Verification will not be affected if the developer changes the certificate, and the normal installation / upgrade of the application can still be guaranteed.
[0158] Furthermore, if the application distribution server verifies the target application and finds it to be successful, subsequent steps are executed.
[0159] 305. The application distribution server grants download permissions to the target application.
[0160] In this embodiment, when the application distribution server verifies the target application, it indicates that the target application is a legitimate application and does not conflict with any existing applications. At this point, the target application is available for download by other terminals. For example, if the application distribution server is an application market, then this step is specifically implemented as follows: the application market lists the target application, and the listed application can be queried and downloaded by various terminals.
[0161] It should be noted that the above-mentioned application distribution server only represents one of the application markets. As a specific implementation, there can be multiple application distribution servers, each corresponding to a different application market or application distribution channel. The specific working method of each server can be the same as that of the application distribution server, so this application embodiment will not be described in detail.
[0162] 306. The user device obtains the target application from the application distribution server.
[0163] In this embodiment, the user device is any terminal that needs to download and install the target application. For example, if the application distribution server is a server that supports application market services, then the user device is the terminal of an ordinary user accessing the application market. As a specific implementation, the target application is downloaded to the user device's local machine from the application market (application distribution server) in the form of an installation package. The installation package of the target application includes the package name of the target application, the application certificate, and the developer's signature.
[0164] 307. The user equipment verifies the target application.
[0165] In this embodiment, after the user device downloads the target application to its local machine, the target application needs to be verified before installation to determine whether it is a completely new application or an upgrade package of a local application. For details, please refer to [link to relevant documentation]. Figure 4 , Figure 4 This illustrates one implementation method for user equipment to verify target applications, such as... Figure 4 As shown, the verification steps for user equipment can be performed in the following manner.
[0166] 401. The user device obtains the application certificate for the target application.
[0167] In this embodiment, the application certificate in the target application is the certificate added to the target application in the aforementioned steps. When the user device obtains the application certificate from the target application, it further executes the subsequent steps.
[0168] 402. The user device determines whether the package name of the target application is the same as the package name of the local application.
[0169] In this embodiment, since the target application's application certificate carries a subject that is uniformly managed by the application certificate server and can be distinguished from other developers, the application distribution server (application market) has already verified the target application. When the user device downloads the target application from the application market to its local machine, if the verification determines that the target application's package name is not the same as the local application's package name, the user device can directly identify the current target application as a brand new application, and the verification will pass. If the target application's package name is the same as the package name of an application already installed on the user device, then the subsequent steps are executed.
[0170] 403. The user device determines whether the application certificate of the target application is consistent with the application certificate of the local application.
[0171] In this embodiment, if the subject in the application certificate of the target application is consistent with the subject in the application certificate of the first locally installed application, the user device can determine that the current target application is an upgrade package of the first local application, and the verification passes. If the subject in the application certificate of the target application is inconsistent with the subject in the application certificates of all locally installed applications, the user device determines that the target application is a brand new application, and the verification passes.
[0172] In this embodiment, through steps 401 to 403 above, the user equipment verifies the target application. Since the application certificate in the target application carries the subject uniformly managed by the application certificate server, installation conflicts caused by duplicate application package names in open systems are avoided, while ensuring the security and accuracy of application verification.
[0173] Furthermore, when the user device passes the verification of the target application, the following steps are performed.
[0174] 308. The user device installs the target application locally.
[0175] In this embodiment, based on the verification result, if the user device determines that the target application is a brand new application, it will directly install the target application on the local system. If the user device determines that the target application is an upgrade package of a first local application already installed locally, it will upgrade or overwrite the first application according to the target application.
[0176] It should be noted that during the above process, if the user device fails to obtain an application certificate from the application when verifying the application downloaded to the local device, it means that the current application has not executed the application distribution method provided in this application, and the application can be directly determined to be an illegal application, and the verification will fail.
[0177] In this embodiment, the application certificate obtained by the application developer's device from the application certificate server contains a subject uniformly managed by the application certificate server. After packaging the application certificate and package name into the target application, the target application is uploaded to the application distribution server. The application distribution server verifies the target application based on the subject and package name in the application certificate, and after successful verification, it makes the application available for download. After the user device downloads the target application from the application distribution server, it verifies the target application locally using the subject and package name in the application certificate. Since the subject of the application certificate is uniformly managed by the application certificate server and used to distinguish developers, installation conflicts between applications due to the same package name are avoided. This eliminates the problem of different developers having the same package name and effectively solves the application identifier conflict problem under multiple application distribution channels. At the same time, the mechanism of application certificate being uniformly managed by the application certificate server can ensure the legality of the application certificate source and the uniformity of the format, providing a basis for introducing developer identity information into the application identifier. With the application certificate obtained, developers can distribute applications through different channels, and the servers of each distribution channel can verify the application to be listed using the subject uniformly managed by the application certificate server. While ensuring unified management of the system's application ecosystem, the openness of the system is also taken into account.
[0178] For ease of understanding, the following example illustrates the method for distributing applications provided in this application embodiment.
[0179] In step 301 above, the developer applies for an application certificate from the application certificate server through the application developer device. The subject in the application certificate is generated by the application certificate server according to a fixed format. For example, if the CPID of the application developer device is 98789479145275401, the developer's company is Beijing xx Co., Ltd., and the developer's country is China (CN), then the subject in the application certificate will take the following format.
[0180] subject=(O=Beijing xx Co., Ltd.,OU=98789479145275401,C=CN)
[0181] The software is named "First Application", and its package name (PackageName) follows the format below.
[0182] packagename=(com.123.example.video)
[0183] The developer signs the "first application" using a private key, thereby obtaining the developer's signature in the "first application".
[0184] Finally, the developer packages the "first application" using the application developer's device. The packaged "first application" includes the packagename, subject, and developer signature mentioned above.
[0185] The application developer's device uploads the packaged "First Application" to "Application Market A," which is an application market running on the application distribution server.
[0186] After obtaining the "First Application" application from "Application Market A", the "First Application" application is verified in accordance with the relevant steps described in 304 above.
[0187] After the verification is successful, "App Store A" will list the "First App" application. Users' devices, such as mobile phones, can download the "First App" application to their local devices through "App Store A". After that, users' mobile phones need to perform the following verification steps on the "First App" application.
[0188] 1) During the installation of "First Application", the user's mobile phone installer module extracts the application certificate from the application for verification:
[0189] a) If the application certificate cannot be extracted, it is identified as an illegal application, installation is prohibited, and the process ends.
[0190] b) If the data can be extracted successfully, proceed to the next step.
[0191] 2) The user's mobile installer module extracts the PackageName (com.123.example.video) of the "first application" and compares it with the PackageName of the already installed applications:
[0192] a) If the package name is not the same as that of an already installed application, the "first application" is identified as a brand new application, and a fresh installation is performed, at which point the process ends.
[0193] b) If the name is the same as an already installed application package, proceed to the next step.
[0194] 3) The user's mobile phone installer module extracts the application certificate's subject=(O=Beijing xx Co., Ltd.,OU=98789479145275401,C=CN) from the "First Application" application and determines whether it matches the developer certificate subject of the repackaged application:
[0195] a) If the subject in the application certificate is the same, for example, if the installed application with the repackage name is a lower version of "first application", then the two applications will be identified as the same application, and an upgrade / overwrite installation will be performed, and the process will end.
[0196] b) If the subject in the application certificates is inconsistent, for example, the package name of the "first application" (PackageName=(com.123.example.video) is the same as the package name of the "second application" already installed on the user's phone (PackageName=(com.123.example.video), resulting in a duplicate, but the application certificate subject=(O=Shanghai xx Co., Ltd.,OU=98789479111111111,C=CN) of the "second application" is different from the application certificate subject=(O=Beijing xx Co., Ltd.,OU=98789479145275401,C=CN), then the two applications will be identified as different applications provided by different developers, and a fresh installation will be performed. The two applications can coexist without overwriting each other, and the process ends.
[0197] In this embodiment, using the above method, the "second application" and the "first application," which originally had the same package name, are distinguished by having different subjects in their application certificates. This allows the user's phone to differentiate between the two applications during installation, avoiding installation conflicts caused by identical package names. Furthermore, since the subject in the "first application's" application certificate is centrally managed by the application certificate server, the application market "App Market A" can verify the "first application" based on the subject in the application certificate. This enables the application market to verify the applications listed, ensuring both system openness and application security within the application market.
[0198] Furthermore, based on the application distribution method provided in the embodiments of this application, the embodiments of this application further provide an operating system that supports third-party application markets and resolves issues such as package name conflicts and application identity spoofing in distributed distribution scenarios involving multiple application markets. For ease of understanding, the system provided in the embodiments of this application will be described in detail below with reference to the accompanying drawings.
[0199] Please see Figure 5 ,like Figure 5 As shown, the operating system provided in this application embodiment includes...
[0200] Application developer device 501, which is the application developer device mentioned above, can be found in the previous description and will not be repeated here.
[0201] The certificate management module 502 runs on the aforementioned application certificate server. Specifically, it includes a certificate management unit 5021 and a certificate verification unit 5022. The certificate management unit 5021 allocates an application certificate 506 to the application developer device 501 based on the application developer device's application request. This application certificate 506 contains a globally unique subject generated by the certificate management unit 5021. For details on the implementation, please refer to step 301 above; further explanation is omitted here.
[0202] Furthermore, the certificate verification unit 5022 is used to verify the application certificate 506 of the application based on the application market 504, so as to verify the integrity, legality and ownership of the application certificate 506. For details, please refer to the relevant description of step 304 above, which will not be repeated here.
[0203] The application packaging and signing module 503 runs on the application developer's device 501. It takes the application certificate 506 obtained by the application developer's device 501 from the certificate management unit 5021, along with the application's package name, the developer's company name, and the developer's country, and packages this information into the target application 507 developed by the developer module, resulting in the packaged target application 508. For details on the implementation, please refer to the description in step 302 above; it will not be repeated here.
[0204] Application Market 504: In this embodiment of the application, application market 504 runs on an application distribution server. Application market 504 is used to obtain the packaged target application 508 uploaded by application developer device 501, and to verify the application certificate 506 in the target application through certificate verification unit 5022. For details, please refer to the relevant description of step 304 above, which will not be repeated here.
[0205] Furthermore, the application market 504 running on the application distribution server is application market A. Since the system provided in this application embodiment supports third-party application markets, the system may also include multiple application markets such as application market B, application market C, ..., application market N. The working method of each application market can be referred to the above description, and will not be repeated here.
[0206] After completing the verification process, the aforementioned application marketplace 504 will list the verified target application 509 for user devices 505 to download.
[0207] User equipment 505 is a user-side terminal that downloads the target application through application market 504. Specific methods for user equipment 505 to download, verify, and install the target application 510 can be found above. Figure 3 and Figure 4 The relevant records will not be repeated here.
[0208] The operating system provided in this embodiment allocates application certificates to developer terminals through the certificate management unit in the certificate management module. This application certificate contains a globally unique subject. The application packaging and signing module on the developer terminal packages the application certificate into the developed target application and uploads the packaged target application to the app store. The app store then verifies the target application's application certificate through the certificate verification unit in the certificate management module. This allows developers to distribute applications through different channels, and the servers of each distribution channel can verify the application to be listed using the globally unique subject in the application certificate, improving the system's openness and ensuring its purity. After successful verification, the app store lists the target application for user devices to download. After downloading the target application, the user device verifies it using the target application's application certificate, thus avoiding application conflicts caused by identical package names.
[0209] From a hardware structure perspective, the above method can be implemented by a single physical device, multiple physical devices working together, or a logical functional module within a single physical device. This application does not specifically limit this aspect.
[0210] For example, the above method can be used Figure 6 This is achieved through electronic devices within the system. Figure 6 This is a schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application. The electronic device may be an application developer device, an application certificate server, an application distribution server, or a user device in the embodiments of this invention. The electronic device includes at least one processor 601, a communication line 602, a memory 603, and at least one communication interface 604.
[0211] The processor 601 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (server IC), or one or more integrated circuits used to control the execution of the program of the present application.
[0212] Communication line 602 may include a path for transmitting information between the aforementioned components.
[0213] Communication interface 604 uses any transceiver-like device for communicating with other devices or communication networks, such as Ethernet, radio access network (RAN), wireless local area networks (WLAN), etc.
[0214] The memory 603 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical discs, laser discs, optical discs, digital universal optical discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but not limited thereto. The memory may exist independently and be connected to the processor via communication line 602. The memory may also be integrated with the processor.
[0215] The memory 603 stores computer execution instructions for implementing the scheme of this application, and its execution is controlled by the processor 601. The processor 601 executes the computer execution instructions stored in the memory 603, thereby implementing the billing management method provided in the following embodiments of this application.
[0216] Optionally, the computer execution instructions in the embodiments of this application may also be referred to as application code, and the embodiments of this application do not specifically limit this.
[0217] In a specific implementation, as one embodiment, the processor 601 may include one or more CPUs, for example... Figure 6 CPU0 and CPU1 in the CPU.
[0218] In a specific implementation, as one example, an electronic device may include multiple processors, for example... Figure 6 Processors 601 and 607 are described herein. Each of these processors may be a single-core (single-CPU) processor or a multi-core (multi-CPU) processor. A processor here may refer to one or more devices, circuits, and / or processing cores used to process data (such as computer program instructions).
[0219] In a specific implementation, as one embodiment, the electronic device may further include an output device 605 and an input device 606. The output device 605 communicates with the processor 601 and can display information in various ways. For example, the output device 605 may be a liquid crystal display (LCD), a light-emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector, etc. The input device 606 communicates with the processor 601 and can receive user input in various ways. For example, the input device 606 may be a mouse, keyboard, touchscreen device, or sensing device, etc.
[0220] The aforementioned electronic device can be a general-purpose device or a special-purpose device. In specific implementations, the electronic device can be a server, a wireless terminal device, an embedded device, or something else. Figure 6 Devices with similar structures. The embodiments of this application do not limit the type of electronic device.
[0221] This application embodiment can divide the electronic device into functional units according to the above method example. For example, each function can be divided into a separate functional unit, or two or more functions can be integrated into one processing unit. The integrated unit can be implemented in hardware or as a software functional unit. It should be noted that the unit division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.
[0222] For example, when dividing the functional units using an integrated approach. Figure 7 A schematic diagram of the structure of an application certificate server provided in an embodiment of this application is shown.
[0223] Please see Figure 7 ,like Figure 7 As shown in the embodiment of this application, an application certificate server includes...
[0224] The sending unit 701 is used to send a first application certificate to the application developer device. The first application certificate is used to identify the application developer. The application developer device is used to add the first application certificate to the application to be distributed in order to obtain the target application.
[0225] The acquisition unit 702 is used to obtain second application certificate information from the application distribution server. The second application certificate information is used to record the information of the second application certificate carried in the target application sent by the application developer's device to the application distribution server.
[0226] The verification unit 703 is configured to, if the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, cause the sending unit 701 to send a verification pass result to the application distribution server.
[0227] Optionally, the acquisition unit 702 is further configured to: acquire a request from the application developer's device;
[0228] It also includes an execution unit 704, which is used to generate a developer identifier based on the request, the developer identifier being used to identify the application developer;
[0229] The execution unit 704 is also used to generate the first application certificate, which includes the developer identifier.
[0230] Optionally, if the request includes the company name information of the application developer and / or the country information of the application developer, then execution unit 704 is further configured to:
[0231] The first application certificate is generated based on the developer identifier, and based on the company name information of the application developer and / or the country information of the application developer. The first application certificate includes the developer identifier, and one or more of the company name information or the country information associated with the developer identifier.
[0232] Optionally, the acquisition unit 702 is further configured to: acquire the developer identifier and the second digest of the second application certificate from the application distribution server;
[0233] The execution unit 704 is further configured to: obtain a first digest of the first application certificate from the local machine based on the developer identifier;
[0234] The verification unit 703 is further configured to: if it is determined from the first digest and the second digest that the first application certificate matches the second application certificate, cause the sending unit 701 to send the verification result to the application distribution server.
[0235] Optionally, the first digest is a first hash value generated by the application certificate server based on the content recorded in the first application certificate, and the second digest is a second hash value generated by the application distribution server based on the content recorded in the second application certificate; then, if the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, the verification unit 703 is further configured to:
[0236] If the first hash value is determined to be the same as the second hash value, the sending unit 701 sends the verification result to the application distribution server.
[0237] Optionally, the acquisition unit 702 is further configured to: acquire the second application certificate from the application distribution server;
[0238] The execution unit 704 is also configured to: obtain the developer identifier from the second application certificate;
[0239] The execution unit 704 is further configured to: obtain the first application certificate from the local machine based on the developer identifier;
[0240] The verification unit 703 is further configured to: if the developer identifier of the first application certificate is the same as that of the second application certificate, and the company name information of the application developer is the same, and / or the country information of the application developer is the same, then send the verification result to the application distribution server.
[0241] Please see Figure 8 ,like Figure 8 As shown in the embodiment of this application, an application distribution server includes...
[0242] Acquisition unit 801 is used to acquire the target application from the application developer's device;
[0243] The execution unit 802 is used to obtain a second application certificate from the target application. The second application certificate is sent by the application certificate server to the application developer's device and added to the target application by the application developer's device.
[0244] The sending unit 803 is used to send the second application certificate information of the second application certificate to the application certificate server. The second application certificate information is used to record the contents of the second application certificate.
[0245] The execution unit 802 is further configured to allow the distribution of the target application based on a verification result obtained from the application certificate server, wherein the verification result is used to indicate that the second application certificate matches the first application certificate distributed by the application certificate server to the application developer.
[0246] Optionally, the second application certificate includes a developer identifier and one or more of the company name information or the country information associated with the developer identifier, the developer identifier being an identifier assigned by the application certificate server to identify the application developer.
[0247] Optionally, the second application certificate information includes a second digest of the second application certificate and the developer identifier, so that the application certificate server can obtain the first application certificate stored locally based on the developer identifier, and send the verification result when it determines that the first application certificate matches the second application certificate through the first digest and the second digest of the first application certificate; then the execution unit 802 is further configured to:
[0248] The second digest is generated based on the content recorded in the second application certificate.
[0249] Optionally, the second digest is a hash value, so that the application certificate server sends the verification result when the first hash value generated based on the first application certificate is the same as the second hash value; then the execution unit 802 is further configured to:
[0250] A second hash value is generated based on the content recorded in the second application certificate.
[0251] Optionally, the transmitting unit 803 is also used for:
[0252] Send the second application certificate to the application certificate server so that the application certificate server, when comparing the developer identifier of the first application certificate and the second application certificate, finds that they are the same, and the company name information of the application developer is the same, and / or the country information of the application developer is the same, sends the verification result to the application distribution server.
[0253] Please see Figure 9 ,like Figure 9 As shown in the embodiment of this application, an application developer device includes...
[0254] The acquisition unit 901 is used to acquire a first application certificate from the application certificate server, the first application certificate being used to identify the application developer;
[0255] Execution unit 902 is used to add the first application certificate to the application to be distributed in order to obtain the target application;
[0256] Sending unit 903 is used to send the target application to the application distribution server.
[0257] Optionally, the sending unit 903 is further configured to send a request to the application certificate server, the request being used to request the acquisition of the first application certificate.
[0258] Optionally, the request may include the name of the company where the application developer is located, and / or the country where the application developer is located.
[0259] Optionally, the first application certificate includes a developer identifier and one or more of the company name information or the country information associated with the developer identifier, wherein the developer identifier is an identifier assigned by the application certificate server to identify the application developer.
[0260] Please see Figure 10 ,like Figure 10 As shown in the embodiment of this application, a user equipment includes...
[0261] The acquisition unit 1001 is used to acquire a target application from the application distribution server. The target application is an application uploaded to the application distribution server by the application developer's device. The target application includes an application certificate, which is a certificate sent to the application developer's device by the application certificate server, so that the application distribution server can verify the target application through the application certificate.
[0262] The execution unit 1002 is configured to determine the target application as an upgrade package of the first local application when the package name of the target application is the same as the package name of the first local application in the user device and the application certificate of the target application matches the application certificate of the first local application, and to upgrade or overwrite the first local application with the target application.
[0263] Optionally, the execution unit 1002 is further configured to:
[0264] When the package name of the target application is the same as the package name of the first local application in the user device, and the application certificate of the target application does not match the application certificate of the first local application, the target application is identified as a new application.
[0265] Install the target application onto the local system.
[0266] Optionally, the execution unit 1002 is further configured to:
[0267] If the package name of the target application is not the same as the package name of the local application on the user's device, the target application is identified as a new application.
[0268] Install the target application onto the local system.
[0269] This application also provides a computer-readable storage medium including instructions that, when executed on a computer device, cause the computer device to perform the application distribution method described above in this application.
[0270] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product.
[0271] A computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the flow or function according to embodiments of the present invention is generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can store or a data storage device such as a server or data center that integrates one or more available media. The available media may be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., DVDs), or semiconductor media (e.g., solid-state drives (SSDs)).
[0272] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0273] In the several embodiments provided in this application, it should be understood that the disclosed communication methods, relay devices, host base stations, and computer storage media can be implemented in other ways. For example, the device embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.
[0274] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment, depending on actual needs.
[0275] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0276] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes: USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, optical disks, and other media capable of storing program code.
[0277] The above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit it. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.
Claims
1. A method for distributing applications, characterized in that, include: The application certificate server sends a first application certificate to the application developer's device. The first application certificate is used to identify the application developer. The application developer's device is used to add the first application certificate to the application to be distributed in order to obtain the target application. The first application certificate includes a developer identifier; The application certificate server obtains second application certificate information from the first application distribution server. The second application certificate information is used to record the information of the second application certificate carried in the target application sent by the application developer's device to the first application distribution server. The second application certificate information includes the developer identifier, which is included in the application certificate information sent by multiple application distribution servers to the application certificate server. Each of the multiple application distribution servers corresponds to a different application market or application distribution channel. The multiple application distribution servers include the first application distribution server. The application certificate server obtains information about the first application certificate based on the developer identifier; If the application certificate server confirms that the first application certificate matches the second application certificate based on the information of the first application certificate and the second application certificate, the application certificate server sends a verification result to the first application distribution server.
2. The method according to claim 1, characterized in that, Before the application certificate server sends the first application certificate to the application developer's device, it also includes: The application certificate server obtains a request from the application developer's device; The application certificate server generates a developer identifier based on the request, and the developer identifier is used to identify the application developer. The application certificate server generates the first application certificate, which includes the developer identifier.
3. The method according to claim 2, characterized in that, If the request includes the company name information of the application developer and / or the country information of the application developer, then the application certificate server generates the first application certificate by: The application certificate server generates the first application certificate based on the developer identifier, and based on the company name information of the application developer and / or the country information of the application developer. The first application certificate includes the developer identifier, and one or more of the company name information or the country information associated with the developer identifier.
4. The method according to claim 2 or 3, characterized in that, The application certificate server obtains the second application certificate information from the first application distribution server, including: The application certificate server obtains the developer identifier and the second digest of the second application certificate from the first application distribution server; After obtaining the second application certificate information from the first application distribution server, the application certificate server further includes: The application certificate server obtains the first digest of the first application certificate from the local machine based on the developer identifier; If the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, the application certificate server sends a verification pass result to the first application distribution server, including: If the application certificate server determines that the first application certificate matches the second application certificate based on the first digest and the second digest, the application certificate server sends the verification result to the first application distribution server.
5. The method according to claim 4, characterized in that, The first digest is a first hash value generated by the application certificate server based on the content recorded in the first application certificate, and the second digest is a second hash value generated by the first application distribution server based on the content recorded in the second application certificate; If the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, the application certificate server sends the verification pass result to the first application distribution server, including: If the application certificate server determines that the first hash value is the same as the second hash value, the application certificate server sends the verification result to the first application distribution server.
6. The method according to claim 3, characterized in that, The application certificate server obtains the second application certificate information from the first application distribution server, including: The application certificate server obtains the second application certificate from the first application distribution server; After obtaining the second application certificate information from the first application distribution server, the application certificate server further includes: The application certificate server obtains the developer identifier from the second application certificate; The application certificate server obtains the first application certificate from the local machine based on the developer identifier; If the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, the application certificate server sends a verification pass result to the first application distribution server, including: If the application certificate server finds that the developer identifiers of the first application certificate and the second application certificate are the same, and the company name information of the application developer is the same, and / or the country information of the application developer is the same, the application certificate server sends a verification result to the first application distribution server.
7. The method according to any one of claims 1 to 3, characterized in that, The subject of the first application certificate includes the developer identifier.
8. A method for distributing applications, characterized in that, include: The first application distribution server obtains the target application from the application developer's device; The first application distribution server obtains a second application certificate from the target application. The second application certificate is sent by the application certificate server to the application developer's device and added to the target application by the application developer's device. The first application distribution server sends the second application certificate information of the second application certificate to the application certificate server. The second application certificate information is used to record the content of the second application certificate. The second application certificate information includes a developer identifier, which is included in the application certificate information sent by multiple application distribution servers to the application certificate server. Each of the multiple application distribution servers corresponds to a different application market or application distribution channel. The multiple application distribution servers include the first application distribution server. The first application distribution server allows the distribution of the target application based on the verification result obtained from the application certificate server. The verification result is used to indicate that the second application certificate matches the first application certificate distributed by the application certificate server to the application developer. The first application certificate includes the developer identifier.
9. The method according to claim 8, characterized in that, The second application certificate includes a developer identifier and one or more of company name information or country information associated with the developer identifier, wherein the developer identifier is an identifier assigned by the application certificate server to identify the application developer.
10. The method according to claim 9, characterized in that, The second application certificate information includes a second digest of the second application certificate and the developer identifier, so that the application certificate server can obtain the first application certificate stored locally based on the developer identifier, and send the verification pass result when it determines that the first application certificate matches the second application certificate through the first digest and the second digest of the first application certificate; then, before the first application distribution server sends the second application certificate information of the second application certificate to the application certificate server, it also includes: The first application distribution server generates the second digest based on the content recorded in the second application certificate.
11. The method according to claim 10, characterized in that, The second digest is a hash value, so that the application certificate server can send the verification pass result when the first hash value generated by the first application certificate is the same as the second hash value. The first application distribution server then generates the second digest based on the content recorded in the second application certificate, including: The first application distribution server generates a second hash value based on the content recorded in the second application certificate.
12. The method according to claim 9, characterized in that, The first application distribution server sends the second application certificate information of the second application certificate to the application certificate server, including: The first application distribution server sends the second application certificate to the application certificate server, so that the application certificate server sends the verification result to the first application distribution server when the developer identifier of the first application certificate and the second application certificate are the same, and the company name information of the application developer is the same, and / or the country information of the application developer is the same.
13. The method according to any one of claims 8 to 12, characterized in that, The subject of the first application certificate includes the developer identifier.
14. A method for distributing applications, characterized in that, include: The application developer's device obtains a first application certificate from the application certificate server. The first application certificate is used to identify the application developer. The first application certificate includes a developer identifier; The application developer device adds the first application certificate to the application to be distributed in order to obtain the target application; The application developer device sends the target application to the first application distribution server. The target application carries first application certificate information, which includes the developer identifier. The developer identifier is included in the application certificate information sent by multiple application distribution servers to the application certificate server. Each of the multiple application distribution servers corresponds to a different application market or application distribution channel. The multiple application distribution servers include the first application distribution server.
15. The method according to claim 14, characterized in that, Before the application developer's device obtains the first application certificate from the application certificate server, it also includes: The application developer's device sends a request to the application certificate server, the request being used to request the acquisition of the first application certificate.
16. The method according to claim 15, characterized in that, The request includes the name of the company where the application developer is located, and / or the country where the application developer is located.
17. The method according to claim 16, characterized in that, The first application certificate also includes one or more of the company name information or the country information associated with the developer identifier.
18. The method according to any one of claims 14 to 15, characterized in that, The subject of the first application certificate includes the developer identifier.
19. A method for distributing applications, characterized in that, include: The user device obtains a target application from a first application distribution server. The target application is an application uploaded to the first application distribution server by an application developer device. The target application includes an application certificate, which is a certificate sent to the application developer device by an application certificate server, so that the first application distribution server can verify the target application through the application certificate. The application certificate of the target application includes a developer identifier, which is included in the application certificate information sent by multiple application distribution servers to the application certificate server. Each of the multiple application distribution servers corresponds to a different application market or application distribution channel. The multiple application distribution servers include the first application distribution server. When the package name of the target application is the same as the package name of the first local application in the user equipment, and the subject of the application certificate of the target application matches the application certificate of the first local application, the user equipment determines the target application as an upgrade package of the first local application, and uses the target application to upgrade or overwrite the first local application.
20. The method according to claim 19, characterized in that, The method further includes: When the package name of the target application is the same as the package name of the first local application in the user device, and the application certificate of the target application does not match the application certificate of the first local application, the user device determines the target application as a new application. The user equipment installs the target application into its local system.
21. The method according to claim 19, characterized in that, The method further includes: When the package name of the target application is not the same as the package name of the local application on the user device, the user device determines the target application as a new application; The user equipment installs the target application into its local system.
22. The method according to any one of claims 19 to 21, characterized in that, The subject of the application certificate for the target application includes the developer identifier.
23. A system for distributing applications, characterized in that, include: Application developer device and multiple application distribution servers, wherein the multiple application distribution servers include a first application distribution server, wherein, The application developer device is used to add an application certificate to the application to be distributed to obtain the target application. The application certificate is used to identify the application developer and includes a developer identifier. The first application distribution server is used to obtain the target application from the application developer's device and verify the target application according to the application certificate. The target application carries application certificate information, and the application certificate information includes the developer identifier. The developer identifier is included in the application certificate information sent by multiple application distribution servers to the application certificate server. Each of the multiple application distribution servers corresponds to a different application market or application distribution channel. The first application distribution server is also configured to allow the distribution of the target application when the verification passes.
24. The system according to claim 23, characterized in that, The system also includes an application certificate server, wherein... The application certificate server is used to allocate the application certificate to the application developer device according to the request of the application developer device. The first application distribution server is further configured to obtain the application certificate from the target application and send the application certificate information of the application certificate to the application certificate server; The application certificate server is also used to compare the application certificate information sent by the first application distribution server with the application certificate information of the local application certificate to determine whether the application certificate sent by the first application distribution server matches the local application certificate. If they match, the server sends a verification result to the first application distribution server. The first application distribution server is also configured to allow the distribution of the target application when the verification result is obtained.
25. The system according to claim 23 or 24, characterized in that, The system also includes user equipment, wherein... The user equipment is configured to obtain the target application distributed by the first application distribution server, and determine whether the target application is a brand new application or an installation and upgrade package of a local application based on the application certificate of the target application.
26. An application certificate server, characterized in that, include: The sending unit is used to send a first application certificate to the application developer's device. The first application certificate is used to identify the application developer. The application developer's device is used to add the first application certificate to the application to be distributed in order to obtain the target application. The first application certificate includes a developer identifier; The acquisition unit is used to acquire second application certificate information from a first application distribution server. The second application certificate information is used to record information about the second application certificate carried in the target application sent by the application developer's device to the first application distribution server. The second application certificate information includes the developer identifier, which is included in the application certificate information sent by multiple application distribution servers to the application certificate server. Each of the multiple application distribution servers corresponds to a different application market or application distribution channel. The multiple application distribution servers include the first application distribution server. The application certificate server is also used to obtain information about the first application certificate based on the developer identifier; The verification unit is configured to, if the application certificate server confirms that the first application certificate matches the second application certificate based on the second application certificate information, cause the sending unit to send a verification pass result to the first application distribution server.
27. An application distribution server, characterized in that, The application distribution server is a first application distribution server, comprising: The acquisition unit is used to acquire the target application from the application developer's device. An execution unit is configured to obtain a second application certificate from the target application, wherein the second application certificate is sent by the application certificate server to the application developer device and added to the target application by the application developer device; A sending unit is configured to send the second application certificate information of the second application certificate to the application certificate server. The second application certificate information is used to record the content of the second application certificate. The second application certificate information includes a developer identifier, which is included in the application certificate information sent by multiple application distribution servers to the application certificate server. Each of the multiple application distribution servers corresponds to a different application market or application distribution channel. The multiple application distribution servers include the first application distribution server. The execution unit is further configured to allow the distribution of the target application based on the verification result obtained from the application certificate server, wherein the verification result is used to indicate that the second application certificate matches the first application certificate distributed by the application certificate server to the application developer, and the first application certificate includes the developer identifier.
28. An application developer device, characterized in that, include: The acquisition unit is used to acquire a first application certificate from the application certificate server, wherein the first application certificate is used to identify the application developer; The first application certificate includes a developer identifier; An execution unit is configured to add the first application certificate to the application to be distributed in order to obtain the target application; A sending unit is configured to send the target application to a first application distribution server, wherein the target application carries first application certificate information, the first application certificate information including the developer identifier, the developer identifier being included in application certificate information sent by multiple application distribution servers to the application certificate server, each of the multiple application distribution servers corresponding to a different application market or application distribution channel, and the multiple application distribution servers including the first application distribution server.
29. A user equipment, characterized in that, include: An acquisition unit is configured to acquire a target application from a first application distribution server. The target application is an application uploaded to the first application distribution server by an application developer's device. The target application includes an application certificate, which is a certificate sent by an application certificate server to the application developer's device, so that the first application distribution server can verify the target application through the application certificate. The application certificate of the target application includes a developer identifier, which is included in the application certificate information sent by multiple application distribution servers to the application certificate server. Each of the multiple application distribution servers corresponds to a different application market or application distribution channel. The multiple application distribution servers include the first application distribution server. An execution unit is configured to determine the target application as an upgrade package of the first local application when the package name of the target application is the same as the package name of the first local application in the user device, and the application certificate of the target application matches the application certificate of the first local application, and to upgrade or overwrite the first local application with the target application.
30. An electronic device, characterized in that, The electronic device includes: an interactive device, an input / output (I / O) interface, a processor, and a memory, wherein the memory stores program instructions; The interactive device is used to acquire user input commands; The processor is configured to execute program instructions stored in the memory, causing the electronic device to perform the method as described in any one of claims 1-7, 8-13, 14-18, or 19-22.
31. A computer-readable storage medium comprising instructions, characterized in that, When the instructions are executed on a computer device, the computer device performs the method as described in any one of claims 1-7, 8-13, 14-18, or 19-22.
Citation Information
Patent Citations
Application software control platform, developer terminal as well as application software distribution system and method
CN102024107A
System and method for realizing user and developer division control in intelligent operation platform
CN105227545A
Application recognition method and device
CN107766342A