CN113220314A - App资源加载及apk生成方法、装置、设备及介质 - Google Patents
App资源加载及apk生成方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113220314A CN113220314A CN202110604829.2A CN202110604829A CN113220314A CN 113220314 A CN113220314 A CN 113220314A CN 202110604829 A CN202110604829 A CN 202110604829A CN 113220314 A CN113220314 A CN 113220314A
- Authority
- CN
- China
- Prior art keywords
- resource file
- shell
- real
- app
- real resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种APP资源加载及APK生成方法、装置、设备及存储介质,本发明实施例提供的APP资源加载方法中,系统接收到APP启动指令后,就会运行APP的核心代码程序,由核心代码程序将壳资源文件加载至为其分配的动态内存,在确定壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将上述真实资源数据映射至系统内存。应用本发明实施例,在将壳资源文件映射至系统内存的过程中,用真实资源数据替换壳资源文件,由于真实资源文件是加密的,也就是说APP运行时所需的资源数据是加密的,而且只有在APP运行时才读取和解密真实资源文件映射至内存中,因此提高了资源文件的安全性。
Description
技术领域
本发明涉及APP资源加载技术领域,特别是涉及一种APP资源加载方法及APK生成方法、装置、设备及存储介质。
背景技术
应用软件(APP)在运行过程中,通常需要调用一些资源数据。APP运行时所需的资源数据可以包括:配置文件、网页信息、图片以及部分核心数据等。这些资源数据与APP的程序代码一起被打包在APK(Android application package,Android应用程序包)中。在电子设备下载该APK时,资源文件随着APK被下载到电子设备中。在该APP运行时,电子设备可以将下载的资源加载到系统内存中。
然而,APK文件实质是一个zip压缩包,因此APK中的资源文件可以通过解压缩工具对APK进行解压直接得到;或者APK中的资源文件也可以使用一些开源的APK反编译工具很轻易地获得,安全性较低。
发明内容
本发明实施例的目的在于提供一种APP资源加载及APK生成方法、装置、设备及存储介质,以提高资源文件的安全性。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种APP资源加载方法,所述APP资源包括:该APP对应的APK包中保存的壳资源文件和加密的真实资源文件;所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;
所述方法包括:
接收APP启动指令,运行所述APP的核心代码程序;
所述核心代码程序将所述壳资源文件加载至为其分配的动态内存中;以及,
在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中。
本发明的一种实施例中,在所述核心代码程序将所述壳资源文件加载至为其分配的动态内存中的步骤之前,所述方法还包括:
预生成系统内存映射函数的钩子函数,基于所述钩子函数,对所述系统内存映射函数进行HOOK;所述钩子函数是所述核心代码程序的一部分;
所述在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据;并将所述真实资源数据映射至系统内存中的步骤,包括:
所述钩子函数在系统针对所述壳资源文件调用所述内存映射函数的情况下被触发,并在检测到系统将对壳资源进行内存映射的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中。
本发明的一种实施例中,所述的壳资源文件和加密的真实资源文件在APP安装过程中,被下载至指定的目录中;
所述将所述壳资源文件加载至为其分配的动态内存中的步骤,包括:
所述核心代码程序将所述壳资源文件从所述指定目录中加载至为其分配的动态内存;
所述钩子函数在系统针对所述壳资源文件调用所述内存映射函数的情况下被触发,并在检测到系统将对壳资源进行内存映射的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中的步骤,包括:
所述钩子函数在系统针对所述壳资源文件调用所述内存映射函数的情况下被触发,并在检测到系统将对壳资源进行内存映射的情况下,从所述指定目录中读取并解密真实资源文件,得到真实资源数据;并将所述真实资源数据映射至系统内存中。
本发明的一种实施例中,所述壳资源文件以非隐藏的形式保存在所述指定的目录中;
所述加密的真实资源文件以隐藏的形式保存在所述指定的目录中。
本发明的一种实施例中,所述加密的真实资源文件为采用预设加密算法加密的真实资源文件;
所述钩子函数读取并解密真实资源文件,得到真实资源数据的步骤,包括:
所述钩子函数读取所述加密后的真实资源文件,并基于所述核心代码程序中预存的与所述加密算法对应的解密算法,解密出真实资源文件,得到真实资源数据。
在本发明实施的第二方面,还提供了一种APK生成方法,所述方法包括:
获取待生成APK的APP的核心代码程序;
获取并加密真实资源文件,得到加密的真实资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;
生成壳资源文件,所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;
将所述核心代码程序、加密的真实资源文件、壳资源文件存储进目标APK中,生成目标APK;其中,所述核心代码程序中,包含:用于执行将所述壳资源文件加载至为其分配的动态内存中;以及,在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中的代码。
本发明的一种实施例中,所述壳资源文件及加密的真实资源文件存储在目标APK中指定的目录中。
本发明的一种实施例中,所述获取待生成APK的APP的核心代码程序的步骤,包括:
获取使用Native方法编写的待生成APK的APP的核心代码程序。
在本发明实施的第三方面,还提供了一种APP资源加载装置,所述APP资源包括:该APP对应的APK包中保存的壳资源文件和加密的真实资源文件;所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;所述装置包括:
指令接收模块,用于接收APP启动指令,运行所述APP的核心代码程序;
壳资源文件加载模块,用于所述核心代码程序将所述壳资源文件加载至为其分配的动态内存中;以及,
真实资源映射模块,用于在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中。
在本发明实施的又一方面,还提供了一种APK生成装置,所述装置包括:
第一获取模块,用于获取待生成APK的APP的核心代码程序;
第二获取模块,用于获取并加密真实资源文件,得到加密的真实资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;
壳资源文件生成模块,用于生成壳资源文件,所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;
存储模块,用于将所述核心代码程序、加密的真实资源文件、壳资源文件存储进目标APK中,生成目标APK;其中,所述核心代码程序中,包含:用于执行将所述壳资源文件加载至为其分配的动态内存中;以及,在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中的代码。
在本发明实施的又一方面,还提供了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述APP资源加载方法。
在本发明实施的又一方面,还提供了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述APK生成方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的APP资源加载方法或APK生成方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的APP资源加载方法或APK生成方法。
本发明实施例提供的APP资源加载方法中,系统接收到APP启动指令后,就会运行核心代码程序,由核心代码程序将壳资源文件加载至系统,在将壳资源文件映射至系统内存时,读取并解密真实资源文件,得到真实资源数据,并将上述真实资源数据映射至系统内存,即在将壳资源文件映射至系统内存的过程中,用真实资源数据替换壳资源文件,由于真实资源文件是加密的,也就是说APP运行时所需的资源数据是加密的,而且只有在APP运行时才读取和解密真实资源文件映射至内存中,因此提高了资源文件的安全性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的APP资源加载方法的一种流程图;
图2为本发明实施例提供的APP资源加载方法的第二种流程图;
图3为本发明实施例提供的APP资源加载方法的第三种流程图;
图4为本发明实施例提供的APP资源加载方法的第四种流程图;
图5a为本发明实施例提供的APK生成方法的一种流程图;
图5b为本发明实施例提供的APK生成方法的一种示例图;
图6为本发明实施例提供的APP资源加载装置的结构示意图;
图7为本发明实施例提供的APK生成装置的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图;
图9为本发明实施例提供的另一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为了提高资源文件的安全性,本发明实施例提供了一种APP资源加载及APK生成方法、装置、设备及存储介质。
下面首先介绍本发明实施例提供的APP资源加载方法。
如图1所示,图1为本发明实施例提供的APP资源加载方法的一种流程图,本发明实施例中,上述APP资源可以包括:该APP对应的APK包中保存的壳资源文件和加密的真实资源文件,上述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;上述真实资源文件包含真实资源数据,上述真实资源数据为APP运行时所需的资源数据;具体步骤可以包括:
步骤101,接收APP启动指令,运行上述APP的核心代码程序;
步骤102,上述核心代码程序将所述壳资源文件加载至为其分配的动态内存中;
步骤103,在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中。
本发明实施例提供的APP资源加载方法中,系统接收到APP启动指令后,就会运行核心代码程序,由核心代码程序将壳资源文件加载至系统,在将壳资源文件映射至系统内存时,读取并解密真实资源文件,得到真实资源数据,并将上述真实资源数据映射至系统内存,即在将壳资源文件映射至系统内存的过程中,用真实资源数据替换壳资源文件,由于真实资源文件是加密的,也就是说APP运行时所需的资源数据是加密的,而且只有在APP运行时才读取和解密真实资源文件映射至内存中,因此提高了资源文件的安全性。
Android系统中,APK是一种能被Android系统识别并运行的文件格式,任何Android应用程序的代码都需被编译并打包成APK格式的文件才能在Android设备上运行。
因此,本发明实施例中,上述壳资源文件可以是一个APK格式的文件,壳资源文件中不包含真实资源数据,如业务逻辑代码等,壳资源文件中只包含AndroidManifest.xml、resources.arsc、assets、META-INF等文件结构,上述文件结构均为APK格式文件在解压缩工具中的表现形式。
通常情况下,APP资源文件采用APK格式,因此本发明实施例中,壳资源文件也可以是一个APK格式的文件。而真实资源文件,则可以采用其他格式。具体应用中,上述加密的真实资源文件可以是dat格式的文件,dat格式文件即为数据文件。上述加密的真实资源文件包含真实资源数据,上述真实资源数据就是APP运行时所需的资源数据,具体可以包括:配置文件、网页信息、图片以及部分核心数据等。例如,上述真实资源数据可以包括相应APP运行时第一个显示的图片数据、APP主页面显示样式数据、点击不同位置对应的交互事件数据等。
APP启动指令可以是用户通过点击APP对应的图标发出的,在此不做具体限定。系统在接收到上述APP启动指令后,会在第一时间调用该APP的核心代码程序。
上述核心代码程序被调用后,会将上述壳资源文件加载到为其分配的动态内存中。具体的,运行上述核心代码程序时,会先向系统申请壳资源文件所需的内存空间,此处的内存空间即为动态内存。在系统为壳资源文件分配好内存空间后,上述核心代码程序会将壳资源文件加载到上述内存空间中。
具体的,上述将壳资源文件加载到为其分配的动态内存中的方法,可以是反射调用AssetManager的addAssetPath方法,此处的addAssetPath方法是一种将外部文件夹或Zip文件加载至系统内存的方法,且由于本发明实施例中,系统需根据用户需求动态地加载资源,所以需通过反射来调用AssetManager的addAssetPath方法,将上述壳资源文件加载至系统中。
作为本发明实施例的一种具体实施方式,在将上述壳资源文件加载到动态内存中后,系统可对其进行校验,在校验成功后,再解析上述壳资源文件的资源格式。由于上述壳资源文件是APK格式的文件,在生成壳资源文件的时候,就对壳资源文件进行了签名,因此,此处的校验可以是基于壳资源文件的签名进行校验,在此不做具体限定。
上述核心代码程序将壳资源文件加载到为其分配的动态内存后,可以将壳资源文件映射到系统内存中,这里的系统内存可以是系统预先分配的用于加载APP资源文件的静态内存。
在确定上述壳资源文件要映射到系统内存的情况下,核心代码程序读取并解密真实资源文件,得到真实资源数据,并将真实资源数据映射到系统内存中,即在壳资源文件映射的过程中,用真实资源数据代替壳资源文件中的数据,也就是说,并未真的将壳资源文件中的数据映射到系统内存,而是将真实资源数据映射到系统内存中。
作为本发明实施例的一种具体实施方式,如图2所示,图2为本发明实施例提供的APP资源加载方法的第二种流程图,具体步骤可以包括:
步骤201,接收APP启动指令,运行上述APP的核心代码程序;
步骤202,预生成系统内存映射函数的钩子函数,基于所述钩子函数,对所述系统内存映射函数进行HOOK;所述钩子函数是所述核心代码程序的一部分;
步骤203,上述核心代码程序将所述壳资源文件加载至为其分配的动态内存中;
步骤204,所述钩子函数在系统针对所述壳资源文件调用所述内存映射函数的情况下被触发,并在检测到系统将对壳资源进行内存映射的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中。
在上述核心代码程序启动运行后,核心代码程序会预先生成一个系统内存映射函数的钩子函数,再基于上述钩子函数HOOK系统的内存映射函数。此处的钩子函数是上述核心代码的一部分。系统的内存映射函数(mmap函数)用于将一个文件或其他对象映射进内存。在基于上述钩子函数HOOK系统内存映射函数的情况下,系统调用内存映射函数时,会触发钩子函数,即跳转到钩子函数,执行钩子函数的功能。
相应的,在系统将壳资源文件映射至系统内存时,即调用了内存映射函数,由于已经HOOK了系统的内存映射函数,所以此时会触发钩子函数,并跳转执行钩子函数。由于钩子函数是核心代码程序的一部分,在系统触发钩子函数,并在钩子函数中检测到系统将对壳资源进行内存映射的情况下,会顺序执行核心代码程序中读取并解密加密的真实资源文件,得到真实资源数据的部分,即在钩子函数中读取并解密真实资源文件,得到真实资源数据,并将真实资源数据映射至系统内存。
在一种具体实施方式中,在基于上述钩子函数HOOK系统的内存映射函数时,可以将原先的系统的内存映射函数用预设的函数指针保存。相应的,在得到真实资源数据后,可以通过上述预设的函数指针将真实资源数据映射到系统内存,并将预设的函数指针返回的地址作为上述钩子函数的返回值。
例如:可以将钩子函数命名为new_mmap函数。此时,原始内存映射函数mmap,可以用old_mmap函数指针保存,当系统调用mmap函数的时候会触发上述的new_mmap函数,从而执行new_mmap函数。
作为本发明实施例的一种具体实施方式,所述壳资源文件和加密的真实资源文件在APP安装过程中,被下载至指定的目录中;如图3所示,图3为本发明实施例提供的APP资源加载方法的第三种流程图,具体步骤可以包括:
步骤301,接收APP启动指令,运行上述APP的核心代码程序;
步骤302,预生成系统内存映射函数的钩子函数,基于所述钩子函数,对所述系统内存映射函数进行HOOK;所述钩子函数是所述核心代码程序的一部分;
步骤303,上述核心代码程序将所述壳资源文件从所述指定目录中加载至为其分配的动态内存;
步骤304,所述钩子函数在系统针对所述壳资源文件调用所述内存映射函数的情况下被触发,并在检测到系统将对壳资源进行内存映射的情况下,从所述指定目录中读取并解密真实资源文件,得到真实资源数据;并将所述真实资源数据映射至系统内存中。
在APP安装的过程中,壳资源文件和加密的真实资源文件均可被安装在指定的目录中,例如,上述壳资源文件可以存储至上述APP对应的APK包中的根目录中,且由于壳资源文件中并不含有真实数据资源,所以可将壳资源文件以非隐藏的形式存储在上述根目录中。相应的,加密后的真实资源文件也可以存储在上述APP对应的APK包中的根目录中,同时,为了保护真实资源数据,使得真实资源数据不可以通过使用压缩工具解压缩或是反编译工具反编译得到,可以采用隐藏的形式将真实资源文件存储在根目录中。上述壳资源文件和加密的真实资源文件可以存储在同一目录中,也可存储在不同目录中,本发明实施例中,对壳资源文件及加密的真实资源文件存储的位置不做具体限定。
因此,在加载壳资源时,可以从上述壳资源文件所在的目录中加载,而加载真实资源数据时可从上述加密的真实资源文件所在的目录中加载。
通过在APP资源加载过程中,从不同的存储位置分别加载壳资源文件以及加密的真实资源文件,可以进一步提高资源文件的安全性。
作为本发明实施例的一种具体实施方式,所述加密的真实资源文件为采用预设加密算法加密的真实资源文件;如图4所示,图4为本发明实施例提供的APP资源加载方法的第四种流程图,具体步骤可以包括:
步骤401,接收APP启动指令,运行上述APP的核心代码程序;
步骤402,预生成系统内存映射函数的钩子函数,基于所述钩子函数,对所述系统内存映射函数进行HOOK;所述钩子函数是所述核心代码程序的一部分;
步骤403,上述核心代码程序将所述壳资源文件加载至为其分配的动态内存中;
步骤404,所述钩子函数在系统针对所述壳资源文件调用所述内存映射函数的情况下被触发,并在检测到系统将对壳资源进行内存映射的情况下,读取所述加密后的真实资源文件,并基于所述核心代码程序中预存的与所述加密算法对应的解密算法,解密出真实资源文件,得到真实资源数据;并将所述真实资源数据映射至系统内存中。
上述加密的真实资源文件可以是通过对真实资源文件进行简单的位运算得到,也可以是使用Des、Aes加密算法对真实资源文件进行加密得到。此处,上述真实资源文件可以是.apk格式的文件,对.apk格式的真实资源文件进行加密处理后,得到的加密的真实资源文件可以是.dat格式的文件。如上所述,上述真实资源文件包括真实资源数据,上述真实资源数据包括配置文件、图片以及核心数据等APP运行时必需的数据。真实资源数据具体可以是由开发人员在开发APP程序过程中进行配置、编译得到。
在钩子函数中对上述加密的真实资源文件进行解密时,可以使用相应的解密算法对加密的真实资源文件进行解密。具体的,上述核心代码程序中包含与加密算法对应的解密代码。当跳转执行钩子函数时,会顺序执行到核心代码程序中读取并解密加密的真实资源文件的部分。
通过使用预设的加密算法对真实资源文件进行加密,使得通过简单的解压缩操作不能得到真实资源数据,进一步提高资源文件的安全性。
基于本发明实施例提供的APP资源加载方法相同的发明构思,本发明实施例还提供了一种APK生成方法,如图5a所示,图5a为本发明实施例提供的APK生成方法的一种流程图,具体步骤可以包括:
步骤501,获取待生成APK的APP的核心代码程序;
步骤502,获取并加密真实资源文件,得到加密的真实资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;
步骤503,生成壳资源文件,所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;
步骤504,将所述核心代码程序、加密的真实资源文件、壳资源文件存储进目标APK中,生成目标APK;其中,所述核心代码程序中,包含:用于执行将所述壳资源文件加载至为其分配的动态内存中;以及,在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中的代码。
本发明实施例提供的APK生成方法中,将核心代码程序、加密的真实资源文件及壳资源文件存储至目标APK中,由于将真实资源文件进行加密,使得通过简单的解压缩并不能得到真实资源数据,提高了资源文件的安全性。
上述核心代码程序实现的功能已经在APP资源加载方法中进行详细叙述,此处不再赘述。
作为本发明实施例的一种具体实施方式,在得到加密的真实资源文件时,可以将目标APK进行复制,得到上述目标APK的副本,并对该副本进行加密,从而得到加密的真实资源文件,此处加密的方法可以是简单的位运算,也可以是使用Des、Aes算法对上述副本进行加密。
作为本发明实施例的一种具体实施方式,在生成壳资源文件时,可以是将上述目标APK用zip工具打开,并删除其APK结构里的Assets目录里的所有文件、子目录,此时,目标APK中就不包含上述真实资源数据,也就是说此时的目标APK即为壳资源文件。如上所述,壳资源文件中只包含AndroidManifest.xml、resources.arsc、assets、META-INF等文件结构,但并不包含上述APP运行时所需要的真实资源数据。
在获取核心代码程序、加密的真实资源文件,以及生成壳资源文件后,需将上述核心代码程序、加密的真实资源文件、壳资源文件打包进目标APK中,生成最终可以被下载安装的目标APK。
具体的,可以将上述壳资源文件及加密的真实资源文件存储在目标APK的指定目录中,且可将加密的真实资源文件以隐藏的形式存储在目标APK中的指定目录中,将壳资源文件以非隐藏的形式存储在目标APK的指定目录中。作为一种具体实施方式,上述指定目录可以是目标APK的根目录,即可以同时将加密的真实资源文件以及壳资源文件存储在目标APK的根目录中,以得到最终可被下载安装的目标APK,且在打包之前,目标APK中不含有真实资源数据。作为另一种具体实施方式,可以将上述壳资源文件用zip工具打开,并将上述加密的真实资源文件放在上述壳资源文件的根目录,此时上述壳资源文件即为最终可被下载安装的目标APK。
作为本发明实施例的一种具体实施方式,可以将上述核心代码程序存储在目标APK的Application->attachBaseContext方法里执行,以确保核心代码程序可以在APP运行的第一时间被调用。
在本发明实施例的一种具体实施方式中,在生成目标APK后,可对上述目标APK进行重签名,使得系统在安装对应APP时,可以基于目标APK的签名对目标APK进行校验,以确保目标APK包的安全性,提高资源文件的安全性。
具体的,如图5b所示,本发明实施例提供的APK生成方法中,可以将获取的真实资源文件进行加密,再和获取的核心代码程序与生成的壳资源文件一同打包至目标APK,并对目标APK进行重签名,得到最终的目标APK。
作为本发明实施例的一种具体实施方式,上述待生成APK的APP的核心代码程序可以是使用Native方法编写的。Native方法是指Java调用非Java代码的接口。方法的实现具体由非Java语言实现,如C语言或C++语言。
采用Native方法编写核心代码程序,使得不能通过使用反编译工具获取核心代码程序的源代码,进一步提高资源文件的安全性。
其次,基于与上述APP资源加载方法相同的发明构思,本发明实施例还提供了一种APP资源加载装置,所述APP资源包括:该APP对应的APK包中保存的壳资源文件和加密的真实资源文件;所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据。
如图6所示,图6为本发明实施例提供的APP资源加载装置的结构示意图,上述装置可以包括:
指令接收模块601,用于接收APP启动指令,运行所述APP的核心代码程序;
壳资源文件加载模块602,用于所述核心代码程序将所述壳资源文件加载至为其分配的动态内存中;以及,
真实资源映射模块603,用于在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中。
本发明实施例提供的APP资源加载方法中,系统接收到APP启动指令后,就会运行核心代码程序,由核心代码程序将壳资源文件加载至系统,在将壳资源文件映射至系统内存时,读取并解密真实资源文件,得到真实资源数据,并将上述真实资源数据映射至系统内存,即在将壳资源文件映射至系统内存的过程中,用真实资源数据替换壳资源文件,由于真实资源文件是加密的,也就是说APP运行时所需的资源数据是加密的,而且只有在APP运行时才读取和解密真实资源文件映射至内存中,因此提高了资源文件的安全性。
基于上述APP资源加载装置,本发明实施例还提供了一种APK生成装置,如图7所示,上述装置可以包括:
第一获取模块701,用于获取待生成APK的APP的核心代码程序;
第二获取模块702,用于获取并加密真实资源文件,得到加密的真实资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;
壳资源文件生成模块703,用于生成壳资源文件,所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;
存储模块704,用于将所述核心代码程序、加密的真实资源文件、壳资源文件存储进目标APK中,生成目标APK;其中,所述核心代码程序中,包含:用于执行将所述壳资源文件加载至为其分配的动态内存中;以及,在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中的代码。
本发明实施例提供的APK生成方法中,将核心代码程序、加密的真实资源文件及壳资源文件存储至目标APK中,由于将真实资源文件进行加密,使得通过简单的解压缩并不能得到真实资源数据,提高了资源文件的安全性。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
接收APP启动指令,运行所述APP的核心代码程序;
所述核心代码程序将所述壳资源文件加载至为其分配的动态内存中;以及,
在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中。
本发明实施例提供的APP资源加载方法中,系统接收到APP启动指令后,就会运行核心代码程序,由核心代码程序将壳资源文件加载至系统,在将壳资源文件映射至系统内存时,读取并解密真实资源文件,得到真实资源数据,并将上述真实资源数据映射至系统内存,即在将壳资源文件映射至系统内存的过程中,用真实资源数据替换壳资源文件,由于真实资源文件是加密的,也就是说APP运行时所需的资源数据是加密的,而且只有在APP运行时才读取和解密真实资源文件映射至内存中,因此提高了资源文件的安全性。
本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现如下步骤:
获取待生成APK的APP的核心代码程序;
获取并加密真实资源文件,得到加密的真实资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;
生成壳资源文件,所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;
将所述核心代码程序、加密的真实资源文件、壳资源文件存储进目标APK中,生成目标APK;其中,所述核心代码程序中,包含:用于执行将所述壳资源文件加载至为其分配的动态内存中;以及,在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中的代码。
本发明实施例提供的APK生成方法中,将核心代码程序、加密的真实资源文件及壳资源文件存储至目标APK中,由于将真实资源文件进行加密,使得通过简单的解压缩并不能得到真实资源数据,提高了资源文件的安全性。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的APP资源加载或APK生成方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的APP资源加载或APK生成方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质和程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (13)
1.一种APP资源加载方法,其特征在于,所述APP资源包括:该APP对应的APK包中保存的壳资源文件和加密的真实资源文件;所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;
所述方法包括:
接收APP启动指令,运行所述APP的核心代码程序;
所述核心代码程序将所述壳资源文件加载至为其分配的动态内存中;以及,
在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中。
2.根据权利要求1所述的方法,其特征在于,
在所述核心代码程序将所述壳资源文件加载至为其分配的动态内存中的步骤之前,所述方法还包括:
预生成系统内存映射函数的钩子函数,基于所述钩子函数,对所述系统内存映射函数进行HOOK;所述钩子函数是所述核心代码程序的一部分;
所述在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据;并将所述真实资源数据映射至系统内存中的步骤,包括:
所述钩子函数在系统针对所述壳资源文件调用所述内存映射函数的情况下被触发,并在检测到系统将对壳资源进行内存映射的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中。
3.根据权利要求2所述的方法,其特征在于,
所述的壳资源文件和加密的真实资源文件在APP安装过程中,被下载至指定的目录中;
所述将所述壳资源文件加载至为其分配的动态内存中的步骤,包括:
所述核心代码程序将所述壳资源文件从所述指定目录中加载至为其分配的动态内存;
所述钩子函数在系统针对所述壳资源文件调用所述内存映射函数的情况下被触发,并在检测到系统将对壳资源进行内存映射的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中的步骤,包括:
所述钩子函数在系统针对所述壳资源文件调用所述内存映射函数的情况下被触发,并在检测到系统将对壳资源进行内存映射的情况下,从所述指定目录中读取并解密真实资源文件,得到真实资源数据;并将所述真实资源数据映射至系统内存中。
4.根据权利要求3所述的方法,其特征在于,
所述壳资源文件以非隐藏的形式保存在所述指定的目录中;
所述加密的真实资源文件以隐藏的形式保存在所述指定的目录中。
5.根据权利要求2所述的方法,其特征在于,
所述加密的真实资源文件为采用预设加密算法加密的真实资源文件;
所述钩子函数读取并解密真实资源文件,得到真实资源数据的步骤,包括:
所述钩子函数读取所述加密后的真实资源文件,并基于所述核心代码程序中预存的与所述加密算法对应的解密算法,解密出真实资源文件,得到真实资源数据。
6.一种APK生成方法,其特征在于,所述方法包括:
获取待生成APK的APP的核心代码程序;
获取并加密真实资源文件,得到加密的真实资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;
生成壳资源文件,所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;
将所述核心代码程序、加密的真实资源文件、壳资源文件存储进目标APK中,生成目标APK;其中,所述核心代码程序中,包含:用于执行将所述壳资源文件加载至为其分配的动态内存中;以及,在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中的代码。
7.根据权利要求6所述的方法,其特征在于,
所述壳资源文件及加密的真实资源文件存储在目标APK中指定的目录中。
8.根据权利要求6所述的方法,其特征在于,
所述获取待生成APK的APP的核心代码程序的步骤,包括:
获取使用Native方法编写的待生成APK的APP的核心代码程序。
9.一种APP资源加载装置,其特征在于,所述APP资源包括:该APP对应的APK包中保存的壳资源文件和加密的真实资源文件;所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;
所述装置包括:
指令接收模块,用于接收APP启动指令,运行所述APP的核心代码程序;
壳资源文件加载模块,用于所述核心代码程序将所述壳资源文件加载至为其分配的动态内存中;以及,
真实资源映射模块,用于在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中。
10.一种APK生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取待生成APK的APP的核心代码程序;
第二获取模块,用于获取并加密真实资源文件,得到加密的真实资源文件;所述真实资源文件包含真实资源数据,所述真实资源数据为APP运行时所需的资源数据;
壳资源文件生成模块,用于生成壳资源文件,所述壳资源文件为预设的符合APP资源文件格式,且不包含真实资源数据的资源文件;
存储模块,用于将所述核心代码程序、加密的真实资源文件、壳资源文件存储进目标APK中,生成目标APK;其中,所述核心代码程序中,包含:用于执行将所述壳资源文件加载至为其分配的动态内存中;以及,在确定所述壳资源文件要映射至系统内存的情况下,读取并解密真实资源文件,得到真实资源数据,并将所述真实资源数据映射至系统内存中的代码。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5中任一所述的方法步骤。
12.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求6-8中任一所述的方法步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5或6-8中任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110604829.2A CN113220314B (zh) | 2021-05-31 | 2021-05-31 | App资源加载及apk生成方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110604829.2A CN113220314B (zh) | 2021-05-31 | 2021-05-31 | App资源加载及apk生成方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220314A true CN113220314A (zh) | 2021-08-06 |
CN113220314B CN113220314B (zh) | 2023-07-21 |
Family
ID=77081885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110604829.2A Active CN113220314B (zh) | 2021-05-31 | 2021-05-31 | App资源加载及apk生成方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220314B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986388A (zh) * | 2021-10-28 | 2022-01-28 | 上海米哈游璃月科技有限公司 | 程序集加载方法、系统、电子设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160132547A1 (en) * | 2014-11-11 | 2016-05-12 | SEWORKS, Inc. | Apparatus and method for managing apk file in an android platform |
US9762385B1 (en) * | 2015-07-20 | 2017-09-12 | Trend Micro Incorporated | Protection of program code of apps of mobile computing devices |
CN107392018A (zh) * | 2017-06-30 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 应用程序脱壳方法及装置 |
US20180157808A1 (en) * | 2015-08-10 | 2018-06-07 | Line Corporation | System and method for code obfuscation of application |
US20180173857A1 (en) * | 2016-12-16 | 2018-06-21 | International Business Machines Corporation | Prevention of unauthorized resource updates |
CN108537010A (zh) * | 2018-03-14 | 2018-09-14 | 广东能龙教育股份有限公司 | 一种基于AES算法的Android应用程序Native层壳加密方法 |
CN108733988A (zh) * | 2017-04-19 | 2018-11-02 | 北京洋浦伟业科技发展有限公司 | 安卓平台上可执行程序的保护方法 |
US20190087210A1 (en) * | 2017-09-20 | 2019-03-21 | Citrix Systems, Inc. | Java native interface and windows universal app hooking |
CN109871704A (zh) * | 2019-03-19 | 2019-06-11 | 北京智游网安科技有限公司 | 基于Hook的Android资源文件防护方法、设备和存储介质 |
CN110232262A (zh) * | 2019-06-17 | 2019-09-13 | 中金金融认证中心有限公司 | 一种安卓应用的加固方法和系统 |
CN111191195A (zh) * | 2019-12-10 | 2020-05-22 | 航天信息股份有限公司 | 一种用于保护apk的方法和装置 |
CN112417484A (zh) * | 2020-11-26 | 2021-02-26 | 江苏通付盾信息安全技术有限公司 | 资源文件保护方法、装置、计算机设备和存储介质 |
-
2021
- 2021-05-31 CN CN202110604829.2A patent/CN113220314B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160132547A1 (en) * | 2014-11-11 | 2016-05-12 | SEWORKS, Inc. | Apparatus and method for managing apk file in an android platform |
US9762385B1 (en) * | 2015-07-20 | 2017-09-12 | Trend Micro Incorporated | Protection of program code of apps of mobile computing devices |
US20180157808A1 (en) * | 2015-08-10 | 2018-06-07 | Line Corporation | System and method for code obfuscation of application |
US20180173857A1 (en) * | 2016-12-16 | 2018-06-21 | International Business Machines Corporation | Prevention of unauthorized resource updates |
CN108733988A (zh) * | 2017-04-19 | 2018-11-02 | 北京洋浦伟业科技发展有限公司 | 安卓平台上可执行程序的保护方法 |
CN107392018A (zh) * | 2017-06-30 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 应用程序脱壳方法及装置 |
US20190087210A1 (en) * | 2017-09-20 | 2019-03-21 | Citrix Systems, Inc. | Java native interface and windows universal app hooking |
CN108537010A (zh) * | 2018-03-14 | 2018-09-14 | 广东能龙教育股份有限公司 | 一种基于AES算法的Android应用程序Native层壳加密方法 |
CN109871704A (zh) * | 2019-03-19 | 2019-06-11 | 北京智游网安科技有限公司 | 基于Hook的Android资源文件防护方法、设备和存储介质 |
CN110232262A (zh) * | 2019-06-17 | 2019-09-13 | 中金金融认证中心有限公司 | 一种安卓应用的加固方法和系统 |
CN111191195A (zh) * | 2019-12-10 | 2020-05-22 | 航天信息股份有限公司 | 一种用于保护apk的方法和装置 |
CN112417484A (zh) * | 2020-11-26 | 2021-02-26 | 江苏通付盾信息安全技术有限公司 | 资源文件保护方法、装置、计算机设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986388A (zh) * | 2021-10-28 | 2022-01-28 | 上海米哈游璃月科技有限公司 | 程序集加载方法、系统、电子设备及存储介质 |
CN113986388B (zh) * | 2021-10-28 | 2024-03-29 | 上海米哈游璃月科技有限公司 | 程序集加载方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113220314B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108229112B (zh) | 一种保护应用程序、应用程序的运行方法以及装置 | |
CN109062582B (zh) | 一种应用安装包的加密方法及装置 | |
US9081596B2 (en) | Information processing device, virtual machine creation method, and application distribution system | |
US20160203087A1 (en) | Method for providing security for common intermediate language-based program | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
US20080216071A1 (en) | Software Protection | |
EP1967981A1 (en) | Program execution control method, device, and execution control program | |
WO2016078130A1 (zh) | 一种防逆向apk文件的动态加载方法 | |
CN109784007B (zh) | 一种字节码加密的方法、字节码解密的方法及终端 | |
EP2568408A1 (en) | Information processing device, information processing method, and program distribution system | |
CN104462959A (zh) | 一种安卓应用的加固保护方法、服务器和系统 | |
US20080270806A1 (en) | Execution Device | |
EP3296906A1 (en) | Method for protecting dex file from being decompiled in android system | |
US20110271350A1 (en) | method for protecting software | |
CN113568680B (zh) | 应用程序的动态链接库保护方法、装置、设备及介质 | |
CN105740703A (zh) | 一种应用程序的加固方法及装置 | |
CN110597496B (zh) | 应用程序的字节码文件获取方法及装置 | |
CN111382447B (zh) | 安装包的加密方法、存储介质及计算机设备 | |
CN113220314B (zh) | App资源加载及apk生成方法、装置、设备及介质 | |
CN113867768A (zh) | 操作系统处理方法、装置、电子设备及存储介质 | |
KR101863325B1 (ko) | 역공학 방지 방법 및 장치 | |
CN112416395A (zh) | 一种热修复更新方法和装置 | |
JP2008040853A (ja) | アプリケーション実行方法およびアプリケーション実行装置 | |
CN115390863A (zh) | 应用程序安装包生成方法、装置、服务器及存储介质 | |
CN110298146B (zh) | 一种应用程序的处理、运行方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |