一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种DMG程序包的定制方法、装置及相关组件与流程

2022-07-27 21:51:16 来源:中国专利 TAG:

一种dmg程序包的定制方法、装置及相关组件
技术领域
1.本发明涉及数据处理领域,尤其涉及一种dmg程序包的定制方法、装置及相关组件。


背景技术:

2.目前dmg是macos系统上的一种压缩镜像文件,也是macos系统下桌面应用程序的一种软件安装包格式,可直接提供给用户进行软件安装。一般在软件包发布以后的情况下,再对dmg文件进行修改或者对内部资源文件进行添加、删除、替换等操作的过程中,会破坏dmg文件的完整性,也就是说,dmg文件进行修改极度依赖软件的开发人员,需要开发人员针对需要修改的信息、资源等,逐一去项目工程中直接修改,即开发人员需要重新编译、打包、测试,较为麻烦。


技术实现要素:

3.本发明的目的是提供一种dmg程序包的定制方法、装置及相关组件,旨在解决现有无法直接对dmg文件进行个性化定制和修改,导致dmg文件定制较为复杂的问题。
4.为解决上述技术问题,本发明的目的是通过以下技术方案实现的:提供一种dmg程序包的定制方法,其包括:
5.基于输入的路径,加载并打开dmg文件,并在所述dmg文件中生成缓冲文件;
6.基于预设的判断条件,查找所述dmg文件中为macos软件的目标文件,并解析所述目标文件,得到软件基本信息并将所述软件基本信息存储至所述缓冲文件;
7.基于用户的操作指令,对所述软件基本信息进行修改操作、替换操作、删除操作或签名操作,并将对应操作后的软件基本信息同步至所述缓冲文件;
8.对所述目标文件进行签名操作和验证操作,并在签名成功和验证成功后,利用所述目标文件创建新的dmg文件;
9.对所述新的dmg文件进行签名和公证操作,并在签名成功和公证成功后,得到目标dmg文件。
10.另外,本发明要解决的技术问题是还在于提供一种dmg程序包的定制装置,其包括:
11.输入单元,用于基于输入的路径,加载并打开dmg文件,并在所述dmg文件中生成缓冲文件;
12.获取单元,用于基于预设的判断条件,查找所述dmg文件中为macos软件的目标文件,并解析所述目标文件,得到软件基本信息并将所述软件基本信息存储至所述缓冲文件;操作单元,用于基于用户的操作指令,对所述软件基本信息进行修改操作、替换操作、删除操作或签名操作,并将对应操作后的软件基本信息同步至所述缓冲文件;
13.更新单元,用于对所述目标文件进行签名操作和验证操作,并在签名成功和验证成功后,利用所述目标文件创建新的dmg文件;
14.输出单元,用于对所述新的dmg文件进行签名和公证操作,并在签名成功和公证成功后,得到目标dmg文件。
15.另外,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的dmg程序包的定制方法。
16.另外,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的dmg程序包的定制方法。
17.本发明实施例公开了一种dmg程序包的定制方法、装置及相关组件,其中,方法包括:基于输入的路径,加载并打开dmg文件,并在所述dmg文件中生成缓冲文件;基于预设的判断条件,查找所述dmg文件中为macos软件的目标文件,并解析所述目标文件,得到软件基本信息并将所述软件基本信息存储至所述缓冲文件;基于用户的操作指令,对所述软件基本信息进行修改操作、替换操作、删除操作或签名操作,并将对应操作后的软件基本信息同步至所述缓冲文件;对所述目标文件进行签名操作和验证操作,并在签名成功和验证成功后,利用所述目标文件创建新的dmg文件;对所述新的dmg文件进行签名和公证操作,并在签名成功和公证成功后,得到目标dmg文件。该方法使得在软件包发布以后,运营人员可以在没有开发人员参与的情况下,直接对dmg文件进行个性化定制,定制完成后,目标dmg文件继续保持完整性,从而不需要开发人员重新编译、打包、测试。
附图说明
18.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1为本发明实施例提供的dmg程序包的定制方法的流程示意图;
20.图2为本发明实施例提供的dmg程序包的定制方法的目录结构的示意图;
21.图3为本发明实施例提供的dmg程序包的定制方法的第一子流程示意图;
22.图4为本发明实施例提供的dmg程序包的定制方法的第二子流程示意图;
23.图5为本发明实施例提供的dmg程序包的定制装置的示意性框图;
24.图6为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
25.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
26.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
27.还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目
的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
28.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
29.请参阅图1,图1为本发明实施例提供的dmg程序包的定制方法的流程示意图;
30.如图1所示,该方法包括步骤s101~s105。
31.s101、基于输入的路径,加载并打开dmg文件,并在所述dmg文件中生成缓冲文件;
32.s102、基于预设的判断条件,查找所述dmg文件中为macos软件的目标文件,并解析所述目标文件,得到软件基本信息并将所述软件基本信息存储至所述缓冲文件;
33.s103、基于用户的操作指令,对所述软件基本信息进行修改操作、替换操作、删除操作或签名操作,并将对应操作后的软件基本信息同步至所述缓冲文件;
34.s104、对所述目标文件进行签名操作和验证操作,并在签名成功和验证成功后,利用所述目标文件创建新的dmg文件;
35.s105、对所述新的dmg文件进行签名和公证操作,并在签名成功和公证成功后,得到目标dmg文件。
36.在软件分布以后,运营人员无法做到根据软件代理商的需求,实时自主的去修改dmg文件中软件基本信息、资源等,也就是说,极度依赖软件的开发人员,需要开发人员针对需要修改的信息、资源等,逐一去dmg文件中直接修改,较为麻烦,且在修改的过程中,会破坏dmg文件的完整性,故本技术提供一种dmg程序包的定制方法以解决上述问题。
37.具体的,使用以下命令{/usr/bin/hdiutil attach《dmg安装包文件路径》-mountpoint《指定一个挂载点路径》-owners on-shadow-nobrowse-noautoopen}加载并打开dmg文件,在本技术中,所述缓冲文件为以.shadow.结尾的缓冲文件或json软件信息同步文件,若是以.shadow.结尾的缓冲文件,则在执行完加载和打开dmg文件的命令后自动在《dmg安装包文件路径》下生成以.shadow结尾的缓存文件,以.shadow.结尾的缓冲文件具有自动保存的优点,即后续修改等操作都可以自动同步和保存,不需要人为干预;缺点是两者要在相同的目录下且名字必须要跟原dmg文件名相同,并且只能搭配此dmg文件使用。
38.而json软件信息同步文件需要先人为操作生成,优点是是可以人为修改,保存成模板,以供后续的其他不同版本的dmg程序包使用;缺点是需要人为把修改、添加或者删除操作记录在文件中。故根据实际需要,可以选择相应类型的缓冲文件。
39.具体一实施例中,所述步骤s102包括:
40.s10、查找所述dmg文件是否存在文件名称以app结尾的应用文件;若存在文件名称以app结尾的应用文件,则执行步骤s11;若不存在文件名称以app结尾的应用文件,则执行步骤s14;
41.s11、判断所述应用文件的目录结构是否符合macos系统下软件的规则,若所述应用文件的目录结构符合macos系统下软件的规则,则执行步骤s12;若所述应用文件的目录结构不符合macos系统下软件的规则,则执行步骤s14;
42.s12、获取所述应用文件中可执行文件的header信息,并判断所述header信息是否满足预设的头部信息判断规则,若所述header信息满足预设的头部信息判断规则,则执行步骤s13;若所述header信息不满足预设的头部信息判断规则,则执行步骤s14;
43.s13、判定所述应用文件为目标文件;
44.s14、判定所述应用文件为非目标文件,并结束。
45.在本实施例中,一般macos系统下软件的目录结构(如图2所示),步骤s11中的macos系统下软件的规则为:判断根目录下是否包含contents,且contents目录下是否包含info.plist、macos、pkginfo、resources、codesignature这五个目录或者文件;在满足上述的macos系统下软件的规则后,获取contents/macos/testproject可执行文件的header信息,contents/macos/testproject是一个macos应用的可执行文件,运行此文件即可运行整个程序,其中,testproject是举例使用的名称,不同的应用有不同的名称。
46.header信息是macos应用的头信息,是contents/macos/testproject二进制文件中最开始的一段代码,其中包含了是否是macos应用的标记。读取此可执行文件中相对于文件开始、偏移位置在0x00000002处,长度为2的值,判断其是否等于0x2,可确定此软件是否是macos软件。
47.具体一实施例中,所述步骤s102还包括:
48.s20、获取所述目标文件中的info.plist文件和infoplist.strings文件,并读取所述info.plist文件和infoplist.strings文件中的目录结构以及软件信息,其中,所述软件信息包括软件名称、版本号、发布时间、标识符;
49.s21、从所述目录结构中的localizable.strings文件中读取界面显示文案信息;
50.s22、从frameworks目录中读取依赖的动态链接库和静态链接库信息;
51.s23、从resources目录读取资源文件;
52.s24、从coderesources文件中读取软件签名信息;
53.s25、将所述软件信息、界面显示文案信息、动态链接库和静态链接库信息、资源文件以及软件签名信息进行展示并存储于所述缓冲文件。
54.需要说明的是,infoplist.strings是info.plist的另一种形式和补充,info.plist只有一个,而infoplist.strings可以有多个,不同的语言可以包含不同的infoplist.strings文件,程序启动时会优先加载当前语言下infoplist.strings中的配置项,如果在infoplist.strings没有找到需要的配置项,会继续去info.plist寻找,最终还是没有找到,则会显示相应的默认值。
55.从软件基本信息info.plist和infoplist.strings文件中读取软件名称、版本号、发布时间、标识符等软件信息;从localizable.strings文件中读取界面显示文案信息;从动态库和静态库目录frameworks目录中读取依赖的动态链接库(扩展名格式为framework和dylib)和静态链接库(扩展名格式为a)等信息;从resources目录读取资源文件(各种类型的图片、nib文件);从app签名信息coderesources文件中读取软件签名信息。将这些信息展示出来,并且根据所选择的信息同步方式,存入一个.shadow缓存文件或者json软件信息同步文件中,以便后面修改时使用。
56.在步骤s103中,将步骤s102得到的软件基本信息即上述的软件名称、版本号、发布时间、标识符等基本信息,文案信息,动态链接库和静态链接库,资源文件,签名信息等信息一一展示出来给使用者,使用者根据个性化定制需求,可以进行修改、替换、删除、签名等操作,并将所做的修改同步到相应的.shadow缓存文件或者json软件信息同步文件中。比如:某个软件代理商想把软件修改一个新的软件名字和一个新的产品logo,或者想把软件某个
界面的图片换一下,那么就可以在展示出来的相应的信息上进行修改。
57.在修改后,根据所选择的信息同步方式,将json临时文件或者.shadow缓存文件中所做的修改,更新至app软件包即目标文件中,需要说明的是,dmg文件包含app文件。dmg是一种压缩格式,可以用工具(比如dmg canvas)将app存入dmg文件中,生成一个以.dmg结尾的文件。所以,dmg文件是包含了app文件的压缩文件。
58.如图3所示,具体一实施例中,所述步骤s104包括:
59.s30、通过企业开发者账号生成.p12开发证书,将所述.p12开发证书安装至终端上,并通过钥匙串访问应用查询到开发者账号标识;
60.s31、创建entitlements签名配置选项文件;
61.s32、输入codesign指令、目标文件路径参数、开发者账号标识参数、entitlements签名配置选项文件的参数,以输出第一显示结果;
62.s33、判断所述第一显示结果是否有错误提示内容,若所述第一显示结果为无错误提示内容,则执行步骤s34;若所述第一显示结果有错误提示内容,则执行步骤s35;
63.s34、判定签名操作成功,并执行步骤s36;
64.s35、判定签名操作失败,并根据所述错误提示内容修改对应参数,并返回步骤s32;
65.s36、输入spctl命令、目标文件路径参数,以返回验证结果,并执行步骤s37;
66.s37、对所述验证结果进行判断,若所述验证结果为接收,则执行步骤s38;若所述验证结果为不接收,则执行步骤s39;
67.s38、判定验证操作成功;
68.s39、判定验证操作失败,并根据所述验证结果修改对应参数,并返回步骤s36。
69.在本实施例中,需要说明的是,签名是面向开发者提出的一项机制,是赋予企业开发者的一种权限,由企业开发者账号生成的.p12开发证书,然后将.p12开发证书安装到执行上述命令的电脑上,可以对app进行添加信任操作,即所谓对app进行“签名”,签名以后能让app免上架app store,直接安装到用户的ios或者macos设备上。
70.证书安装以后,可以在电脑上打开“钥匙串访问”应用(路径如下:“应用程序-》实用工具-》钥匙串访问”),找到名称包含本企业名的证书文件,证书名称即为"开发者账号标识"。
71.此外还要准备一个entitlements签名配置选项文件,它是一个配置文件,用来表明应用程序需要开启的功能,举例如下:
[0072][0073]
具体的,使用如下命令进行签名操作:{codesign-s"开发者账号标识""app程序包路径"-f
‑‑
deep
‑‑
timestamp
‑‑
options=runtime
‑‑
entitlements=entitlements签名配置选项文件路径};具体步骤如下:
[0074]
打开终端应用(路径如下:应用程序-》实用工具-》终端),输入命令codesign,然后依次输入上述命令后面的参数,如果无错误内容输出即为签名成功;有错误输出,则需要根据错误提示修改对应参数。
[0075]
在签名成功后,对上述签名进行验证,打开终端应用,输入以下命令{"spctl-a-t exec-vv"app程序包路径"},若返回结果为:accepted,即为验证成功。否则即为验证失败,修改相关错误后重新从s36步开始执行。
[0076]
在得到目标文件后,使用所述目标文件创建新的dmg文件,并对新的dmg文件进行签名和公证操作,以保证新创建的dmg文件的完整性和对新的dmg文件添加信任操作。
[0077]
结合图4,具体一实施例中,所述步骤105包括:
[0078]
s40、输入codesign指令、新的dmg文件路径参数、开发者账号标识参数、entitlements签名配置选项文件的参数,以输出第二显示结果;
[0079]
s41、判断所述第二显示结果是否有错误提示内容,若所述第二显示结果为无错误提示内容,则执行步骤s42;若所述第二显示结果有错误提示内容,则执行步骤s43;
[0080]
s42、判定签名操作成功,并执行步骤s44;
[0081]
s43、判定签名操作失败,并根据所述错误提示内容修改对应参数,并返回执行步骤s40;
[0082]
s44、将所述dmg文件发送至apple服务器,使所述apple服务器基于接收的dmg文件,返回公证结果,并执行步骤s45;
[0083]
s45、判断所述公证结果是否有错误提示内容,若所述公证结果有错误提示内容,
则执行步骤s46;若所述公证结果没有错误提示内容,则执行步骤s47;
[0084]
s46、判定所述dmg文件公证失败,并基于所述错误提示内容修改对应参数,并返回至步骤s44;
[0085]
s47、判定所述dmg文件公证成功,并对所述签名操作和所述公证操作进行验证,若所述签名操作和所述公证操作的验证结果正确,则执行步骤s48;若所述签名操作和所述公证操作的验证结果失败,则执行步骤s49;
[0086]
s48、判定所述dmg文件为目标dmg文件,并输出。
[0087]
s49、判定所述dmg文件为非目标dmg文件,则基于所述验证结果修改对应参数,并返回步骤s40;
[0088]
需要说明的是,本实施例中的阈值结果和步骤s36中返回的验证结果是不同的,只是在本技术取名一致。
[0089]
在本实施例中,对新的dmg文件进行签名和对目标文件进行签名操作的唯一不同点是将步骤s32中的“目标文件路径参数”替换成步骤s40中的“新的dmg文件路径参数”,具体的,使用如下命令进行签名操作:{codesign-s"开发者账号标识"《dmg安装包路径》-f
‑‑
deep
‑‑
timestamp
‑‑
options=runtime
‑‑
entitlements=entitlements签名配置选项文件}。
[0090]
在签名操作成功后,对新的dmg文件进行公证操作,需要说明的是,公证是从macos 10.14.5系统版本开始,添加的新安全检查机制,是将dmg安装包上传到apple服务器,以验证软件是不是来自获得认可的开发者并且没有遭到改动,另外所有软件在发布前都通过了公证才可以进行正常发布。
[0091]
具体的,使用如下命令{xcrun altool
‑‑
notarize-app-f《dmg安装包路径》
‑‑
primary-bundle-id"app bundle id"-u"开发者账号"-p"开发者账号密码"}进行公证。具体步骤如下,开终端应用(路径如下:应用程序-》实用工具-》终端),输入命令xcrun altool,然后依次输入
‑‑
notarize-app、-f、"dmg安装包路径"、
‑‑
primary-bundle-id、"app bundle id"、-u、"开发者账号"、-p、"开发者账号密码"等参数后运行。公证结束后,在终端会输出一个requestuuid,(例如:dedae3f3-876e-4b38-94ca-5d4e6726f2fe),同时apple公司也会发送一封邮件到对应的开发者邮箱账户告知公证结果。
[0092]
在步骤s47中,目的是为了再次确认签名操作和公证结果是否正确。具体步骤如下,首先,打开终端应用,输入以下命令{"spctl-a-t exec-vv"dmg安装包路径"},进行签名验证:返回结果为:accepted,即为签名成功;否则签名失败。然后,打开终端应用,使用如下命令{xcrun altool
‑‑
notarization-info"公正时返回的uuid"-u"开发者账号"-p"开发者账号密码"}进行公正验证:
[0093]
对这个requestuuid(dedae3f3-876e-4b38-94ca-5d4e6726f2fe)执行公证命令,会返回如下结果:
[0094]
no errors getting notarization info.
[0095]
requestuuid:dedae3f3-876e-4b38-94ca-5d4e6726f2fe
[0096]
date:2021-12-23 03:12:50 0000
[0097]
status:success
[0098]
logfileurl:
[0099]
https://osxapps-ssl.itunes.apple.com/itunes-assets/enigma116/v4/22/5e/47/225e4714-a6fa-0e2c-26bc-3bf5f6e5a541/developer_log.json?accesskey=1640425822_6349731612935347420_kbr1uojsfqyi9lq8gbtivmd1gn4xny2jawrmj3l43p87jb3%2bk5srbsdkorcpge2fdrzif3dduexerkggvhytf2nbpgag3bg7pxw%2fgrtjw7wfgzdpmsns%2fnpsbvotam7qoqprsvcbboqot%2fyciidzuytqvgnnnmsj1kmyyxurphk%3d
[0100]
status code:0
[0101]
status message:package approved
[0102]
上述结果中,status显示success,即为公证通过;status显示in progress,即还在公证过程中,稍后再次输入上述命令查看结果;status显示invalid,即为公证不通过,需要打开logfileurl中的链接查看具体错误信息,修改相关错误后重新从步骤s40步开始执行。
[0103]
通过上述方法,使得在软件包发布以后,运营人员可以在没有开发人员参与的情况下,直接对dmg文件进行个性化定制,定制完成后,目标dmg文件继续保持完整性,从而不需要开发人员重新编译、打包、测试。
[0104]
本发明实施例还提供一种dmg程序包的定制装置,该dmg程序包的定制装置用于执行前述dmg程序包的定制方法的任一实施例。具体地,请参阅图5,图5是本发明实施例提供的dmg程序包的定制装置的示意性框图。
[0105]
如图5所示,dmg程序包的定制装置500,包括:
[0106]
输入单元501,用于基于输入的路径,加载并打开dmg文件,并在所述dmg文件中生成缓冲文件;
[0107]
获取单元502,用于基于预设的判断条件,查找所述dmg文件中为macos软件的目标文件,并解析所述目标文件,得到软件基本信息并将所述软件基本信息存储至所述缓冲文件;
[0108]
操作单元503,用于基于用户的操作指令,对所述软件基本信息进行修改操作、替换操作、删除操作或签名操作,并将对应操作后的软件基本信息同步至所述缓冲文件;
[0109]
更新单元504,用于对所述目标文件进行签名操作和验证操作,并在签名成功和验证成功后,利用所述目标文件创建新的dmg文件;
[0110]
输出单元505,用于对所述新的dmg文件进行签名和公证操作,并在签名成功和公证成功后,得到目标dmg文件。
[0111]
该装置使得在软件包发布以后,运营人员可以在没有开发人员参与的情况下,直接对dmg文件进行个性化定制,定制完成后,目标dmg文件继续保持完整性,从而不需要开发人员重新编译、打包、测试。
[0112]
具体一实施例中,所述缓冲文件为以.shadow.结尾的缓冲文件或json软件信息同步文件。
[0113]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0114]
上述dmg程序包的定制装置可以实现为计算机程序的形式,该计算机程序可以在如图6所示的计算机设备上运行。
[0115]
请参阅图6,图6是本发明实施例提供的计算机设备的示意性框图。该计算机设备1100是服务器,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
[0116]
参阅图6,该计算机设备1100包括通过系统总线1101连接的处理器1102、存储器和网络接口1105,其中,存储器可以包括非易失性存储介质1103和内存储器1104。
[0117]
该非易失性存储介质1103可存储操作系统11031和计算机程序11032。该计算机程序11032被执行时,可使得处理器1102执行dmg程序包的定制方法。
[0118]
该处理器1102用于提供计算和控制能力,支撑整个计算机设备1100的运行。
[0119]
该内存储器1104为非易失性存储介质1103中的计算机程序11032的运行提供环境,该计算机程序11032被处理器1102执行时,可使得处理器1102执行dmg程序包的定制方法。
[0120]
该网络接口1105用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图6中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备1100的限定,具体的计算机设备1100可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0121]
本领域技术人员可以理解,图6中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图6所示实施例一致,在此不再赘述。
[0122]
应当理解,在本发明实施例中,处理器1102可以是中央处理单元(central processing unit,cpu),该处理器1102还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0123]
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例的dmg程序包的定制方法。
[0124]
所述存储介质为实体的、非瞬时性的存储介质,例如可以是u盘、移动硬盘、只读存储器(read-only memory,rom)、磁碟或者光盘等各种可以存储程序代码的实体存储介质。
[0125]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0126]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献