WO2020044093A1 - 应用程序编程接口的调用方法及其装置 - Google Patents

应用程序编程接口的调用方法及其装置 Download PDF

Info

Publication number
WO2020044093A1
WO2020044093A1 PCT/IB2018/057154 IB2018057154W WO2020044093A1 WO 2020044093 A1 WO2020044093 A1 WO 2020044093A1 IB 2018057154 W IB2018057154 W IB 2018057154W WO 2020044093 A1 WO2020044093 A1 WO 2020044093A1
Authority
WO
WIPO (PCT)
Prior art keywords
programming interface
application programming
description file
class description
hidden
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/IB2018/057154
Other languages
English (en)
French (fr)
Inventor
李志毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ucweb Singapore Pte Ltd
Original Assignee
Ucweb Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ucweb Singapore Pte Ltd filed Critical Ucweb Singapore Pte Ltd
Publication of WO2020044093A1 publication Critical patent/WO2020044093A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

Definitions

  • This application relates to the field of Internet technologies, and in particular, to a method, an apparatus, a device / terminal / server, and a computer-readable medium for invoking an application programming interface. Background technique
  • APIs Application Programming Interface, application programming interface
  • APIs Application Programming Interface, application programming interface
  • the Windows API is included in a dynamic link library file in the Windows system directory.
  • the Windows API is a predefined Windows function that controls the appearance and behavior of various parts of Windows. Every user action will cause one or several Windows functions to run to tell Windows what happened. For example, when a button on a form is clicked, Windows sends a message to the form. Visual Basic obtains this call and analyzes it to generate a specific event.
  • the purpose of the present application is to provide a method, a device, a device / terminal / server, and a computer-readable medium for invoking an application programming interface, which are used to solve or alleviate the foregoing problems in the prior art.
  • this application provides a method for calling an application programming interface, which includes:
  • an embodiment of the present application provides a data transmission device, including:
  • a class description file obtaining unit configured to determine a hidden application programming interface to be called, and obtain a class description file corresponding to the hidden application programming interface
  • the class description file modification unit is configured to process the class description file, so that the hidden application programming interface can be called.
  • an embodiment of the present application provides a device / terminal / server, including:
  • a computer-readable medium configured to store one or more programs
  • an embodiment of the present application provides a computer-readable medium on which a computer program is stored, and when the program is executed by a processor, implements a method as described in any of the foregoing embodiments.
  • FIG. 1 is a schematic flowchart of a calling method of an application programming interface in Embodiment 1 of the present application;
  • FIG. 2 is a schematic flowchart of a calling method of an application programming interface in Embodiment 2 of the present application;
  • FIG. 3 is a schematic flowchart of a method for calling an application programming interface in Embodiment 3 of the present application
  • FIG. 4 is a schematic structural diagram of a calling device of an application programming interface in Embodiment 4 of the present application.
  • FIG. 5 is a schematic structural diagram of a calling device of an application programming interface in Embodiment 5 of the present application.
  • FIG. 6 is a schematic structural diagram of a calling device of an application programming interface in Embodiment 6 of the present application.
  • FIG. 7 is a schematic structural diagram of a device / terminal / server in Embodiment 7 of the present application.
  • Embodiment 8 is a hardware structure of a device / terminal / server in Embodiment 8 of the present application. detailed description
  • FIG. 1 is a schematic flowchart of a calling method of an application programming interface in Embodiment 1 of the present application; as shown in FIG. 1, it may include:
  • S101 Determine a hidden application programming interface to be called, and obtain the hidden application programming interface. Hide the class description file corresponding to the application programming interface;
  • the interface when determining the hidden application programming interface to be called in step S101, the interface is specifically obtained according to the system attribute to determine the hidden application programming interface to be called.
  • the application programming interface is carried by a class description file (called class in the industry) written in Java in advance.
  • the class description file is a type that can be used by the Java virtual machine. Recognize, load and execute file formats. Therefore, for the hidden application programming interface, there is also a corresponding class description file.
  • the suffix of the class description file is .class.
  • the generation of the class description file can have multiple choices, such as Java language generation or scala. Language generation, or Python language generation, or other languages such as Kotlin, C ++, depends on the actual needs.
  • the system property acquisition interface String systemPropertiesGet is used to determine a hidden application programming interface to be called.
  • obtaining the interface according to the system property to determine the hidden application programming interface to be called includes: calling the application program interface with the hidden statement according to the system property obtaining interface; and from the application with the hidden statement In the programming interface, a hidden application programming interface to be called is determined.
  • the hidden application programming interface is equivalent to configuring Yong Chenxu to become an interface with hidden properties
  • the system property acquisition interface String systemPropertiesGet is used to determine the hidden application programming interface to be called, first Through all the application programming interfaces with hidden properties in String systemPropertiesGet, the hidden application programming interfaces to be called are filtered out, for example, by name matching.
  • the class description file of the hidden application programming interface is used to characterize or distinguish that the application programming interface is hidden, it is usually configured in the attribute parameters of the class description file to reflect its behavior. Hidden definitions. Therefore, the hidden definitions are used to determine those which are hidden application programming interfaces, and then the hidden application programming interfaces with different functions are distinguished by different definition values.
  • S102 Process the class description file, so that the hidden application programming interface can be called.
  • the class description file when the class description file is processed in step S102 so that the hidden application programming interface can be called, the class description file is specifically updated. Perform processing to control the hidden application programming interface to bypass a compiler check when it is called, so that the hidden application programming interface can be called.
  • the hidden application programming interfaces cannot be compiled by the compiler or are not allowed to be compiled when they are used, these application programming interfaces are invisible or unavailable to application developers. When called, it cannot be compiled by the compiler, and for these application programming interfaces to be used, it needs to be compiled by the compiler to generate an object file that can be recognized by the system.
  • the inventor found that the reason why the application programming interface can be hidden is realized by the return value generated when the application programming interface is executed. For this reason, in this embodiment, the return value defined in the class description file corresponding to the hidden application programming interface can be specifically modified, which is equivalent to modifying the procedure of the program execution, so that the hidden application programming interface can be called.
  • FIG. 2 is a schematic flowchart of a method for invoking an application programming interface in Embodiment 2 of the present application; as shown in FIG. 2, it may include:
  • S201 Determine a hidden application programming interface to be called, and obtain a class description file corresponding to the hidden application programming interface
  • step S201 is similar to step S101 in the first embodiment, and details are not described again.
  • a class description file corresponding to the hidden application programming interface may be obtained specifically through a getDebugJar.sh script file.
  • the source program is usually translated into binary bytecode for analysis and execution by the Java virtual machine when the application programming interface is called. Therefore, in this embodiment, it is preferred to directly perform the bytecode
  • the modification is performed instead of modifying the source program, so as to implement the call of the hidden application programming interface through the modification of the byte code in the subsequent step S203.
  • the Java virtual machine can be bytecoded as a binary stream of 8-bit bytes.
  • step S202 may be specifically implemented by a complete command line mode, an external tool, or an internal plug-in tool.
  • Full command line approach such as using the command line first Let javac, javap -c do it.
  • External tools such as the Java Bytecode Editor, running jbe.sh to achieve.
  • Built-in plug-in tools such as using jclasslib bytecode viewer, open the ide (here is Android studio), setting-plugin-browse ..- bytecode viewer-jclasslib bytecode viewer-install-restart, and then use View-Show bytecode with jclasslib to achieve.
  • S203 Modify a bytecode file corresponding to the class description file, so that the hidden application programming interface can be called.
  • step S203 when modifying the bytecode file corresponding to the class description file in step S203, specifically modifying the execution of the hidden application program programming interface associated with the bytecode file corresponding to the class description file.
  • Parameters, so that the hidden application programming interface can be called, and these execution parameters are mainly used to control the return value of a function or a jump executed by the program.
  • modification may be implemented specifically through jclasslib and eclipse.
  • FIG. 3 is a schematic flowchart of a method for calling an application programming interface in Embodiment 3 of the present application; as shown in FIG. 3, it may include:
  • S301 Determine a hidden application programming interface to be called, and obtain a class description file corresponding to the hidden application programming interface;
  • ASM bytecode manipulation framework
  • S304 Modify the bytecode file corresponding to the class description file through a bytecode manipulation framework, so that the hidden application programming interface can be called.
  • the modification of the byte code is similar to the second embodiment described above, and specifically modifies the execution parameters associated with the hidden application programming interface in the byte code file corresponding to the class description file, so that the The hidden application programming interface can be called.
  • These execution parameters are mainly used to control the return value of a function or a jump executed by the program, so that the hidden application programming interface bypasses the compiler when it is called, and finally achieves the purpose of being called. .
  • FIG. 4 is a block diagram of a calling device of an application programming interface in Embodiment 4 of the present application; Schematic diagram; as shown in FIG. 4, it may include:
  • a class description file obtaining unit 401 configured to determine a hidden application programming interface to be called, and obtain a class description file corresponding to the hidden application programming interface
  • the class description file modification unit 402 is configured to process the class description file, so that the hidden application programming interface can be called.
  • the class description file obtaining unit 401 is further configured to obtain an interface according to a system attribute, and determine a hidden application programming interface to be called.
  • the class description file obtaining unit 401 is further configured as:
  • the class description file obtaining unit 401 may specifically include: an interface calling sub-unit and a screening sub-unit, the interface calling sub-unit is specifically configured to obtain an interface calling zone according to a system attribute; Hidden statement application programming interface; the screening subunit is specifically configured to determine a hidden application programming interface to be called from the application programming interface with the hidden statement.
  • the class description file modification unit 402 is further configured to process the class description file to control the hidden application programming interface to bypass the compiler's compilation check when being called, so that all The hidden application programming interface can be called.
  • FIG. 5 is a schematic structural diagram of a calling device of an application programming interface in Embodiment 5 of the present application; as shown in FIG. 5, in addition to including the above-mentioned class description file obtaining unit 401 and class description file modification unit 402,
  • the method includes: a bytecode obtaining unit 403 configured to obtain a bytecode file corresponding to the class description file.
  • the class description file modification unit 402 is further configured to modify a bytecode file corresponding to the class description file, so that the hidden application programming interface can be called.
  • the class description file modification unit 402 is further configured to modify an execution parameter associated with the hidden application programming interface in a bytecode file corresponding to the class description file, so that the hidden application The programming interface can be called.
  • FIG. 6 is a block diagram of a calling device of an application programming interface in Embodiment 6 of the present application; As shown in FIG. 6, in addition to the above-mentioned class description file obtaining unit 401 and class description file modification unit 402, it may further include: a control frame enabling unit 404 configured to enable a bytecode control frame.
  • the class description file modification unit 402 is further configured to modify, through the bytecode manipulation framework, a bytecode file corresponding to the class description file and associated with the hidden application programming. The execution parameters of the interface.
  • FIG. 7 is a schematic structural diagram of a device / terminal / server in Embodiment 7 of the present application; the device / terminal / server may include:
  • processors 701 one or more processors 701;
  • the computer-readable medium 702 may be configured to store one or more programs,
  • the hardware structure of the device / terminal / server may include: a processor 801, a communication interface 802, and a computer readable A medium 803 and a communication bus 804;
  • processor 801, the communication interface 802, and the computer-readable medium 803 complete communication with each other through a communication bus 804;
  • the communication interface 802 may be an interface of a communication module, such as an interface of a GSM module;
  • the processor 801 may be specifically configured to: determine a hidden application programming interface to be called, and obtain a class description file corresponding to the hidden application programming interface; and process the class description file so that all The hidden application programming interface can be called.
  • the processor 801 may be a general-purpose processor, including a central processing unit (CPU), a network processor (Network Processor, NP), etc .; it may also be a digital signal processor (DSP), a dedicated integration Circuits (ASICs), off-the-shelf programmable gate arrays (FPGAs) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components.
  • DSP digital signal processor
  • ASICs dedicated integration Circuits
  • FPGAs off-the-shelf programmable gate arrays
  • a general-purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
  • the above embodiments of the present application can be used to call the hidden API in near field transmission: SetWifiApEnabled, setWifiApConfiguration, getWifiApConfiguration in WifiManager.
  • the so-called near-field transmission may refer to the transmission of data by multiple terminals through self-built wifi, such as hotspot, Bluetooth or NFC.
  • the computer-readable medium 803 may be, but is not limited to, a random access storage medium (Random Access Memory, RAM), a read-only storage medium (Read Only Memory, ROM), and a programmable read-only storage medium (Programmable Read- Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM), Electric Erasable Programmable Read-Only Memory (EEPROM), etc.
  • RAM Random Access Memory
  • ROM Read Only Memory
  • EEPROM Electric Erasable Programmable Read-Only Memory
  • an embodiment of the present application includes a computer program product including a computer program borne on a computer-readable medium, the computer program containing program code configured to execute the method shown in the flowchart.
  • the computer program may be downloaded and installed from a network through a communication section, and / or installed from a removable medium.
  • CPU central processing unit
  • the above functions defined in the method of the present application are performed.
  • the computer-readable medium described in this application may be a computer-readable signal medium or a computer-readable storage medium or any combination of the foregoing.
  • the computer-readable medium may be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections with one or more wires, portable computer disks, hard disks, random access storage media (RAM), read-only storage media (ROM), erasable Type programmable read-only storage medium (EPROM or flash memory), optical fiber, portable compact disk read-only storage medium (CD-ROM), optical storage medium piece, magnetic storage medium piece, or any suitable combination of the foregoing.
  • RAM random access storage media
  • ROM read-only storage media
  • EPROM or flash memory erasable Type programmable read-only storage medium
  • CD-ROM portable compact disk read-only storage medium
  • magnetic storage medium piece or any suitable combination of the foregoing.
  • a computer-readable storage medium may be any tangible medium containing or storing a program, and the program may be used by or in combination with an instruction execution system, apparatus, or device.
  • a computer-readable signal medium may include a data signal that is included in baseband or propagated as part of a carrier wave, and which carries computer-readable program code. Such a propagated data signal may take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
  • the computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, and the computer-readable medium may be sent, transmitted, or transmitted and configured to be executed by an instruction execution system. System, device, or device.
  • Program code embodied on a computer-readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wire, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
  • Computer program code configured to perform the operations of the present application may be written in one or more programming languages or combinations thereof, the programming languages including an object-oriented programming language such as Java, Smalltalk, C ++, Also included are conventional procedural programming languages such as "C" or similar programming languages.
  • the program code can be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer, partly on a remote computer, or entirely on a remote computer or server.
  • the remote computer can be connected to the user's computer through any kind of network: including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (such as through the Internet using an Internet service provider) Connection).
  • LAN local area network
  • WAN wide area network
  • an external computer such as through the Internet using an Internet service provider
  • each block in the flowchart or block diagram may represent a module, a program segment, or a portion of a code, which module, program segment, or portion of the code contains one or more logic functions configured to implement a specified logic function.
  • Executable instructions In the above specific embodiments, there is a specific sequence relationship, but these sequence relationships are only exemplary. In specific implementation, these steps may be fewer, more or the execution order may be adjusted. That is, in some alternative implementations, the functions marked in the boxes may occur in a different order than those marked in the drawings.
  • each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts may be implemented in a dedicated hardware-based system that performs the specified function or operation. Or, it can be implemented by a combination of dedicated hardware and computer instructions.
  • a processor includes a class description determination unit and a class description modification unit. among them:
  • a class description determining unit configured to determine a hidden application programming interface to be called Port, and obtain a class description file corresponding to the hidden application programming interface
  • the class description modification unit is configured to process the class description file so that the hidden application programming interface can be called.
  • the names of these units do not constitute a limitation on the unit itself in some cases, for example, the class description determining unit may also be described as "determining a hidden application programming interface to be called, and obtaining said Hide the unit of the class description file corresponding to the application programming interface ".
  • the present application also provides a computer-readable medium on which a computer program is stored, and the program is executed by a processor to implement a method as described in any one of the foregoing embodiments.
  • the present application further provides a computer-readable medium, which may be included in the device described in the foregoing embodiments; or may exist separately without being assembled into the device.
  • the computer-readable medium carries one or more programs, and when the one or more programs are executed by the device, the device is caused to: determine a hidden application programming interface to be called, and obtain a corresponding hidden application programming interface Class description file.
  • first, second, the first, or “the second” used in the various embodiments of the present application may modify various components with sequence and / or Importance is irrelevant, but these expressions do not limit the corresponding components.
  • the above expression is only configured for the purpose of distinguishing the element from other elements.
  • the first user equipment and the second user equipment represent different user equipments, although both are user equipments.
  • a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种应用程序编程接口的调用方法、装置、设备/终端 /服务器、计算机可读介质。该方法的一具体实施方式包括: 确定待调用的隐藏应用程序编程接口,并获取所述隐藏应用程序编程接口对应的类描述文件;对所述类描述文件进行处理,以使得所述隐藏应用程序编程接口可被调用。该具体实施方式提供了一种调用隐藏应用程序编程接口的解决方案。

Description

应用程序编程接口的调用方法及其装置 本申请要求在 2018 年 08 月 27 日提交中国专利局、 申请号为
201810979639.7、 发明名称为 “应用程序编程接口的调用方法及其装 置”的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域
[001]本申请涉及互联网技术领域, 尤其涉及一种应用程序编程接口 的调用方法、 装置、 设备 /终端 /服务器、 计算机可读介质。 背景技术
[002] API(Application Programming Interface, 应用程序编程接口) 是一些预先定义的函数, 目的是提供应用程序与开发人员基于某软件或 硬件得以访问一组例程的能力, 而又无需访问源码, 或理解内部工作机 制的细节。
[003]比如,对于 Windows系统来说, Windows API包含在 Windows 系统目录下的动态连接库文件中。 Windows API可以控制 Windows的各 个部件的外观和行为的预先定义的 Windows函数。 用户的每个动作都会 引发一个或几个 Windows函数的运行以告诉 Windows发生了什么。比如 当点击窗体上的一个按钮时, Windows 会发送一个消息给窗体, Visual Basic获取这个调用并经过分析后生成一个特定事件。
[004]更易理解来说: Windows系统除了协调应用程序的执行、 内存 的分配、 系统资源的管理外, 同时它也是一个很大的服务中心。 通过这 些 Windows API调用这个服务中心的各种服务(每一种服务就是一个函数) 可以帮助应用程序达到开启视窗、 描绘图形和使用周边设备等目的。
[005]类似地, 对于智能终端上的系统也存在类似的情形, 但是, 系 统发布方考虑到存在不经常使用的 API或者处于安全考虑不允许使用的 API,会将这些 API设置成对开发者来说是隐藏的即存在隐藏 API。但是, 实际上对于基于系统平台开发应用来说, 在一些应用场景下常常需要获 取系统隐藏 API来处理问题。
[006]因此, 如何调用隐藏 API成为亟待解决的技术问题。 发明内容
[007]本申请的目的在于提出一种应用程序编程接口的调用方法、 装 置、 设备 /终端 /服务器、 计算机可读介质, 用于解决或者缓解现有技术中 上述问题。
[008]第一方面, 本申请提供了一种应用程序编程接口的调用方法, 其包括:
[009]确定待调用的隐藏应用程序编程接口, 并获取所述隐藏应用程 序编程接口对应的类描述文件;
[0010]对所述类描述文件进行处理, 以使得所述隐藏应用程序编程 接口可被调用。
[0011]第二方面, 本申请实施例提供了一种数据传输装置, 其包括:
[0012]类描述文件获取单元, 配置为确定待调用的隐藏应用程序编 程接口, 并获取所述隐藏应用程序编程接口对应的类描述文件;
[0013]类描述文件修改单元, 配置为对所述类描述文件进行处理, 以使得所述隐藏应用程序编程接口可被调用。
[0014]第三方面,本申请实施例提供了一种设备 /终端 /服务器,包括:
[0015]一个或多个处理器;
[0016]计算机可读介质, 配置为存储一个或多个程序,
[0017]当所述一个或多个程序被所述一个或多个处理器执行, 使得 所述一个或多个处理器实现如上述任一实施例中所述的方法。
[0018]第四方面, 本申请实施例提供了一种计算机可读介质, 其上 存储有计算机程序, 该程序被处理器执行时实现如上述任一实施例中所 述的方法。
[0019]本申请提供的应用程序编程接口的调用方法、 装置、 设备 /终 端 /服务器、 计算机可读介质中, 通过确定待调用的隐藏应用程序编程接 口, 并获取所述隐藏应用程序编程接口对应的类描述文件; 对所述类描 述文件进行处理, 以使得所述隐藏应用程序编程接口可被调用, 从而提 供了一种调用隐藏应用程序编程接口的解决方案。 附图说明
[0020]通过阅读参照以下附图所作的对非限制性实施例所作的详细 描述, 本申请的其它特征、 目的和优点将会变得更明显:
[0021]图 1 为本申请实施例一中应用程序编程接口的调用方法的流 程示意图;
[0022]图 2为本申请实施例二中应用程序编程接口的调用方法的流 程示意图;
[0023]图 3 为本申请实施例三中应用程序编程接口的调用方法的流 程示意图;
[0024]图 4为本申请实施例四中应用程序编程接口的调用装置的结 构示意图;
[0025]图 5 为本申请实施例五中应用程序编程接口的调用装置的结 构示意图;
[0026]图 6为本申请实施例六中应用程序编程接口的调用装置的结 构示意图;
[0027]图 7为本申请实施例七中设备 /终端 /服务器的结构示意图;
[0028]图 8为本申请实施例八中设备 /终端 /服务器的硬件结构。 具体实施方式
[0029]下面结合附图和实施例对本申请作进一步的详细说明。 可以 理解的是, 此处所描述的具体实施例仅仅配置为解释相关发明, 而非对 该发明的限定。 另外还需要说明的是, 为了便于描述, 附图中仅示出了 与有关发明相关的部分。
[0030]需要说明的是, 在不冲突的情况下, 本申请中的实施例及实 施例中的特征可以相互组合。 下面将参考附图并结合实施例来详细说明 本申请。
[0031]图 1 为本申请实施例一中应用程序编程接口的调用方法的流 程示意图; 如图 1所示, 其可以包括:
[0032] S101、 确定待调用的隐藏应用程序编程接口, 并获取所述隐 藏应用程序编程接口对应的类描述文件;
[0033]本实施例中, 步骤 S101中在确定待调用的隐藏应用程序编程 接口时具体根据系统属性获取接口, 确定待调用的隐藏应用程序编程接 口。
[0034]本实施例中, 比如对于安卓系统来说, 应用程序编程接口通 过 Java中事先写好的类描述文件 (业界称之为 class) 来承载, 类描述文 件是一种能够被 java虚拟机识别, 加载并且执行的文件格式。 因此, 对 于隐藏应用程序编程接口来说, 也存在对应的类描述文件, 该类描述文 件的后缀为 .class, 该类描述文件的生成可以有多种选择方式, 比如 java 语言生成, 或者通过 scala语言生成, 或者通过 python语言生成, 或者其 他语言如 Kotlin、 C++, 实际根据需求而定。
[0035]本实施例中, 对于安卓系统来说, 系统属性获取接口 String systemPropertiesGet来确定待调用的隐藏应用程序编程接口。
[0036]进一步地, 根据系统属性获取接口, 确定待调用的隐藏应用 程序编程接口, 包括: 根据系统属性获取接口调取带有隐藏声明的应用 程序编程接口; 从所述带有隐藏声明的应用程序编程接口中确定待调用 的隐藏应用程序编程接口。
[0037]如前所述, 由于隐藏应用程序编程接口相当于给永晨旭变成 接口配置了隐藏属性, 因此, 当通过系统属性获取接口 String systemPropertiesGet 来确定待调用的隐藏应用程序编程接口, 首先通过 String systemPropertiesGet中具有隐藏属性的所有应用程序编程接口, 在 比如通过名称匹配从中筛选出待调用的隐藏应用程序编程接口。
[0038]具体的, 由于隐藏应用程序编程接口的类描述文件中, 为了 表征或者区别该应用程序编程接口是被隐藏处理的, 一般往往在该类描 述文件的属性参数中配置了可反应出其被隐藏的定义, 因此, 通过该被 隐藏的定义, 来确定那些是隐藏应用程序编程接口, 再通过定义值的不 同, 区别不同功能的隐藏应用程序编程接口。
[0039] S102、 对所述类描述文件进行处理, 以使得所述隐藏应用程 序编程接口可被调用。
[0040]本实施例中, 步骤 S102中在对所述类描述文件进行处理, 以 使得所述隐藏应用程序编程接口可被调用时, 具体对所述类描述文件进 行处理以控制所述隐藏应用程序编程接口被调用时绕过编译器的编译检 查, 以使得所述隐藏应用程序编程接口可被调用。
[0041]本实施例中, 由于隐藏应用程序编程接口在使用时无法经过 编译器编译或者不允许经过编译起的编译, 使得这些应用程序编程接口 对应用程序开发者来说不可见或者不可用, 在被调用时, 无法通过编译 器的编译, 而对于要使用这些应用程序编程接口来说, 均需要通过编译 器的编译才能生成可被系统识别的目标文件。
[0042]在实现本申请的过程中, 发明人发现, 应用程序编程接口之 所以可以被隐藏, 是在通过该应用程序编程接口在被执行的时候产生的 返回值来实现。 为此, 本实施例中, 具体可以通过修改隐藏应用程序编 程接口对应的类描述文件中定义的返回值, 从而相当于修改了程序执行 的流程, 使得所述隐藏应用程序编程接口可被调用。
[0043]图 2为本申请实施例二中应用程序编程接口的调用方法的流 程示意图; 如图 2所示, 其可以包括:
[0044] S201、 确定待调用的隐藏应用程序编程接口, 并获取所述隐 藏应用程序编程接口对应的类描述文件;
[0045]本实施例中,步骤 S201类似上述实施例一中的步骤 S101,详 细不再赘述。
[0046]与上述实施例中不同的是, 在本实施例中的一中应用场景中, 具体可以通过 getDebugJar.sh脚本文件来获取所述隐藏应用程序编程接 口对应的类描述文件。
[0047] S202, 获取所述类描述文件对应的字节码文件;
[0048]通常将源程序进行翻译形成二进制的字节码以在应用程序编 程接口被调用时通过 java虚拟机来分析、 执行等, 因此, 本实施例中, 优选通过对所述字节码直接进行修改, 而并非对源程序进行修改, 以通 过后续步骤 S203 对字节码的修改实现隐藏应用程序编程接口的调用。 java虚拟机可以字节码比如为 8位字节的二进制流。
[0049]这里, 需要说明的是, 虚拟机不同, 字节码的形式可能也存 在差异。
[0050]本实施例中, 步骤 S202具体可以通过完全命令行方式、 外部 工具、 内接插件工具的方式实现。 完全命令行方式比如采用首先使用命 令 javac、 javap -c 来实现。外部工具比如采用 Java Bytecode Editor、运行 其中的 jbe.sh来实现。 内接插件工具比如采用 jclasslib bytecode viewer, 打开其中的 ide(这里是 Android studio), setting-plugin-browse..-bytecode viewer-jclasslib bytecode viewer-install-restart , 然后通过操作面板上 View-Show bytecode with jclasslib来实现。
[0051] S203、 修改所述类描述文件对应的字节码文件, 以使得所述 隐藏应用程序编程接口可被调用。
[0052]本实施例中, 在步骤 S203中修改所述类描述文件对应的字节 码文件时, 具体修改所述类描述文件对应字节码文件中关联于所述隐藏 应用程序编程接口的执行参数, 以使得所述隐藏应用程序编程接口可被 调用, 这些执行参数主要用于控制函数或者程序执行的跳转的返回值。
[0053]在本实施例中的一具体应用场景中, 具体可以通过 jclasslib、 eclipse实现修改。
[0054]图 3 为本申请实施例三中应用程序编程接口的调用方法的流 程示意图; 如图 3所示, 其可以包括:
[0055] S301、 确定待调用的隐藏应用程序编程接口, 并获取所述隐 藏应用程序编程接口对应的类描述文件;
[0056] S302、 获取所述类描述文件对应的字节码文件;
[0057] S303、 启用字节码操控框架;
[0058]本实施例中, 由于字节码操控框架 (assembly, 简称 ASM) 是基于事件驱动的处理方式, 可以直接对二进制的字节码文件进行修改, 具有较好的友好性, 因此, 优先使用字节码操控框架来进行后续字节码 文件的修改。
[0059] S304、 通过字节码操控框架修改所述类描述文件对应的字节 码文件, 以使得所述隐藏应用程序编程接口可被调用。
[0060]本实施例中, 字节码的修改, 类似上述实施例二, 具体修改 所述类描述文件对应字节码文件中关联于所述隐藏应用程序编程接口的 执行参数, 以使得所述隐藏应用程序编程接口可被调用, 这些执行参数 主要用于控制函数或者程序执行的跳转的返回值, 使得所述隐藏应用程 序编程接口被调用时绕过编译器, 从最终达到被调用的目的。
[0061]图 4为本申请实施例四中应用程序编程接口的调用装置的结 构示意图; 如图 4所示, 其可以包括:
[0062]类描述文件获取单元 401,配置为确定待调用的隐藏应用程序 编程接口, 并获取所述隐藏应用程序编程接口对应的类描述文件;
[0063]类描述文件修改单元 402, 配置为对所述类描述文件进行处 理, 以使得所述隐藏应用程序编程接口可被调用。
[0064]本实施例中, 所述类描述文件获取单元 401 进一步配置为根 据系统属性获取接口, 确定待调用的隐藏应用程序编程接口。
[0065]本实施例中, 所述类描述文件获取单元 401进一步配置为:
[0066]根据系统属性获取接口调取带有隐藏声明的应用程序编程接 P;
[0067]从所述带有隐藏声明的应用程序编程接口中确定待调用的隐 藏应用程序编程接口。
[0068]在具体应用场景中, 所述类描述文件获取单元 401 具体可以 包括: 接口调取子单元以及筛选子单元, 所述接口调取子单元具体配置 为根据系统属性获取接口调取带有隐藏声明的应用程序编程接口; 所述 筛选子单元具体配置为从所述带有隐藏声明的应用程序编程接口中确定 待调用的隐藏应用程序编程接口。
[0069]本实施例中, 所述类描述文件修改单元 402进一步配置为对 所述类描述文件进行处理以控制所述隐藏应用程序编程接口被调用时绕 过编译器的编译检查, 以使得所述隐藏应用程序编程接口可被调用。
[0070]图 5 为本申请实施例五中应用程序编程接口的调用装置的结 构示意图; 如图 5所示, 其除了包括上述类描述文件获取单元 401 以及 类描述文件修改单元 402外, 还可以包括: 字节码获取单元 403 , 配置为 获取所述类描述文件对应的字节码文件。
[0071]对应地, 本实施例中, 所述类描述文件修改单元 402进一步 配置为修改所述类描述文件对应的字节码文件, 以使得所述隐藏应用程 序编程接口可被调用。
[0072]本实施例中, 所述类描述文件修改单元 402进一步配置为修 改所述类描述文件对应字节码文件中关联于所述隐藏应用程序编程接口 的执行参数, 以使得所述隐藏应用程序编程接口可被调用。
[0073]图 6为本申请实施例六中应用程序编程接口的调用装置的结 构示意图; 如图 6所示, 其除了包括上述类描述文件获取单元 401 以及 类描述文件修改单元 402外, 还可以包括: 操控框架启用单元 404, 配置 为启用字节码操控框架。
[0074]进一步地, 本实施例中, 所述类描述文件修改单元 402进一 步配置为通过所述字节码操控框架修改所述类描述文件对应字节码文件 中关联于所述隐藏应用程序编程接口的执行参数。
[0075]图 7为本申请实施例七中设备 /终端 /服务器的结构示意图; 该 设备 /终端 /服务器可以包括:
[0076]一个或多个处理器 701;
[0077]计算机可读介质 702, 可以配置为存储一个或多个程序,
[0078]当所述一个或多个程序被所述一个或多个处理器执行, 使得 所述一个或多个处理器实现如上述任一实施例中所述传输方法。
[0079]图 8为本申请实施例八中设备 /终端 /服务器的硬件结构; 如图 8所示, 该设备 /终端 /服务器的硬件结构可以包括: 处理器 801, 通信接 口 802, 计算机可读介质 803和通信总线 804;
[0080]其中处理器 801、 通信接口 802、 计算机可读介质 803通过通 信总线 804完成相互间的通信;
[0081]可选的, 通信接口 802可以为通信模块的接口, 如 GSM模块 的接口;
[0082]其中, 处理器 801 具体可以配置为: 确定待调用的隐藏应用 程序编程接口, 并获取所述隐藏应用程序编程接口对应的类描述文件; 对所述类描述文件进行处理, 以使得所述隐藏应用程序编程接口可被调 用。
[0083]处理器 801 可以是通用处理器, 包括中央处理器 (Central Processing Unit, 简称 CPU)、 网络处理器 (Network Processor, 简称 NP) 等; 还可以是数字信号处理器 (DSP)、 专用集成电路 (ASIC)、 现成可编程 门阵列 (FPGA)或者其它可编程逻辑器件、 分立门或者晶体管逻辑器件、 分立硬件组件。 可以实现或者执行本申请实施例中的公开的各方法、 步 骤及逻辑框图。 通用处理器可以是微处理器或者该处理器也可以是任何 常规的处理器等。
[0084]本申请上述实施例可以用到近场传输中调用隐藏 API : WifiManager 里面的 setWifiApEnabled、 setWifiApConfiguration、 getWifiApConfiguration。 所谓近场传输可以是指多个终端通过自建 wifi 实现数据的传输, 比如热点、 蓝牙或者 NFC。
[0085]计算机可读介质 803 可以是, 但不限于, 随机存取存储介质 (Random Access Memory, RAM), 只读存储介质 (Read Only Memory, ROM ),可编程只读存储介质 ( Programmable Read-Only Memory, PROM ), 可擦除只读存储介质 ( Erasable Programmable Read-Only Memory, EPROM ) , 电可擦除只读存储介质 ( Electric Erasable Programmable Read-Only Memory, EEPROM) 等。
[0086]特别地, 根据本申请的实施例, 上文参考流程图描述的过程 可以被实现为计算机软件程序。 例如, 本申请的实施例包括一种计算机 程序产品, 其包括承载在计算机可读介质上的计算机程序, 该计算机程 序包含配置为执行流程图所示的方法的程序代码。 在这样的实施例中, 该计算机程序可以通过通信部分从网络上被下载和安装, 和 /或从可拆卸 介质被安装。 在该计算机程序被中央处理单元 ( CPU) 执行时, 执行本 申请的方法中限定的上述功能。 需要说明的是, 本申请所述的计算机可 读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述 两者的任意组合。 计算机可读介质例如可以但不限于是电、 磁、 光、 电 磁、 红外线、 或半导体的系统、 装置或器件, 或者任意以上的组合。 计 算机可读存储介质的更具体的例子可以包括但不限于: 具有一个或多个 导线的电连接、 便携式计算机磁盘、 硬盘、 随机访问存储介质 (RAM) 、 只读存储介质 (ROM)、可擦式可编程只读存储介质 (EPROM或闪存)、 光纤、 便携式紧凑磁盘只读存储介质 ( CD-ROM) 、 光存储介质件、 磁 存储介质件、 或者上述的任意合适的组合。 在本申请中, 计算机可读存 储介质可以是任何包含或存储程序的有形介质, 该程序可以被指令执行 系统、 装置或者器件使用或者与其结合使用。 而在本申请中, 计算机可 读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。 这种传播的数据信号可以采用多种 形式, 包括但不限于电磁信号、 光信号或上述的任意合适的组合。 计算 机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读 介质, 该计算机可读介质可以发送、 传播或者传输配置为由指令执行系 统、 装置或者器件使用或者与其结合使用的程序。 计算机可读介质上包 含的程序代码可以用任何适当的介质传输, 包括但不限于: 无线、 电线、 光缆、 RF等等, 或者上述的任意合适的组合。
[0087]可以以一种或多种程序设计语言或其组合来编写配置为执行 本申请的操作的计算机程序代码, 所述程序设计语言包括面向对象的程 序设计语言一诸如 Java、 Smalltalk, C++, 还包括常规的过程式程序设计 语言一诸如” C”语言或类似的程序设计语言。 程序代码可以完全地在用 户计算机上执行、 部分地在用户计算机上执行、 作为一个独立的软件包 执行、 部分在用户计算机上部分在远程计算机上执行、 或者完全在远程 计算机或服务器上执行。 在涉及远程计算机的情形中, 远程计算机可以 通过任意种类的网络:包括局域网 (LAN)或广域网 (WAN)—连接到用户计 算机, 或者, 可以连接到外部计算机 (例如利用因特网服务提供商来通 过因特网连接) 。
[0088]附图中的流程图和框图, 图示了按照本申请各种实施例的系 统、 方法和计算机程序产品的可能实现的体系架构、 功能和操作。 在这 点上, 流程图或框图中的每个方框可以代表一个模块、 程序段、 或代码 的一部分, 该模块、 程序段、 或代码的一部分包含一个或多个配置为实 现规定的逻辑功能的可执行指令。 上述具体实施例中有特定先后关系, 但这些先后关系只是示例性的, 在具体实现的时候, 这些步骤可能会更 少、 更多或执行顺序有调整。 即在有些作为替换的实现中, 方框中所标 注的功能也可以以不同于附图中所标注的顺序发生。 例如, 两个接连地 表示的方框实际上可以基本并行地执行, 它们有时也可以按相反的顺序 执行, 这依所涉及的功能而定。 也要注意的是, 框图和 /或流程图中的每 个方框、 以及框图和 /或流程图中的方框的组合, 可以用执行规定的功能 或操作的专用的基于硬件的系统来实现, 或者可以用专用硬件与计算机 指令的组合来实现。
[0089]描述于本申请实施例中所涉及到的单元可以通过软件的方式 实现, 也可以通过硬件的方式来实现。 所描述的单元也可以设置在处理 器中, 例如, 可以描述为: 一种处理器包括类描述确定单元、 类描述修 改单元。 其中:
[0090]类描述确定单元, 配置为确定待调用的隐藏应用程序编程接 口, 并获取所述隐藏应用程序编程接口对应的类描述文件;
[0091]类描述修改单元, 配置为对所述类描述文件进行处理, 以使 得所述隐藏应用程序编程接口可被调用。
[0092]其中, 这些单元的名称在某种情况下并不构成对该单元本身 的限定, 例如, 类描述确定单元还可以被描述为“确定待调用的隐藏应 用程序编程接口, 并获取所述隐藏应用程序编程接口对应的类描述文件 的单元” 。
[0093]作为另一方面, 本申请还提供了一种计算机可读介质, 其上 存储有计算机程序, 该程序被处理器执行时实现如上述任一实施例中所 描述的方法。
[0094]作为另一方面, 本申请还提供了一种计算机可读介质, 该计 算机可读介质可以是上述实施例中描述的装置中所包含的; 也可以是单 独存在, 而未装配入该装置中。 上述计算机可读介质承载有一个或者多 个程序, 当上述一个或者多个程序被该装置执行时, 使得该装置: 确定 待调用的隐藏应用程序编程接口, 并获取所述隐藏应用程序编程接口对 应的类描述文件。
[0095]对所述类描述文件进行处理, 以使得所述隐藏应用程序编程 接口可被调用。
[0096]在本申请的各种实施方式中所使用的表述“第一”、 “第二”、 “所述第一”或“所述第二”可修饰各种部件而与顺序和 /或重要性无关, 但是这些表述不限制相应部件。 以上表述仅配置为将元件与其它元件区 分开的目的。 例如, 第一用户设备和第二用户设备表示不同的用户设备, 虽然两者均是用户设备。 例如, 在不背离本申请的范围的前提下, 第一 元件可称作第二元件, 类似地, 第二元件可称作第一元件。
[0097]当一个元件(例如, 第一元件)称为与另一元件(例如, 第二元 件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另 一元件(例如, 第二元件)或“连接至”另一元件(例如, 第二元件)时, 应 理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元 件(例如, 第三元件)间接连接至该另一个元件。相反, 可理解, 当元件(例 如, 第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件) 时, 则没有元件(例如, 第三元件)插入在这两者之间。 以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领 域技术人员应当理解, 本申请中所涉及的发明范围, 并不限于上述技术 特征的特定组合而成的技术方案, 同时也应涵盖在不脱离上述发明构思 的情况下, 由上述技术特征或其等同特征进行任意组合而形成的其它技 术方案。 例如上述特征与本申请中公开的 (但不限于) 具有类似功能的 技术特征进行互相替换而形成的技术方案。

Claims

权 利 要 求 书
1.一种应用程序编程接口的调用方法, 其特征在于, 包括: 确定待调用的隐藏应用程序编程接口, 并获取所述隐藏应用程序编 程接口对应的类描述文件;
对所述类描述文件进行处理, 以使得所述隐藏应用程序编程接口可 被调用。
2.根据权利要求 1 中所述的方法, 其特征在于, 确定待调用的隐藏 应用程序编程接口, 包括: 根据系统属性获取接口, 确定待调用的隐藏 应用程序编程接口。
3.根据权利要求 2所述的方法, 其特征在于, 根据系统属性获取接 口, 确定待调用的隐藏应用程序编程接口, 包括:
根据系统属性获取接口调取带有隐藏声明的应用程序编程接口; 从所述带有隐藏声明的应用程序编程接口中确定待调用的隐藏应用 程序编程接口。
4.根据权利要求 1所述的方法, 其特征在于, 还包括: 获取所述类 描述文件对应的字节码文件; 对应地, 对所述类描述文件进行处理包括: 修改所述类描述文件对应的字节码文件, 以使得所述隐藏应用程序编程 接口可被调用。
5.根据权利要求 4所述的方法, 其特征在于, 修改所述类描述文件 对应的字节码文件包括: 修改所述类描述文件对应字节码文件中关联于 所述隐藏应用程序编程接口的执行参数, 以使得所述隐藏应用程序编程 接口可被调用。
6.根据权利要求 5所述的方法, 其特征在于, 还包括: 启用字节码 操控框架, 以通过所述字节码操控框架修改所述类描述文件对应字节码 文件中关联于所述隐藏应用程序编程接口的执行参数。
7.根据权利要求 1 所述的方法, 其特征在于, 对所述类描述文件进 行处理, 以使得所述隐藏应用程序编程接口可被调用, 包括: 对所述类 描述文件进行处理以控制所述隐藏应用程序编程接口被调用时绕过编译 器的编译检查, 以使得所述隐藏应用程序编程接口可被调用。
8.—种应用程序编程接口的调用装置, 其特征在于, 包括: 类描述文件获取单元, 配置为确定待调用的隐藏应用程序编程接口, 并获取所述隐藏应用程序编程接口对应的类描述文件;
类描述文件修改单元, 配置为对所述类描述文件进行处理, 以使得 所述隐藏应用程序编程接口可被调用。
9.根据权利要求 8 中所述的装置, 其特征在于, 所述类描述文件获 取单元进一步配置为根据系统属性获取接口, 确定待调用的隐藏应用程 序编程接口。
10. 根据权利要求 9所述的装置, 其特征在于, 所述类描述文件获 取单元进一步配置为:
根据系统属性获取接口调取带有隐藏声明的应用程序编程接口; 从所述带有隐藏声明的应用程序编程接口中确定待调用的隐藏应用 程序编程接口。
11. 根据权利要求 8所述的装置, 其特征在于, 还包括: 字节码 获取单元, 配置为获取所述类描述文件对应的字节码文件; 对应地, 所 述类描述文件修改单元进一步配置为修改所述类描述文件对应的字节码 文件, 以使得所述隐藏应用程序编程接口可被调用。
12. 根据权利要求 11所述的装置, 其特征在于, 所述类描述文件 修改单元进一步配置为修改所述类描述文件对应字节码文件中关联于所 述隐藏应用程序编程接口的执行参数, 以使得所述隐藏应用程序编程接 口可被调用。
13. 根据权利要求 12所述的装置, 其特征在于, 还包括: 操控框 架启用单元, 配置为启用字节码操控框架; 对应地, 所述类描述文件修 改单元进一步配置为通过所述字节码操控框架修改所述类描述文件对应 字节码文件中关联于所述隐藏应用程序编程接口的执行参数。
14. 根据权利要求 8所述的装置, 其特征在于, 所述类描述文件修 改单元进一步配置为对所述类描述文件进行处理以控制所述隐藏应用程 序编程接口被调用时绕过编译器的编译检查, 以使得所述隐藏应用程序 编程接口可被调用。
15. 一种设备 /终端 /服务器, 包括:
一个或多个处理器; 计算机可读介质, 配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行, 使得所述一 个或多个处理器实现如权利要求 1-7中任一所述的方法。
16. —种计算机可读介质, 其上存储有计算机程序, 其特征在于, 该程序被处理器执行时实现如权利要求 1-7中任一所述的方法。
PCT/IB2018/057154 2018-08-27 2018-09-18 应用程序编程接口的调用方法及其装置 Ceased WO2020044093A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810979639.7A CN109298952A (zh) 2018-08-27 2018-08-27 应用程序编程接口的调用方法及其装置
CN201810979639.7 2018-08-27

Publications (1)

Publication Number Publication Date
WO2020044093A1 true WO2020044093A1 (zh) 2020-03-05

Family

ID=65165507

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2018/057154 Ceased WO2020044093A1 (zh) 2018-08-27 2018-09-18 应用程序编程接口的调用方法及其装置

Country Status (2)

Country Link
CN (1) CN109298952A (zh)
WO (1) WO2020044093A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110673834A (zh) * 2019-09-23 2020-01-10 北京博睿宏远数据科技股份有限公司 一种源码调用方法、装置、计算机设备及存储介质
CN111506437A (zh) * 2020-03-31 2020-08-07 北京安码科技有限公司 基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035778A (zh) * 2014-06-26 2014-09-10 上海斐讯数据通信技术有限公司 一种Android应用程序开发方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2187173C2 (ru) * 1999-05-18 2002-08-10 Институт физики полупроводников СО РАН Устройство для контроля скрытой границы раздела контактирующих поверхностей (варианты)
US9215079B2 (en) * 2010-04-18 2015-12-15 Tropo, Inc. Servlet API and method for XMPP protocol
CN105653905B (zh) * 2015-12-28 2018-07-24 西北大学 一种基于api安全属性隐藏与攻击威胁监控的软件保护方法
CN106126412B (zh) * 2016-06-14 2019-03-05 中国科学院软件研究所 基于安卓api使用规范的代码质量自动评估优化方法
CN107341106B (zh) * 2017-06-21 2021-06-15 努比亚技术有限公司 应用程序兼容性检测方法、开发终端及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104035778A (zh) * 2014-06-26 2014-09-10 上海斐讯数据通信技术有限公司 一种Android应用程序开发方法

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
"A Simple Way to Bypass the Limitations of Non-SDK Interfaces on Android P", 7 June 2018 (2018-06-07), pages 1, 2; 5, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/37819685> [retrieved on 20190111] *
"Android Learning Diary: Useing Reflection to Call Hidden API", 21 November 2013 (2013-11-21), Retrieved from the Internet <URL:https://blog.csdn.net/wcnmcsnm/article/details/16857381> [retrieved on 20190111] *
"Android P Call Hidden API Limit Principle", 5 April 2018 (2018-04-05), pages 4. 5, Retrieved from the Internet <URL:https://mp.weixin.qq.com/s/WK4LdD6yd1_EHt71RDPh8w> [retrieved on 20190111] *
"Asm Code Enhancement Technology", 19 June 2018 (2018-06-19), pages 1 - 5, Retrieved from the Internet <URL:https://blog.csdn.net/u011402896/article/details/80729300> [retrieved on 20190111] *
"Breaking through the Android P (Preview 1) Method of Calling Hidden API Restrictions", 19 April 2018 (2018-04-19), Retrieved from the Internet <URL:https://mp.weixin.qq.com/s/blsuvQyGOw2hVvfufOAZOg> [retrieved on 20190111] *
"Call Hidden Apis in Android Using Java Reflection Technology", 6 July 2017 (2017-07-06), pages 1; 2, Retrieved from the Internet <URL:https://blog.csdn.net/dezhihuang/article/details/74521723> [retrieved on 20190111] *
"Detail Reflection, Java and Android Developers Must Cross the Ridge", 6 July 2017 (2017-07-06), Retrieved from the Internet <URL:https://blog.csdn.net/briblue/article/details/74616922> [retrieved on 20190111] *

Also Published As

Publication number Publication date
CN109298952A (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
CN110502222B (zh) 外发依赖内部基础库的aar方法、装置、介质和设备
US10025694B1 (en) Monitoring activity of software development kits using stack trace analysis
CN111240684B (zh) 一种js代码的裁剪方法、装置、介质和电子设备
WO2022222537A1 (zh) Ai应用部署方法及相关平台、集群、介质、程序产品
CN106528185A (zh) 一种应用接口管理方法和装置
CN110895471B (zh) 安装包生成方法、装置、介质及电子设备
CN113407165B (zh) Sdk的生成和自升级方法、装置、可读介质和设备
CN108121594A (zh) 一种进程管理方法及装置
CN113885849B (zh) 基于工业互联网平台的应用开发方法、装置及终端设备
WO2016177341A1 (zh) 接口调用方法、装置及终端
CN108334340B (zh) 一种跨环境数据通信方法、装置和系统
CN107402792B (zh) 应用软件安装包的集成方法、装置、设备及存储介质
CN111045746A (zh) 代码扩展方法和框架
CN115113898A (zh) 微应用的动态更新方法、装置、计算机设备和存储介质
CN107273226B (zh) 在安卓系统中集成组件及调用被集成组件的方法和装置
WO2020044093A1 (zh) 应用程序编程接口的调用方法及其装置
CN107977274B (zh) Sdk调用的控制方法及装置
CN117093286A (zh) 插件生成方法、装置、设备及计算机可读存储介质
CN106793165B (zh) 一种wifi热点的连接方法及智能终端
WO2023103890A1 (zh) 扩容方法、装置及电子设备
CN107239265A (zh) Java函数与C函数的绑定方法及装置
CN114756833A (zh) 代码混淆方法、装置、设备、介质以及程序产品
CN112988125B (zh) 一种数据桥接方法、装置、设备和存储介质
CN113094086A (zh) 组件集成方法、装置、计算机可读存储介质及电子设备
CN117786671A (zh) 隐私防护方法、装置、设备、介质及产品

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18932130

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18932130

Country of ref document: EP

Kind code of ref document: A1