RPA resolving method and electronic device
By dividing the random number part of RPA into multiple groups, the problem of insufficient computing power of Bluetooth modules is solved, the RPA parsing speed and the number of connected devices are improved, and the needs of diverse business scenarios are met.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-05-20
- Publication Date
- 2026-03-26
AI Technical Summary
In existing technologies, the Bluetooth modules of electronic devices have limited computing power, resulting in a long RPA parsing process, which limits the number of devices that can be connected and cannot meet the needs of diverse business scenarios.
By dividing the random number part of RPA into multiple parts and constructing RPA parsing lists for different groups, electronic devices only traverse the records of the target group during the parsing process, reducing the amount of computation and the number of traversals, thereby improving parsing speed and the number of device connections.
It accelerated RPA parsing speed, expanded the number of Bluetooth-connectable devices, met the needs of more business scenarios, and improved network scale and communication efficiency.
Smart Images

Figure CN2025096011_26032026_PF_FP_ABST
Abstract
Description
RPA resolving method and electronic device
[0001] Cross-reference to Related Applications
[0002] This application claims priority to the Chinese Patent Application No. 202411311997.2, filed on September 19, 2024, and entitled "RPA Resolving Method and Electronic Device", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD
[0003] The present application relates to the field of Bluetooth technology, in particular to a RPA resolving method and an electronic device. BACKGROUND
[0004] A resolvable private address (RPA) is used to authenticate the identity of two devices having a pairing binding relationship, to ensure the security of Bluetooth communication. When two devices communicate based on Bluetooth connection, the RPA used by the other party can be resolved by exchanging identity resolving keys (IRKs) with each other, so as to identify the real identity of the other party.
[0005] The resolving process of RPA needs to rely on a hash calculation formula, and a large number of RPA resolutions consume the computing power of the RPA resolving execution subject. The RPA resolving execution subject is generally a Bluetooth chip (or Bluetooth module) of an electronic device, and since its computing power is limited, manufacturers often artificially limit the maximum number of records included in the RPA resolving list when designing products, resulting in a limitation on the number of Bluetooth connectable devices. SUMMARY
[0006] The present application provides a RPA resolving method and an electronic device, to provide a RPA resolving scheme, which can improve the performance of RPA resolving of the electronic device, so that the electronic device can realize communication with more electronic devices through Bluetooth connection.
[0007] In a first aspect, the present application provides a first RPA resolving method, which can be executed by an electronic device. The method includes: receiving a first packet, the first packet being sent by a second electronic device using a first RPA, the first RPA including a first type of random number part and a second type of random number part; determining, according to the first type of random number part, a record belonging to a target group in a RPA resolving list; and performing RPA resolving according to the second type of random number part from the record belonging to the target group, the RPA resolving being used to find a record of the second electronic device.
[0008] In the method, the random number included in the RPA is divided into multiple parts, so that the RPA analysis list can be grouped, and when the electronic device performs RPA analysis, the records in the RPA analysis list corresponding to one of the multiple groups can be traversed without traversing all the records included in the stored RPA analysis list. Therefore, the number of other devices connected by the electronic device through Bluetooth can be increased, and the network scale can be expanded. Alternatively, the number of records that need to be traversed can be reduced, so that the computing power requirement of the electronic device for RPA analysis can be reduced. Thus, the RPA analysis speed can be accelerated, the number of traversals can be reduced, and the power consumption of the electronic device can be saved.
[0009] In a possible implementation, the RPA analysis list includes p, and each RPA analysis list corresponds to one group. The determining of the records in the RPA analysis list belonging to the target group includes: determining all the records included in the RPA analysis list corresponding to the target group from the p RPA analysis lists.
[0010] In this implementation, by configuring multiple RPA analysis lists, each RPA analysis list is associated with a group, so that part of the records stored in the electronic device can be traversed without traversing all the records. Therefore, the number of other devices connected by the electronic device through Bluetooth can be increased, and the network scale can be expanded. Alternatively, the number of records that need to be traversed can be reduced, so that the RPA analysis speed can be accelerated.
[0011] In another possible implementation, the RPA analysis list includes one, and the records included in the RPA analysis list are divided into p groups. The determining of the records in the RPA analysis list belonging to the target group includes: determining the records corresponding to the target group from all the records corresponding to the p groups included in the RPA analysis list.
[0012] In this implementation, by adding group information to the RPA analysis list, the records included in the RPA analysis list can be divided into multiple groups, so that the records in one of the multiple groups can be traversed without traversing all the records included in the RPA analysis list. Therefore, the number of other devices connected by the electronic device through Bluetooth can be increased, and the network scale can be expanded. Alternatively, the number of records that need to be traversed can be reduced, so that the RPA analysis speed can be accelerated.
[0013] In a possible implementation, the method further includes: extracting the first type of random number part from the first RPA according to a preset filling rule; or receiving a second packet, and extracting the first type of random number part from the first RPA according to filling indication information included in the second packet.
[0014] In the implementation manner, the RPA analysis list can be grouped by dividing the random number part in the RPA, so that the number of other devices connected by the electronic device through Bluetooth is increased, the network scale is expanded, or the number of records that need to be traversed is reduced, so that the RPA analysis speed is increased.
[0015] In a possible implementation manner, the first type of random number part is continuously filled or scattered filled in the first RPA.
[0016] In the implementation manner, the random number part can be divided into two parts by the continuous filling manner, so that different random number parts are extracted. By the scattered filling manner, the difficulty of random number extraction is improved, and the security of using the RPA to transmit a message is improved.
[0017] In a possible implementation manner, the first type of random number part includes a plurality of random number parts, and the plurality of random number parts are used to determine the target group layer by layer.
[0018] In the implementation manner, the target group can be determined layer by layer, so that the efficiency of positioning the target group is improved, and the RPA analysis speed is improved.
[0019] In a possible implementation manner, before the first message is received, the method further includes: receiving a third message, the third message being used to indicate the first type of random number part; and establishing a corresponding relationship between the record of the second electronic device and the target group according to the first type of random number part.
[0020] In the implementation manner, the RPA analysis list can be updated by pre-exchanging random number information between electronic devices, so that the RPA analysis accuracy can be improved.
[0021] In a possible implementation manner, before the first message is received, the method further includes: detecting that a preset iteration rule is met; and in response to the preset iteration rule, obtaining the first type of random number part according to a preset iteration parameter; and establishing a corresponding relationship between the record of the second electronic device and the target group according to the first type of random number part.
[0022] In the implementation manner, the random number part can be automatically updated by the iteration manner, so that the interaction between electronic devices can be reduced, and the Bluetooth communication security can be improved.
[0023] In a possible implementation manner, the method further includes: receiving a fourth message; and updating the preset iteration rule according to the fourth message.
[0024] In the implementation manner, the iteration rule is transmitted instead of the random number part, so that the Bluetooth communication security can be improved.
[0025] In a second aspect, the present application provides an electronic device, comprising a plurality of functional modules; the plurality of functional modules interact to implement the method performed by the electronic device in the first aspect and each of the implementations thereof.
[0026] The plurality of functional modules can be implemented based on software, hardware or a combination of software and hardware, and the plurality of functional modules can be combined or divided based on specific implementation.
[0027] In a third aspect, the present application provides an electronic device, comprising at least one processor and at least one memory, wherein the at least one memory stores computer program instructions, and when the electronic device is running, the at least one processor executes the method performed by the electronic device in the first aspect and each of the implementations thereof.
[0028] In a fourth aspect, the present application further provides a computer program product comprising instructions, which, when executed on a computer, cause the computer to perform the method performed by the electronic device in the first aspect and each of the implementations thereof.
[0029] In a fifth aspect, the present application further provides a computer-readable storage medium, which stores a computer program, and when the computer program is executed by a computer, causes the computer to perform the method performed by the electronic device in the first aspect and each of the implementations thereof.
[0030] In a sixth aspect, the present application further provides a chip, which is used to read a computer program stored in a memory and execute the method performed by the electronic device in the first aspect and each of the implementations thereof.
[0031] In a seventh aspect, the present application further provides a chip system, which comprises a processor and is used to support a computer device to implement the method performed by the electronic device in the first aspect and each of the implementations thereof.
[0032] In a possible design, the chip system further comprises a memory, which is used to save necessary programs and data of the computer device. The chip system can be composed of a chip, or can include a chip and other discrete devices.
[0033] The advantages of the second aspect to the seventh aspect and each possible design thereof will be described in the first aspect, and will not be described here. BRIEF DESCRIPTION OF DRAWINGS
[0034] FIG. 1 is a schematic diagram of format definition of RPA;
[0035] FIG. 2 shows a schematic diagram of a hardware structure of a possible electronic device;
[0036] FIG. 3 is a software architecture block diagram of an electronic device according to an embodiment of the present application;
[0037] FIG. 4 is a schematic diagram of a division of a random number part of an RPA resolving method according to an embodiment of the present application;
[0038] FIG. 5 is a flowchart of an RPA resolving method according to an embodiment of the present application;
[0039] FIG. 6a is a schematic diagram of a first RPA according to an embodiment of the present application;
[0040] FIG. 6b is another schematic diagram of a first RPA according to an embodiment of the present application;
[0041] FIG. 7 is a schematic diagram of iteration of a random part 1 according to an embodiment of the present application;
[0042] FIG. 8 is another flowchart of an RPA resolving method according to an embodiment of the present application. DETAILED DESCRIPTION
[0043] The embodiments of the present application will be described in detail below with reference to the accompanying drawings and embodiments.
[0044] The method provided by the embodiments of the present application can be applied to the field of Bluetooth technology on an electronic device, and can be specifically applied to a scenario in which electronic devices communicate through Bluetooth connection. For example, when an electronic device receives a packet of an unknown RPA (which can also be understood as a “to-be-resolved RPA”), the Bluetooth chip (or Bluetooth module) of the electronic device can identify the real identity of the unknown RPA through an RPA resolving process.
[0045] For example, FIG. 1 is a schematic diagram of format definition of an RPA. As shown in FIG. 1, the RPA includes two parts, namely a hash part and a random (prand) part, each occupying 24 bits. The prand part includes 22 bits of random number and 2 bits of address type identifier, and the fixed value of the address type identifier is “10B” (“B” in “10B” means that this is a binary number).
[0046] The RPA resolving process needs to rely on an RPA resolving list and a hash calculation formula.
[0047] (1) RPA resolving list, which can be used to store the information related to the counterpart device paired and bound with the electronic device successfully. In addition, the RPA resolving list can also be used for the electronic device to resolve the unknown RPA. One possible RPA resolving list is shown in Table 1 as follows:
[0048] Table 1
[0049] One row of records in Table 1 corresponds to one counterpart device. The record can include at least: local IRK, peer IRK, peer device identity address, address type. Among them, the local IRK can be used for the counterpart device to resolve the RPA. The peer IRK can be used for the local device to resolve the unknown RPA. The peer device identity address can be used to indicate the real identity of the counterpart device, and can uniquely identify one device. The address type can be used to indicate the type of the peer device identity address, which can be a static address or a public address, etc.
[0050] In addition, as can be seen from Table 1, the counterpart devices bound with the electronic device include M. It can be understood that the maximum number of counterpart devices that the electronic device can resolve the RPA is M, that is, the electronic device can communicate with at most M electronic devices through Bluetooth connection.
[0051] (2) Hash calculation formula, which is used to realize the resolution of the RPA. One possible hash calculation formula is shown in Equation 1 as follows: FIPS-197 (IRK, prand) Equation 1
[0052] Equation 1 is a symmetric encryption algorithm based on the advanced encryption standard (AES), and its specific interpretation can be referred to the introduction in the relevant definition, which will not be repeated here.
[0053] Among them, by substituting the peer IRK of each record included in the RPA resolving list and the prand carried in the unknown RPA into Equation 1, the hash value can be calculated, and the calculated hash can be understood as the local hash value. It can be understood that the M records included in the RPA resolving list shown in Table 1 can calculate M local hash values.
[0054] For example, the electronic device can identify the real identity of the unknown RPA by comparing the local hash value with the hash value carried in the unknown RPA. For example, if the comparison result of the local hash value 1 and the hash value carried in the unknown RPA is the same, it can be determined that the unknown RPA matches the record 1 corresponding to the local hash value 1 in the RPA resolving list. Then, through the identifiable address of the opposite device included in the record 1, the real identity of the opposite device can be identified. It can be understood that if the comparison of the M local hash values and the hash value carried in the unknown RPA is unsuccessful, it can be determined that the message of the unknown RPA is from an unbound electronic device.
[0055] As can be seen from the above introduction of the RPA resolving process, the maximum number of opposite devices that the electronic device can resolve from the RPA depends on the maximum number of records in the RPA resolving list as shown in Table 1.
[0056] The electronic device generally performs the RPA resolving process through the Bluetooth chip (or Bluetooth module), and the RPA resolving process needs to traverse the RPA resolving list, which has the problems of large amount of calculation and long time consumption. Due to the large amount of calculation, manufacturers often artificially limit the maximum number of records included in the RPA resolving list when designing products, which limits the number of Bluetooth connectable devices and leads to the inability to expand the network scale. However, with the increasing variety of electronic devices, the current definition of the RPA resolving method gradually cannot meet the needs of various business scenarios.
[0057] Therefore, the embodiments of the present application provide an RPA resolving method. In the method, based on splitting the random number in the prand part included in the RPA into multiple parts, the electronic device can construct the RPA resolving list belonging to different groups. Therefore, in the process of resolving the RPA, the electronic device can determine the target group through the first random number part, and then determine the target device from the devices included in the target group according to the second random number part. In this way, the resolving speed of the RPA can be improved, and the number of Bluetooth connectable devices can be increased, so as to expand the network scale and meet the needs of more business scenarios.
[0058] The technical solutions in the embodiments of the present application can be applied to an electronic device, which can be any device with RPA transmission capability, for example, a device with a Bluetooth chip (or Bluetooth module), for example, a device with a star flash module, and the like. Exemplarily, the electronic device can be an electronic device such as a mobile phone, a tablet computer, a wearable device (for example, a watch, a bracelet, and the like), a vehicle-mounted device, an augmented reality (AR) / virtual reality (VR) device, a smart home device (for example, a smart television, and the like), and the like. It can be understood that the embodiments of the present application do not make any limitation on the specific type of the electronic device.
[0059] The electronic device to which the embodiments of the present application can be applied includes, but is not limited to, an electronic device with an operating system such as Android, iOS, Windows, or other operating systems. The electronic device can be, for example, the electronic device introduced in the foregoing embodiments.
[0060] FIG. 2 shows a schematic diagram of a hardware structure of a possible electronic device. The electronic device 200 includes, for example, radio frequency (RF) circuitry 210, a power supply 220, a processor 230, a memory 240, an input unit 250, a display unit 260, audio circuitry 270, a communication interface 281, a Bluetooth module 282, and a Wi-Fi module 290. It can be understood by those skilled in the art that the hardware structure of the electronic device 200 shown in FIG. 2 does not constitute a limitation on the electronic device 200, and the electronic device 200 provided by the embodiments of the present application can include more or fewer components than those shown in the figure, can combine two or more components, or can have a different component configuration. The various components shown in FIG. 2 can be implemented in hardware, software, or a combination of hardware and software including one or more signal processing and / or application specific integrated circuits.
[0061] The various constituent components of the electronic device 200 will be specifically introduced below in conjunction with FIG. 2:
[0062] The RF circuitry 210 can be used in the process of communication or call, receiving and sending data. In particular, the RF circuitry 210 sends the downlink data received from the base station to the processor 230 for processing, and sends the uplink data to be sent to the base station. Generally, the RF circuitry 210 includes, but is not limited to, an antenna, at least one amplifier, a transceiver, a coupler, a low noise amplifier (LNA), a duplexer, and the like.
[0063] Further, the RF circuit 210 can also communicate with other devices through wireless communication networks. The wireless communication can use any communication standard or protocol, including but not limited to global system of mobile communication (GSM), general packet radio service (GPRS), code division multiple access (CDMA), wideband code division multiple access (WCDMA), long term evolution (LTE), email, short messaging service (SMS), etc.
[0064] The Wi-Fi technology belongs to short distance wireless transmission technology. The electronic device 200 can connect to an access point (AP) through the Wi-Fi module 290 to access a data network. The Wi-Fi module 290 can be used for data receiving and sending in the communication process.
[0065] The electronic device 200 can be physically connected to other devices through the communication interface 281. Optionally, the communication interface 281 and the communication interface of the other device are connected through a cable to realize data transmission between the electronic device 200 and the other device.
[0066] In the embodiment of the application, the electronic device 200 can be connected to other devices through the Bluetooth module 282.
[0067] For example, the electronic device 200 can be paired and bonded with other devices through the Bluetooth module 282. After the pairing and bonding are successful, the electronic device 200 can communicate with other devices based on the Bluetooth connection through the Bluetooth module 282.
[0068] For another example, the electronic device 200 can also transmit a message with other devices through the Bluetooth module 282 in the RPA mode.
[0069] In addition, the Bluetooth module 282 can also be used for RPA analysis to identify the real identity of an unknown RPA.
[0070] The electronic device 200 can also implement communication services and interact with other electronic devices, and therefore the electronic device 200 needs to have a data transmission function, i.e., the electronic device 200 needs to include a communication module inside. Although FIG. 2 shows the RF circuit 210, the Wi-Fi module 290, the communication interface 281, and the Bluetooth module 282 as communication modules, it can be understood that at least one of the above components or other communication modules (such as an infrared module) for implementing communication exist in the electronic device 200 to perform data transmission.
[0071] The memory 240 can be used to store software programs and modules. The processor 230 performs various functional applications and data processing of the electronic device 200 by running the software programs and modules stored in the memory 240. Optionally, the memory 240 can mainly include a program storage area and a data storage area. The program storage area can store an operating system (mainly including respective software programs or modules of a kernel layer, a system layer, an application program framework layer, and an application program layer, etc.). In the embodiments of the present application, the memory 240 can store an RPA resolving list for implementing the method provided by the present application. For example, one RPA resolving list can be stored, and the records in the RPA resolving list can be divided into multiple groups. For another example, multiple RPA resolving lists can also be stored, and each RPA resolving list corresponds to one group.
[0072] The input unit 250 can be used to receive user input of digital or character information and editing operations of various types of data objects, and generate key signal inputs related to user settings and function control of the electronic device 200. Optionally, the input unit 250 can include a touch panel 251 and other input devices 252.
[0073] The touch panel 251, also known as a touch screen, can collect user touch operations (such as user operations on or near the touch panel 251 using a finger, a stylus, or any suitable object or accessory) and drive corresponding connection devices according to a pre-set program. In the embodiments of the present application, the touch panel 251 can collect user operations on or near the touch panel 251.
[0074] Optionally, the other input devices 252 can include, but are not limited to, one or more of a physical keyboard, function keys (such as volume control keys, on-off keys, etc.), a mouse, a joystick, etc.
[0075] The display unit 260 can be used to display information input by a user or information provided to the user, as well as various menus of the electronic device 200. The display unit 260 is a display system of the electronic device 200, and is used to present an interface and realize human-computer interaction. The display unit 260 can include a display panel 261. Optionally, the display panel 261 can be configured in the form of a liquid crystal display (LCD), an organic light-emitting diode (OLED), or the like.
[0076] The processor 230 is a control center of the electronic device 200, and connects various components through various interfaces and lines, executes various functions of the electronic device 200 and processes data by running or executing software programs and / or modules stored in the memory 240 and calling data stored in the memory 240, so that various services based on the electronic device 200 can be realized. In an embodiment of the present application, the processor 230 can be used to implement an RPA analysis method provided in an embodiment of the present application.
[0077] The electronic device 200 further includes a power supply 220 (such as a battery) for supplying power to various components. Optionally, the power supply 220 can be logically connected to the processor 230 through a power management system, so as to realize functions such as management of charging, discharging, and power consumption through the power management system.
[0078] As shown in FIG. 2, the electronic device 200 further includes an audio circuit 270, a microphone 271, and a speaker 272, which can provide an audio interface between a user and the electronic device 200. The audio circuit 270 can be used to convert audio data into a signal recognizable by the speaker 272, and transmit the signal to the speaker 272 to be converted into an audible signal by the speaker 272. The microphone 271 is used to collect external sound signals (such as human speech or other sounds), and convert the collected external sound signals into a signal recognizable by the audio circuit 270, and send the signal to the audio circuit 270. The audio circuit 270 can also be used to convert the signal sent by the microphone 271 into audio data, and then output the audio data to the RF circuit 210 for transmission to another electronic device, or output the audio data to the memory 240 for subsequent further processing.
[0079] Although not shown, the electronic device 200 can further include a camera, at least one sensor, and the like, which will not be described herein. The at least one sensor can include, but is not limited to, a pressure sensor, an air pressure sensor, an acceleration sensor, a distance sensor, a fingerprint sensor, a touch sensor, a temperature sensor, and the like.
[0080] The operating system (OS) related to the embodiments of the present application is the most basic system software running on the electronic device 200. The software system of the electronic device 200 can adopt a layered architecture, an event-driven architecture, a microkernel architecture, a microservice architecture, or a cloud architecture. The embodiments of the present application take the operating system adopting a layered architecture as an example to exemplarily illustrate the software architecture of the electronic device 200.
[0081] FIG. 3 is a software architecture block diagram of an electronic device provided by the embodiments of the present application. As shown in FIG. 3, the software architecture of the electronic device can be a layered architecture, for example, the software can be divided into several layers, each layer has a clear role and division of labor. The layers communicate with each other through a software interface. In some embodiments, the operating system is divided into five layers, from top to bottom, the application layer, the application framework layer (FWK), the runtime and system library, the kernel layer, and the hardware layer.
[0082] The application layer can include a series of application packages. As shown in FIG. 3, the application layer can include a user interface (UI), a camera, a setting, a skin module, a third-party application, and the like. Among them, the third-party application can include, for example, a wireless local area network (WLAN), music, a call, Bluetooth, a video, and the like.
[0083] In a possible implementation manner, the application can be developed using the java language, and is completed by calling the application programming interface (API) provided by the application framework layer. The developer can interact with the bottom layer (such as the hardware layer, the kernel layer, and the like) of the operating system through the application framework layer to develop his own application. The application framework layer is mainly a series of services and management systems of the operating system.
[0084] The application framework layer provides the application programming interface and the programming framework for the application of the application layer. The application framework layer includes some predefined functions. As shown in FIG. 3, the application framework layer can include a view system, an activity manager, a window manager, a content provider, a phone manager, a resource manager, a notification manager, and the like.
[0085] The activity manager is used to manage the life cycle of each application and provide a commonly used navigation back function, and provides an interactive interface for the windows of all programs.
[0086] The window manager is used to manage windows programs. The window manager can get the display screen size, determine whether there is a status bar, lock the screen, and take screenshots, etc. The content provider is used to store and obtain data, and make the data accessible to the application program. The data can include videos, images, audio, dialed and received calls, browsing history and bookmarks, phonebook, etc.
[0087] The view system includes visible and invisible controls, such as a control for displaying text, a control for displaying pictures, etc. The view system can be used to build an application program. A display interface can be composed of one or more views. For example, a display interface including a short message notification icon can include a view for displaying text and a view for displaying pictures.
[0088] The phone manager is used to provide the communication function of the electronic device. For example, the management of the call state (including call connection, call hang-up, etc.).
[0089] The resource manager provides various resources for the application program, such as localized strings, icons, pictures, layout files, video files, etc.
[0090] The notification manager enables the application program to display notification information in the status bar, which can be used to convey a type of message that can automatically disappear after a short stay without user interaction. For example, the notification manager is used to inform the completion of the download, message reminders, etc. The notification manager can also be a notification in the form of a chart or a scroll bar text appearing in the top status bar of the system, such as a notification of an application program running in the background, and can also be a notification in the form of a dialogue window appearing on the screen. For example, prompting text information in the status bar, issuing a prompt sound, the electronic device vibrating, the indicator light flashing, etc.
[0091] The runtime includes the core library and the virtual machine. The runtime is responsible for the scheduling and management of the operating system.
[0092] The core library contains two parts: one part is the function function that the java language needs to call, and the other part is the core library of the operating system. The application program layer and the application program framework layer run in the virtual machine. The virtual machine executes the java file of the application program layer and the application program framework layer into a binary file. The virtual machine is used to perform the management of the object life cycle, the stack management, the thread management, the security and exception management, and the garbage collection, etc.
[0093] The system library can include multiple functional modules. For example: surface manager, media framework, three-dimensional graphics processing library (such as: OpenGL ES), two-dimensional graphics engine (such as: SGL), etc.
[0094] The surface manager is used to manage the display subsystem and provides a fusion of 2D and 3D layers for multiple applications.
[0095] The media framework supports a variety of commonly used audio, video format playback and recording, and static image files, etc. The media framework can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.
[0096] The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, synthesis, and layer processing, etc.
[0097] The 2D graphics engine is a drawing engine for 2D drawing.
[0098] In some embodiments, the 3D graphics processing library can be used to draw 3D moving images, and the 2D graphics engine can be used to draw 2D moving images.
[0099] The kernel layer is a layer between hardware and software. The kernel layer at least includes display drivers, camera drivers, audio drivers, and sensor drivers.
[0100] The hardware layer can include various sensors, such as acceleration sensors, gravity sensors, touch sensors, etc.
[0101] Generally, the electronic device 200 can run multiple applications simultaneously. More simply, one application can correspond to one process, and more complexly, one application can correspond to multiple processes. Each process has a process number (process ID).
[0102] It should be understood that "at least one" or similar expressions in the embodiments of the present application refer to any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can represent: a, b, c, a and b, a and c, b and c, or a, b, and c, where a, b, and c can be single or multiple. "Multiple" refers to two or more. "And / or" is used to describe the association between the associated objects, which means that there can be three relationships, for example, A and / or B, which can represent the cases of A alone, A and B together, B alone, where A and B can be singular or plural. The character " / " generally represents an "or" relationship between the associated objects.
[0103] In addition, it should be understood that in the description of the present application, the words "first", "second", etc. are only used for the purpose of distinguishing the description, and cannot be understood as indicating or implying relative importance, nor can it be understood as indicating or implying order.
[0104] It should be understood that the hardware structure of the electronic device can be as shown in FIG. 2, and the software system architecture can be as shown in FIG. 3, wherein the software system architecture in the electronic device corresponds to the software program and / or module stored in the memory 240, and the processor 230 can run the software program and application stored in the memory 240 to execute the flow of the RPA analysis method provided in the embodiments of the present application.
[0105] In order to facilitate understanding of the RPA analysis method provided in the present application, the implementation process of the method provided in the present application will be introduced below in combination with the contents shown in FIGS. 4 to 7.
[0106] The embodiments of the present application are applicable to the scenario of communication between multiple electronic devices using RPA. In the following embodiments, the communication between the first electronic device and the second electronic device is taken as an example, and the first electronic device can be understood as the execution subject of RPA analysis, and the second electronic device can be understood as the execution subject of RPA generation.
[0107] Based on the content introduced in the foregoing, the RPA analysis process needs to rely on the RPA resolving list. In the embodiments of the present application, the random number included in the prand of the RPA is divided into N parts, so that the records included in the RPA resolving list can be grouped. Wherein, N is greater than or equal to 2.
[0108] In a possible example, the value of N is 2, that is, the random number included in the prand can be divided into random number part 1 (random part 1) and random number part 2 (random part 2). Wherein, the random part 1 is used to identify the group to which the record in the RPA resolving list belongs. For example, the random part 1 is the same, indicating that the two records belong to the same group. Conversely, the random part 1 is different, indicating that the two records belong to different groups.
[0109] A possible format of the RPA resolving list is shown in Table 2 as follows:
[0110] Table 2
[0111] As can be seen from Table 2, a column for indicating grouping information can be added in the RPA resolving list, for example, p groups can be included, where p is a positive integer. Through grouping, it can be determined in which records the RPA resolving process traverses. For example, when it is determined to belong to group 1, the RPA resolving process traverses M1 records corresponding to group 1. For another example, when it is determined to belong to group p, the RPA resolving process traverses Mp records corresponding to group p. It can be understood that based on the format of the RPA resolving list shown in Table 2, the first electronic device does not need to traverse all records of the RPA resolving list in the RPA resolving process, but traverses corresponding partial records according to grouping.
[0112] Another possible format of the RPA resolving list can include p RPA resolving lists, and the p RPA resolving lists correspond to p groups one by one. Tables 3-1 and 3-2 below take the RPA resolving list corresponding to group 1 and group p as examples, and other groups can refer to the introduction of Tables 3-1 and 3-2 below:
[0113] Table 3-1
[0114] Table 3-1 can be associated with group 1.
[0115] Table 3-2
[0116] Table 3-2 can be associated with group p.
[0117] Through grouping, it can be determined in which RPA resolving list the RPA resolving process traverses. For example, when it is determined to belong to group 1, the RPA resolving process traverses Table 3-1. For another example, when it is determined to belong to group p, the RPA resolving process traverses Table 3-2. It can be understood that based on the format of the RPA resolving list shown in Tables 3-1 and 3-2, the electronic device can store p RPA resolving lists, and the first electronic device does not need to traverse all RPA resolving lists in the RPA resolving process, but traverses one RPA resolving list of the p RPA resolving lists according to grouping.
[0118] In one possible example, N can also be greater than 2, i.e., the random number included in prand can be divided into: random part 1, random part 2, …, and random part N. Among them, random part 1 to random part N-1 are used to identify the group to which the record in the RPA resolving list belongs. For example, if random part 1 to random part N-1 are all the same, it means that the two records belong to the same group. Conversely, if any of random part 1 to random part N-1 are different, it means that the two records belong to different groups.
[0119] For example, the target group to which the unknown RPA belongs can be determined layer by layer through random part 1 to random part N-1. For example, FIG. 4 is a diagram illustrating the division of random number parts in an RPA resolving method provided by an embodiment of the present application. Taking N as 4 as an example, in the first layer, the first layer target node can be determined through random part 1, for example, the node 401 filled with black in the first row in FIG. 4. In the second layer, the second layer target node can be further determined from the child nodes 4021 to 4024 included in the first layer target node through random part 2, for example, the node 4022 filled with black in the second row in FIG. 4. In the third layer, the third layer target node can be further determined from the child nodes 4031 and 4032 included in the second layer target node through random part 3, for example, the node 4031 filled with black in the third row in FIG. 4. It can be understood that a plurality of different nodes included in the third layer can be used to indicate a plurality of different groups, for example, 16 groups are included in FIG. 4. In this way, the target group can be determined by dividing the node tree in different layers, which can improve the efficiency of locating the target group.
[0120] In addition, after the target group to which the unknown RPA belongs is determined layer by layer through random part 1 to random part N-1, the RPA resolving process traverses at least one record included in the target group. Still taking FIG. 4 as an example, the records included in the target group can include child nodes 4041 and 4042, indicating that the target group includes two records, i.e., the RPA resolving process traverses the two records to identify the real identity of the unknown RPA.
[0121] Therefore, in the embodiments of the present application, the target group can be determined through the indication of at least one level, and the specific implementation manner is not limited in the present application. For example, the manner of determining the target group can be determined according to the business scenario and other factors.
[0122] For ease of understanding, in the following embodiments, the value of N is taken as 2 as an example, and the implementation process of the method provided in the embodiments of the present application is introduced.
[0123] For example, FIG. 5 is a flowchart of an RPA resolving method provided in the embodiments of the present application. In FIG. 5, the implementation process of the second electronic device sending a packet to the first electronic device is taken as an example. It can be understood that the implementation process of the first electronic device sending a packet (which can also be understood as a reply packet) to the second electronic device can refer to the introduction in FIG. 5, and the present application will not be repeated here.
[0124] The flowchart can include the following steps:
[0125] Step 501a: The second electronic device sends an IRK to at least one electronic device. The at least one electronic device can be any opposite device of the second electronic device, and the number of the opposite devices of the second electronic device is not limited in the embodiments of the present application.
[0126] In FIG. 5, the first electronic device is taken as an example, and the first electronic device receives the IRK of the second electronic device; wherein the first electronic device is any opposite device of the second electronic device.
[0127] Step 501b: The first electronic device adds a first record in the first RPA resolving list according to the IRK of the second electronic device. For example, the first RPA resolving list can be understood as the RPA resolving list maintained by the first electronic device. Optionally, the format of the first RPA resolving list can be as shown in Table 2. Alternatively, the format of the first RPA resolving list can also be as shown in Table 3-1.
[0128] In some possible embodiments, if the first electronic device receives the IRK of the second electronic device before receiving the random part 1 of the second electronic device, the record corresponding to the second electronic device can be temporarily recorded as an ungrouped (or understood as a to-be-grouped) record included in the first RPA resolving list. Then, after the first electronic device receives the random part 1 of the second electronic device, the record corresponding to the second electronic device is grouped according to the random part 1 of the second electronic device.
[0129] Optionally, as an example in the format shown in Table 2, a possible format of the first RPA resolving list is shown in Table 4 as follows:
[0130] Table 4
[0131] As can be seen from Table 4, the record in the first RPA resolving list newly added for representing the second electronic device has NULL as the grouping indication information for indicating the grouping. It can be understood that when the record is associated with a grouping, the grouping indication information corresponding to the record can be updated in Table 4.
[0132] Optionally, as an example in the format shown in Table 3-1, a possible format of the first RPA resolving list is shown in Table 5 as follows:
[0133] Table 5
[0134] Table 5 has not been associated with a grouping. It can be understood that Table 5 can include a plurality of records that have not been associated with a grouping, and when a record is associated with a grouping, the record can be updated from Table 5 to an RPA resolving list associated with a different grouping, such as Table 3-1 or Table 3-2.
[0135] In some possible embodiments, the second electronic device can also send the IRK and the random part 1 at the same time. In this way, the first electronic device can accurately group the records of the second electronic device.
[0136] Step 502a: The second electronic device generates the random part 1.
[0137] For example, the second electronic device can generate the random part 1 in a random manner or in a manner based on preset information. The specific implementation manner of the second electronic device for generating the random part 1 is not limited in the present application.
[0138] Step 502b: The second electronic device sends the random part 1 to at least one electronic device. For example, the first electronic device receives the random part 1 from the second electronic device.
[0139] In some possible implementation manners, the second electronic device can not need to send the random part 1 if the first electronic device and the second electronic device pre-synchronize the generation manner of the random part 1. In this case, the second electronic device can generate the random part 1 for the second electronic device according to the pre-synchronized generation manner. For example, the generation manner can be preset information such as an identifiable address of the electronic device.
[0140] Step 502c: The first electronic device associates the random part 1 of the second electronic device to the first record.
[0141] Optionally, based on the example in Table 4 above, the format of the updated first RPA resolving list is shown in Table 6 below:
[0142] Table 6
[0143] As can be seen from Table 6, the grouping indication information of the second electronic device is updated to "group 1".
[0144] Optionally, based on the example in Table 5 above, the format of the updated first RPA resolving list is shown in Table 7 below:
[0145] Table 7
[0146] Table 7 associates group 1, which can also be understood as an update of Table 3-1.
[0147] It can be understood that different values of the random part 1 can correspond to different groups. For example, the value of the random part 1 of the second electronic device is the same as that of the third electronic device, and thus the record corresponding to the second electronic device and the record corresponding to the third electronic device belong to the same group in the first RPA resolving list maintained by the first electronic device, such as group 1 in Table 8 below. For example, the value of the random part 1 of the second electronic device is different from that of the fourth electronic device, and thus the record corresponding to the second electronic device and the record corresponding to the fourth electronic device belong to different groups in the first RPA resolving list maintained by the first electronic device, such as group 1 and group 2 in Table 8 below.
[0148] Table 8
[0149] Step 503: The second electronic device generates the first RPA based on the random part 1.
[0150] Referring to FIG. 1, the first RPA includes a hash occupying 24 bits and a prand occupying 24 bits. The prand includes a random number occupying 22 bits and an address type identifier occupying 2 bits, and the address type identifier has a fixed value of "10B". In an embodiment of the present application, the random number occupying 22 bits can be divided into multiple random number parts, such as a random part 1 and a random part 2.
[0151] For example, FIG. 6a is a schematic diagram of a first RPA according to an embodiment of the present application. As shown in FIG. 6a, the random part 1 can occupy the first half of the random number occupying 22 bits, and the random part 2 can occupy the second half of the random number occupying 22 bits.
[0152] For example, FIG. 6b is another schematic diagram of a first RPA according to an embodiment of the present application. As shown in FIG. 6b, the random part 1 can also be scattered and filled in the prand part, and the random part 2 can occupy other bit positions except the bit positions occupied by the random part 1. In this way, the security of communication can be improved by scattering and filling the random part 1 in the prand part. For example, the second electronic device can determine the filling of the random part 1 in the prand part based on a preset filling rule. For another example, the second electronic device generates filling indication information after filling the random part 1 in the prand part. Optionally, the second electronic device and the first electronic device have pre-synchronized the preset filling rule, or the second electronic device sends the preset filling rule or the filling indication information to the first electronic device through a control message or the like.
[0153] It should be noted that the number of bits included in the random part 1 is not limited in the embodiment of the present application, and can be, for example, 2 bits or more. For example, the number of bits can be determined according to a business scenario. For example, when the number of groups is small, the random part 1 can occupy a small number of bits, such as 2 bits or the like. For another example, when the number of groups is large, the random part 1 can occupy a large number of bits, such as 6 bits or the like.
[0154] Step 504: The second electronic device sends a first message to at least one electronic device using the first RPA. For example, the first electronic device receives the first message.
[0155] Step 505: The first electronic device extracts the random part 1 from the first RPA of the first message.
[0156] For example, the first electronic device can extract the random part 1 according to a preset filling rule.
[0157] For another example, the first electronic device can also receive a control message from the first electronic device, obtain filling indication information from the control message, and then extract the random part 1 according to the filling indication information.
[0158] Step 506: The first electronic device determines a target group through the random part 1.
[0159] For example, the first electronic device can query the above table 6 or table 7 obtained through step 502c above according to the random part 1, so as to determine that the target group of the random part 1 of the first electronic device is group 1.
[0160] Step 507: The first electronic device parses the first RPA according to at least one record included in the target group, and matches the first record.
[0161] For example, the first electronic device traverses M1+1 records included in group 1 in table 6, or traverses M1+1 records included in table 7. According to the hash calculation formula described above, the local hash value is calculated by taking prand included in the first RPA and the opposite IRK of each record. Then, by comparing the local hash value with the hash value carried in the first RPA, the first record can be matched, that is, the record matched with the second electronic device added by the first electronic device through step 501b.
[0162] Based on the method described in FIG. 5, the random number included in the RPA is divided into multiple parts in the embodiment of the application, so that the RPA resolving list can be grouped, and when the electronic device performs RPA resolving, the records of the RPA resolving list corresponding to one group can be traversed, without traversing all the records included in the stored RPA resolving list.
[0163] In one aspect, by dividing the records included in the RPA resolving list into multiple groups, the maximum number of electronic devices allowed to be bound by the electronic device can be expanded, and the number of other devices connected by the electronic device through Bluetooth can be increased. For example, taking the maximum number of electronic devices allowed to be bound as 10 as an example, by the method provided in the present application, the maximum number of electronic devices allowed to be bound can be the product of the number of groups and 10, for example, the number of groups is 8, and the maximum number of electronic devices allowed to be bound in the embodiment of the present application is 80, that is, the electronic device can be connected to at most 80 other devices through Bluetooth. Therefore, by the method provided in the embodiment of the present application, the network scale of the electronic device can be expanded.
[0164] Or in another aspect, by multiple groups, the number of records that need to be traversed can be reduced, so that the computing power requirement of the electronic device for RPA analysis can be reduced. For example, taking the maximum number of electronic devices allowed to be bound as 10 as an example, by the method provided in the present application, the 10 electronic devices can be divided into multiple groups, for example, 2 groups, and at this time the electronic device needs to traverse 10 records to reduce to traverse 5 records, so that the RPA analysis speed can be accelerated, the traversal times can be reduced, and the power consumption of the electronic device can be saved.
[0165] In another possible implementation, the first electronic device and the second electronic device can also automatically iterate the random part 1 according to the preset iteration rule, taking the second electronic device sending the random part 1 to the first electronic device in FIG. 5 as an example. For example, FIG. 7 is an iteration diagram of the random part 1 provided in the embodiment of the present application. For example, the first electronic device and the second electronic device currently use the random part 1 a When it is determined that the iteration rule is met, the random part 1 b is obtained according to the iteration parameter, and when the iteration rule is met again, the random part 1 c is obtained according to the iteration parameter, and so on.
[0166] Optionally, the preset iteration rule can be, for example, a preset period, or can be, for example, a preset number of uses, etc.
[0167] In some possible implementations, when the preset iteration rule is changed, the first electronic device and the second electronic device can transmit the changed iteration rule.
[0168] In this way, when the two electronic devices communicate, it is not necessary to distribute the random part 1 every time, and the random part 1 can be automatically iterated locally according to the preset iteration rule, so that the security of the communication can be improved.
[0169] Based on the same idea, the application further provides an RPA analysis method, which can be executed by the first electronic device. FIG. 8 is a flowchart of another RPA analysis method provided by an embodiment of the application. Referring to FIG. 8, the method comprises the following steps:
[0170] S801: The first electronic device receives a first packet from the second electronic device, wherein the first packet is sent by using a first RPA, and the first RPA comprises a first random number part and a second random number part. The first random number part can be one or more.
[0171] S802: The first electronic device determines, according to the first random number part, a record belonging to a target group in an RPA analysis list. It can be understood that the target group is one of multiple groups, and each group comprises a part of records.
[0172] S803: The first electronic device performs RPA analysis according to the second random number part from the record belonging to the target group, and the RPA analysis is used to find the record of the second electronic device.
[0173] The specific implementation process of S801-S803 can refer to the description in the foregoing, and will not be described here.
[0174] Based on the above embodiments, the application further provides an electronic device, which comprises multiple functional modules. The multiple functional modules interact with each other to realize the functions performed by the electronic device in the methods described in the embodiments of the application. The multiple functional modules can be realized based on software, hardware or the combination of software and hardware, and the multiple functional modules can be arbitrarily combined or divided based on the specific implementation. For example, the steps 501a, 502a, 502b, 503 and 504 executed by the first electronic device in the embodiment shown in FIG. 5. Or the steps 501b, 502c, 504-507 executed by the second electronic device in the embodiment shown in FIG. 5. Or the steps 801-803 executed by the first electronic device in the embodiment shown in FIG. 8. Or the step 801 executed by the second electronic device in the embodiment shown in FIG. 8.
[0175] Based on the above embodiments, the present application further provides an electronic device, comprising at least one processor and at least one memory, wherein the at least one memory stores computer program instructions, and when the electronic device is running, the at least one processor executes the functions performed by the electronic device in the methods described in the embodiments of the present application. For example, the first electronic device executes steps 501a, 502a, 502b, 503 and 504 in the embodiment shown in FIG. 5. Or the second electronic device executes steps 501b, 502c, 504 to 507 in the embodiment shown in FIG. 5. Or the first electronic device executes steps 801 to 803 in the embodiment shown in FIG. 8. Or the second electronic device executes step 801 in the embodiment shown in FIG. 8.
[0176] Based on the above embodiments, the present application further provides a computer program product, comprising: a computer program (also referred to as code or instructions), when the computer program is executed, causing a computer to execute the methods described in the embodiments of the present application.
[0177] Based on the above embodiments, the present application further provides a computer readable storage medium, wherein the computer readable storage medium stores a computer program, when the computer program is executed by a computer, causing the computer to execute the methods described in the embodiments of the present application.
[0178] Based on the above embodiments, the present application further provides a chip, which is used to read a computer program stored in a memory, and implements the methods described in the embodiments of the present application.
[0179] Based on the above embodiments, the present application provides a chip system, which comprises a processor, and is used to support a computer device to implement the methods described in the embodiments of the present application. In a possible design, the chip system further comprises a memory, and the memory is used to store necessary programs and data of the computer device. The chip system can be composed of a chip, or can include a chip and other discrete devices. Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can adopt a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can adopt a computer program product implemented on one or more computer usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer usable program codes.
[0180] The computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
[0181] These computer program instructions can also be stored in a computer- readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the function specified in the flowchart block or blocks.
[0182] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
[0183] Obviously, numerous modifications and variations of the present application are possible in light of the above teachings. It is therefore to be understood that within the scope of the claims and their equivalents, the application can be practiced otherwise than as specifically described.
Claims
1. An RPA parsing method, applied to a first electronic device, characterized in that, The method comprises: receiving a first message, the first message being sent by a second electronic device using a first RPA, the first RPA comprising a first type of random number part and a second type of random number part; determining, according to the first type of random number part, a record belonging to a target group from an RPA analysis list; performing RPA analysis according to the second type of random number part from the record belonging to the target group, the RPA analysis being used to find a record of the second electronic device.
2. The method of claim 1, wherein, The RPA analysis list comprises p, and each RPA analysis list corresponds to a group; The determining of the record belonging to the target group from the RPA analysis list comprises: determining, from the p RPA analysis lists, all records included in the RPA analysis list corresponding to the target group.
3. The method of claim 1, wherein, The RPA analysis list comprises one, and the records included in the RPA analysis list are divided into p groups; The determining of the record belonging to the target group from the RPA analysis list comprises: determining, from all records included in the RPA analysis list corresponding to the p groups, the record corresponding to the target group.
4. The method according to any one of claims 1 to 3, characterized in that, The method further comprises: extracting the first type of random number part from the first RPA according to a preset filling rule; or receiving a second message, and extracting the first type of random number part from the first RPA according to filling indication information included in the second message.
5. The method of claim 4, wherein, The first type of random number part is continuously filled or dispersedly filled in the first RPA.
6. The method according to any one of claims 1 to 5, characterized in that, The first type of random number part comprises a plurality of random number parts, and the plurality of random number parts are used to determine the target group layer by layer.
7. The method according to any one of claims 1 to 6, characterized in that, Before the receiving of the first message, the method further comprises: receiving a third message, the third message being used to indicate the first type of random number part; establishing a corresponding relationship between the record of the second electronic device and the target group according to the first type of random number part.
8. The method according to any one of claims 1 to 6, characterized in that, Before the receiving of the first message, the method further comprises: detecting that a preset iteration rule is met; in response to the preset iteration rule, obtaining the first type of random number part according to a preset iteration parameter; establishing a corresponding relationship between the record of the second electronic device and the target group according to the first type of random number part.
9. The method of claim 8, wherein, The method further comprises: receiving a fourth message; updating the preset iteration rule according to the fourth message.
10. An electronic device, comprising: The electronic device comprises a processor and a memory; The processor is used to execute instructions stored in the memory, so that the electronic device performs the method according to any one of claims 1-9.
11. A computer storage medium, characterized in that The computer readable storage medium stores computer executable instructions, and the computer executable instructions are used to make a computer execute the method according to any one of claims 1-9.
Citation Information
Patent Citations
Parsing method and device for protocol
CN108494752A
Address verification method and corresponding device
CN117730555A
Broadcast synchronization establishing method, electronic device, and storage medium
WO2022087794A1
Electronic device for transmitting and / or receiving identification information, and operating method therefor
WO2023048436A1