处理组件的配置方法、装置、终端及存储介质转让专利

申请号 : CN201810362132.7

文献号 : CN108595970B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王猛猛陈岩程杰

申请人 : OPPO广东移动通信有限公司

摘要 :

本申请实施例公开了一种处理组件的配置方法、装置、终端及存储介质,属于计算机技术领域,能够在目标应用执行预定操作时,将公开环境中的密文策略文件传输至TEE中,令该密文策略文件在TEE中解密,得到明文策略文件,并从TEE中获取该明文策略文件,根据该明文策略文件配置处理组件,且该处理组件是与预定操作相关联的硬件组件。由于本实施例提供的方案能够在目标应用执行预定操作时将密文策略文件传输至TEE中解密,保护了获得明文策略文件的过程,且能够根据明文策略文件配置实现目标应用的相关功能的处理组件。可见,本申请实施例降低了明文策略文件被窃取的风险,提高了明文策略文件的安全性。

权利要求 :

1.一种处理组件的配置方法,其特征在于,应用在终端中,所述终端包括公开环境和可信任执行环境TEE,所述方法包括:当目标应用执行预定操作时,将所述公开环境中的密文策略文件传输至所述TEE,所述目标应用是运行在所述公开环境中的应用,所述密文策略文件是明文策略文件根据预定算法加密后生成的文件,所述明文策略文件包括策略条件和策略参数;

在所述TEE中根据解密密钥解密所述密文策略文件,得到所述明文策略文件,所述解密密钥是存储在所述TEE中对应所述预定算法的密钥;

从所述TEE中获取所述明文策略文件;

检测所述目标应用是否满足所述策略条件,所述策略条件包括:完成调用G-sensor、完成调用摄像头、完成调用触摸屏、完成调用麦克风、完成调用陀螺仪、完成调用导航芯片、完成调用温度传感器、完成调用光线传感器和完成调用距离传感器中至少一种;

若所述目标应用满足所述策略条件,则根据所述策略参数配置处理组件,所述处理组件是与所述预定操作相关联的硬件组件,所述处理组件包括输入组件和处理器中的至少一种;

其中,所述预定操作包括:调用第一软件开发套件SDK中的API向第一系统应用的第二软件开发套件SDK发送场景信息的操作,所述场景信息是指示所述目标应用使用所述终端中的硬件组件情况的信息。

2.根据权利要求1所述的方法,其特征在于,所述目标应用中内嵌有第一软件开发套件SDK,所述第一软件发套件SDK的应用程序接口API用于与第一系统应用的第二软件开发套件SDK进行数据交互,所述预定操作包括:通过所述第一软件开发套件SDK中的API启动输入组件的操作;

或,

通过所述第一软件开发套件SDK中的API关闭输入组件的操作;

其中,所述输入组件用于接收针对所述终端的输入操作。

3.根据权利要求1所述的方法,其特征在于,所述目标应用中内嵌有第一软件开发套件SDK,所述第一软件开发套件SDK的应用程序接口API用于与第一系统应用的第二软件开发套件SDK进行数据交互,所述预定操作包括:通过所述第一软件开发套件SDK中的API启动指定功能的操作;

或,

通过所述第一软件开发套件SDK中的API关闭指定功能的操作;

其中,所述指定功能是所述目标应用提供的功能。

4.根据权利要求1所述的方法,其特征在于,所述预定操作包括启动操作。

5.根据权利要求1至4中任一所述的方法,其特征在于,所述当目标应用执行预定操作时,将所述公开环境中的密文策略文件传输至所述TEE,包括:当目标应用执行预定操作时,调用可信任通信接口,所述可信任通信接口用于访问所述TEE中的共享内存;

通过所述可信任通信接口向所述共享内存中写入所述密文策略文件。

6.根据权利要求5所述的方法,其特征在于,所述从所述TEE中获取所述明文策略文件,包括:调用所述可信任通信接口;

通过所述可信任通信接口从所述共享内存中读取所述明文策略文件。

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:当所述明文策略文件被所述可信任通信接口获取后,删除所述共享内存中的所述明文策略文件。

8.根据权利要求6所述的方法,其特征在于,所述方法还包括:在所述若所述目标应用满足所述策略条件,则根据所述策略参数配置处理组件的步骤之后,删除所述公开环境中的所述明文策略文件。

9.一种处理组件的配置装置,其特征在于,应用在终端中,所述终端包括公开环境和可信任执行环境TEE,所述装置包括:传输模块,被配置为当目标应用执行预定操作时,将所述公开环境中的密文策略文件传输至所述TEE,所述目标应用是运行在所述公开环境中的应用,所述密文策略文件是明文策略文件根据预定算法加密后生成的文件,所述明文策略文件包括策略条件和策略参数;

其中,所述预定操作包括:调用第一软件开发套件SDK中的API向第一系统应用的第二软件开发套件SDK发送场景信息的操作,所述场景信息是指示所述目标应用使用所述终端中的硬件组件情况的信息;

解密模块,被配置为在所述TEE中根据解密密钥解密所述密文策略文件,得到所述明文策略文件,所述解密密钥是存储在所述TEE中对应所述预定算法的密钥;

获取模块,被配置为从所述TEE中获取所述明文策略文件;

配置模块,被配置为检测所述目标应用是否满足所述策略条件,所述策略条件包括:完成调用G-sensor、完成调用摄像头、完成调用触摸屏、完成调用麦克风、完成调用陀螺仪、完成调用导航芯片、完成调用温度传感器、完成调用光线传感器和完成调用距离传感器中至少一种;若所述目标应用满足所述策略条件,则根据所述策略参数配置处理组件,所述处理组件是与所述预定操作相关联的硬件组件,所述处理组件包括输入组件和处理器中的至少一种。

10.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至8任一所述的处理组件的配置方法。

11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至8任一所述的处理组件的配置方法。

说明书 :

处理组件的配置方法、装置、终端及存储介质

技术领域

[0001] 本申请实施例属于计算机技术领域,特别涉及一种处理组件的配置方法、装置、终端及存储介质。

背景技术

[0002] 终端作为用户与外界进行信息交换的工具,通常通过指定的目标应用实现对应的功能。例如,照相应用实现拍摄图片或摄像的功能,社交应用实现与其它用户进行聊天的功能。
[0003] 相关技术中,上述目标应用在实现相关功能时需要调用终端中的处理组件。终端通常在操作系统的ROM(Read-Only Memory,只读内存)中固化有处理组件属性。当终端中的处理组件被调用时,终端读取ROM中的处理组件属性以配置该处理组件。例如,照相应用开启时,终端读取ROM中的摄像头属性,配置摄像头拍摄图片或摄像的性能。
[0004] 然而,相关技术中硬件属性提供的处理组件属性固定,在不同的目标应用调用该处理组件时的效果的波动性较大,且处理组件属性容易被恶意程序窃取。

发明内容

[0005] 本申请实施例提供了一种处理组件的配置方法、装置、终端及存储介质,可以解决相关技术中硬件属性提供的处理组件属性固定,在不同的目标应用调用该处理组件时的效果的波动性较大,且处理组件属性容易被恶意程序窃取的问题。所述技术方案如下:
[0006] 根据本申请的第一方面,提供了一种处理组件的配置方法,应用在终端中,终端包括公开环境和可信任执行环境TEE,所述方法包括:
[0007] 当目标应用执行预定操作时,将所述公开环境中的密文策略文件传输至所述TEE,所述目标应用是运行在所述公开环境中的应用,所述密文策略文件是明文策略文件根据预定算法加密后生成的文件;
[0008] 在所述TEE中根据解密密钥解密所述密文策略文件,得到所述明文策略文件,所述解密密钥是存储在所述TEE中对应所述预定算法的密钥;
[0009] 从所述TEE中获取所述明文策略文件;
[0010] 根据所述明文策略文件配置处理组件,所述处理组件是与所述预定操作相关联的硬件组件。
[0011] 根据本申请的第二方面,提供了一种处理组件的配置装置,应用在终端中,所述终端包括公开环境和可信任执行环境TEE,所述装置包括:
[0012] 传输模块,被配置为当目标应用执行预定操作时,将所述公开环境中的密文策略文件传输至所述TEE,所述目标应用是运行在所述公开环境中的应用,所述密文策略文件是明文策略文件根据预定算法加密后生成的文件;
[0013] 解密模块,被配置为在所述TEE中根据解密密钥解密所述密文策略文件,得到所述明文策略文件,所述解密密钥是存储在所述TEE中对应所述预定算法的密钥;
[0014] 获取模块,被配置为从所述TEE中获取所述明文策略文件;
[0015] 配置模块,被配置为根据所述明文策略文件配置处理组件,所述处理组件是与所述预定操作相关联的硬件组件。
[0016] 根据本申请的第三方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如第一方面所述的处理组件的配置方法。
[0017] 根据本申请的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如第一方面所述的处理组件的配置方法。
[0018] 本申请实施例提供的技术方案带来的有益效果至少包括:
[0019] 由于本申请实施例在实现时,能够在目标应用执行预定操作时,将公开环境中的密文策略文件传输至TEE中,令该密文策略文件在TEE中解密,得到明文策略文件,并从TEE中获取该明文策略文件,根据该明文策略文件配置处理组件,且该处理组件是与预定操作相关联的硬件组件。由于本实施例提供的方案能够在目标应用执行预定操作时将密文策略文件传输至TEE中解密,保护了获得明文策略文件的过程,且能够根据明文策略文件配置实现目标应用的相关功能的处理组件。可见,本申请实施例降低了明文策略文件被窃取的风险,提高了明文策略文件的安全性。

附图说明

[0020] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021] 图1是是本申请一个示例性实施例提供的终端100的结构方框图;
[0022] 图2是本申请一个示例性实施例提供的第三方应用程序与操作系统之间的数据通信示意图;
[0023] 图3是本申请一个示例性实施例提供的一种存储器存储的程序和数据的示意图;
[0024] 图4是本申请一个示例性实施例提供一种接口通信系统的架构图;
[0025] 图5是本申请一个示例性实施例提供另一种接口通信系统的架构图;
[0026] 图6是本申请一个示例性实施例提供的另一种存储器存储的程序和数据的示意图;
[0027] 图7是本申请一个示例性实施例提供的处理组件的配置方法的流程图;
[0028] 图8是本申请一个示例性实施例提供的一种传输密文策略文件的流程图;
[0029] 图9是本申请一个示例性实施例提供的一种目标应用在调用第一SDK中的API启动输入组件时的数据流向示意图;
[0030] 图10是本申请一个示例性实施例提供的一种传输密文策略文件的流程图;
[0031] 图11是本申请一个示例性实施例提供的一种传输密文策略文件的流程图;
[0032] 图12是本申请一个示例性实施例提供的一种第一系统应用获取场景信息时的数据流向示意图;
[0033] 图13是本申请一个示例性实施例提供的处理组件的配置装置的结构框图。

具体实施方式

[0034] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0035] 为了本申请实施例所示方案易于理解,下面将对本申请实施例中出现的若干名词进行介绍。
[0036] 公开环境:指终端中开放的运行环境。在公开环境中,目标应用可以不受限制地自由访问内存字段、访问存储空间、调用API接口或调用终端的硬件。或者,目标应用也可以在安装时向用户申请执行上述操作的权限。例如,当用户在安装时的用户界面中确认赋予目标应用相应的权限时,该目标应用能够执行上述操作。
[0037] TEE:指终端中与公开环境相隔离的运行环境。TEE在终端的系统控制权限被窃取后能够持续保证与公开环境隔离,不会被破坏。在一种可能实现的方式中,TEE可以是硬件支持的隔离执行环境,可以是TEE(Trusted Execution Environment,可信执行环境)。
[0038] 目标应用:指能够运行在终端的公开环境中的应用。可选地,在一种可能的实现方式中,目标应用能够提供可视的用户界面。例如,该目标应用可以是游戏应用、购物程序、即时通讯程序、博客应用、制图绘画应用、文本编辑应用、订票应用、地图导航应用、视频播放应用、直播应用、浏览器应用、阅读应用、音乐应用、理财支付应用、相机应用、相片美化程序、智能设备控制应用、电话应用、短信程序、天气应用、时钟程序、系统搜索应用、联系人程序、共享交通应用、物流应用、打车应用、外卖应用、考勤打卡应用和扫码应用中至少一种。
[0039] 在另一种可能的实现方式中,目标应用可以是运行时没有可视的用户界面的应用。例如,该目标应用可以是录屏应用、手电筒应用或录音应用中至少一种。
[0040] 预定操作:指可以由目标应用执行的操作,可以在不同的场景中具体实现为对应该场景的操作。
[0041] 在一种可能实现的方式中,目标应用中内嵌有第一软件开发套件SDK,第一SDK的应用程序接口API用于与第一系统应用的第二SDK进行数据交互。预定操作可以包括通过第一SDK中的API启动输入组件的操作,或者,通过第一SDK中的API关闭输入组件的操作。其中输入组件用于接收针对终端的输入操作。可选地,输入组件可以包括触摸屏、陀螺仪、加速度传感器G-sensor、距离感应器、指纹传感器、麦克风、光线感应器、热感应器、实体按键(音量加键、音量减键、开关机键或home键等)、外接鼠标、外接键盘、外接操控手柄、耳机插孔按键和外接体感设备中至少一种。
[0042] 在另一种可能的实现方式中,目标应用中内嵌有第一软件开发套件SDK,第一SDK的应用程序接口API用于与第一系统应用的第二SDK进行数据交互。预定操作可以包括通过第一SDK中的API启动指定功能的操作;或者,通过第一SDK中的API关闭指定功能的操作。在该实现方式中,指定功能可以是应用程序中提供的功能,该指定功能能够独立开启并关闭。可选地,当目标应用是游戏应用时,该指定功能可以包括游戏内的文字聊天功能、语音聊天功能、录屏功能和截屏功能中至少一种功能。当目标应用是购物应用时,该指定功能可以包括聊天功能、扫码功能(包括扫描条形码和二维码)、已购商品的实时所在地的查看功能和商品视频播放功能中至少一种功能。当目标应用是即时通讯应用时,该指定功能可以包括视频通话功能或语音通话功能。当目标应用是博客应用时,该指定功能可以包括拍照分享功能或摄影分享功能。当目标应用是地图导航应用时,该指定功能可以包括导航功能或全景查看功能。需要说明的是,该指定功能可以根据目标应用的不同而实现为对应的功能,本申请实施例对此不作限制。
[0043] 在又一种可能的实现方式中,预定操作可以包括通过第一SDK中的API向第一系统应用的第二SDK发送场景信息的操作。在一种具体实现的方式中,第一系统应用可以周期性地通过第二SDK向目标应用程序的第一SDK中的API发送查询目标场景的请求。相应的,目标应用通过第一SDK中的API向第一系统应用的第二SDK发送场景信息。当第一系统应用检测到第二SDK接收到通过第一SDK中的API发送的场景信息时,终端确定目标应用已经执行了预定操作。
[0044] 其中,第一系统应用可以是操作系统提供的应用,在开启后能够获取目标应用中的场景信息。可选地,场景信息是用于指示目标应用使用终端中的硬件组件情况的信息。硬件组件可以包括输入组件、输出组件、处理器、存储组件和通讯组件。可选地,输出组件可以包括显示屏、扬声器、蜂鸣器、指示灯和震动器中至少一种。可选地,处理器可以包括CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、APU(AI Processing Unit,人工智能处理器)、NPU(Neural-network Processing Unit,神经网络处理器)、TPU(Tensor Processing Unit,高性能处理器)或DPU(Deep Learning Processing Unit,深度学习处理器)中的至少一种。可选地,存储组件可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储组件还可以包括高速随机存取存储器,以及非易失性存储器。比如一个或多个磁盘存储设备、闪存存储设备。可选地,通讯组件用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。通讯组件通过电磁信号与通信网络以及其它通信设备进行通信。通讯组件将电信号转换为电磁信号发送,或者,将接收到的磁信号转换为电信号。可选地,通讯组件可以包括天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、解码芯片组、用户身份模块卡等等。
[0045] 在另一种可能的实现方式中,预定操作可以包括启动操作。当目标应用执行启动操作时,终端将公开环境中的密文策略文件传输至TEE。例如,当目标应用的启动图标被点击时,或者,目标应用在通知栏中的通知消息被点击时,或者,在其它应用中存在的目标应用的跳转按钮被点击时,均可以认为是目标应用执行启动操作。
[0046] 处理组件:是终端中用于实现目标应用的相关功能的硬件组件,该相关功能可以包括终端中任意一个被设计的功能。可选地,该处理组件包括上述硬件组件中的输入组件和处理器中至少一种。
[0047] 密文策略文件:指根据预定算法加密的且与预定操作对应的明文策略文件。其中,明文策略文件经过预定算法加密后即生成密文策略文件。
[0048] 明文策略文件:指密文策略文件根据解密密钥解密后生成的文件。该明文策略文件在TEE中生成后,被存储在共享内存中。由于直接根据解密密钥解密密文策略文件后获得的是一串字符串,因此,本实施例还提供一可信任应用,该可信任应用将密文策略文件解密后获得的字符串整理并存储到一个安全数据结构中,存储到安全数据结构中的文件可以视为明文策略文件,该文件本存储在共享内存中。
[0049] 可选地,预定算法可以是对称加密算法,也可以是非对称加密算法。
[0050] 可选地,该对称加密算法可以包括DES算法、3DES算法、TDEA算法、Blowfish算法、RC5算法和IDEA算法中至少一种。当预定算法是对称加密算法时,用于加密明文策略文件的加密密钥和用于解密密文策略文件的解密密钥是相同的密钥。在本实施例中,解密密钥存储在TEE中,运行在公开环境中的应用没有访问该解密密钥的权限。需要说明的是,该解密密钥可以在TEE的编译阶段固化到该TEE中。
[0051] 可选地,该非对称加密算法可以包括RSA算法、Elgamal算法、背包算法、Rabin算法、D-H算法和椭圆曲线加密算法中至少一种。当预定算法是非对称加密算法时,用于加密明文策略文件的加密密钥和用于解密密文策略文件的解密密钥是不同的密钥。该加密密钥是公钥,能够被公开读取;该解密密钥是私钥,用于解密经过上述公钥加密后的密文策略文件。
[0052] 在一种可能的实现方式中,该密文策略文件可以在服务器中生成。服务器通过预定算法以及加密密钥加密明文策略文件,得到密文策略文件。随后,服务器通过远程推送的方式将密文策略文件推送至对应的各个终端中。终端在接收到该密文策略文件后,可以启动第二系统应用,通过第二系统应用将该密文策略文件存储在公开环境中。
[0053] 请参考图1,其是本申请一个示例性实施例提供的终端100的结构方框图。该终端100可以是智能手机、平板电脑、MP4播放终端、MP5播放终端、学习机、点读机、电纸书、电子词典、车载终端等能够运行应用程序的电子设备。本申请中的终端100可以包括一个或多个如下部件:处理器110、存储器120和输入输出装置130。
[0054] 处理器110可以包括一个或者多个处理核心。处理器110利用各种接口和线路连接整个终端100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
[0055] 存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选地,该存储器120包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等,该操作系统可以是安卓(Android)系统(包括基于Android系统深度开发的系统)、苹果公司开发的IOS系统(包括基于IOS系统深度开发的系统)或其它系统。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
[0056] 存储器120可分为操作系统空间和用户空间,操作系统即运行于操作系统空间,原生及第三方应用程序即运行于用户空间。为了保证不同第三方应用程序均能够达到较好的运行效果,操作系统针对不同第三方应用程序为其分配相应的系统资源。然而,同一第三方应用程序中不同应用场景对系统资源的需求也存在差异。比如,在本地资源加载场景下,第三方应用程序对磁盘读取速度的要求较高;在动画渲染场景下,第三方应用程序则对GPU性能的要求较高。而操作系统与第三方应用程序之间相互独立,操作系统往往不能及时感知第三方应用程序当前的应用场景,导致操作系统无法根据第三方应用程序的具体应用场景进行针对性的系统资源适配。
[0057] 如图2所示,为了使操作系统能够区分第三方应用程序的具体应用场景,需要打通第三方应用程序与操作系统之间的数据通信,使得操作系统能够随时获取第三方应用程序当前的场景信息,进而基于当前场景进行针对性的系统资源适配。
[0058] 以操作系统为Android系统为例,存储器120中存储的程序和数据如图3所示,存储器120中可存储有Linux内核层220、系统运行库层240、应用框架层260和应用层280。其中,Linux内核层220、系统运行库层240和应用框架层260属于操作系统空间,应用层280属于用户空间。Linux内核层220为终端100的各种硬件提供了底层的驱动,如显示驱动、音频驱动、摄像头驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。系统运行库层240通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL/ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。在系统运行库层240中还提供有安卓运行时库(Android Runtime),它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。应用框架层260提供了构建应用程序时可能用到的各种API,开发者也可以通过使用这些API来构建自己的应用程序,比如活动管理、窗口管理、视图管理、通知管理、内容提供者、包管理、通话管理、资源管理、定位管理。应用层280中运行有至少一个应用程序,这些应用程序可以是操作系统自带的原生应用程序,比如联系人程序、短信程序、时钟程序、相机应用等;也可以是第三方开发者所开发的第三方应用程序,比如游戏应用、即时通信程序、相片美化程序、购物程序等。
[0059] 操作系统与第三方应用程序之间一种可行的通信方式如图4所示,第三方应用程序中内嵌有用于与操作系统进行通信的软件开发工具包(Software Development Kit,SDK)。
[0060] 其中,SDK包含若干经过抽象的应用程序编程接口(Application Programming Interface,API),并由操作系统开发者提供给第三方应用程序开发者,并由第三方应用程序开发者将该SDK内嵌到第三方应用程序中。此类第三方应用程序安装并运行在操作系统后,即可调用SDK提供的API与操作系统进行通信。
[0061] 如图4所示,系统运行库层240可以额外包括接口通信系统242。该接口通信系统242可以视为操作系统中的一个子系统,或视为操作系统内嵌的一个应用程序。接口通信系统242中设置有SDK接口,第三方应用程序即调用内嵌SDK的API与该SDK接口之间通过粘合(Binder)的方式进行数据通信。这样,第三方应用程序的应用场景相关的数据(场景信息)就可以通过SDK传输给操作系统。借助内嵌SDK,操作系统还可以主动向第三方应用程序传输数据,或者,操作系统与第三方应用程序之间可以进行双向数据传输。
[0062] 在另一种可行的通信方式中,如图5所示,第三方应用程序还可以采用套接字(Socket)方式与接口通信系统242的Socket接口建立长连接,第三方应用程序的应用场景相关的数据即可以通过该长连接传输给操作系统。
[0063] 如图4和5所示,接口通信系统242中可设置有不同的策略模块,接收到第三方应用程序发送的数据后,接口通信系统242即采用第三方应用程序对应的策略模块对数据进行分析,得到相应的资源适配优化策略。基于分析得到的资源适配优化策略,接口通信系统242通过控制接口通知Linux内核层220进行系统资源适配优化。其中,该控制接口可以采用Sysfs的方式与Linux内核层220进行通信。
[0064] 可选的,接口通信系统242中不同的策略模块可以对应不同的第三方应用程序(即针对不同的应用程序设置策略模块),或者,不同的策略模块对应不同类型的第三方应用程序(即针对不同类型的应用程序设置策略模块),或者,不同的策略模块对应不同的系统资源(即针对不同系统资源设置策略模块),或者,不同的策略模块对应不同的应用场景(即针对不同的以应用场景设置策略模块),本申请实施例并不对策略模块的具体设置方式进行限定。
[0065] 其中,接口通信系统242还可以通过Binder的方式与应用框架层260进行通信,用于接收应用框架层260发送的前景应用信息,从而基于前景应用信息,仅针对当前前台运行的第三方应用程序进行系统资源优化。
[0066] 以操作系统为IOS系统为例,存储器120中存储的程序和数据如图6所示,IOS系统包括:核心操作系统层320(Core OS layer)、核心服务层340(Core Services layer)、媒体层360(Media layer)、可触摸层380(Cocoa Touch Layer)。核心操作系统层320包括了操作系统内核、驱动程序以及底层程序框架,这些底层程序框架提供更接近硬件的功能,以供位于核心服务层340的程序框架所使用。核心服务层340提供给应用程序所需要的系统服务和/或程序框架,比如基础(Foundation)框架、账户框架、广告框架、数据存储框架、网络连接框架、地理位置框架、运动框架等等。媒体层360为应用程序提供有关视听方面的接口,如图形图像相关的接口、音频技术相关的接口、视频技术相关的接口、音视频传输技术的无线播放(AirPlay)接口等。可触摸层380为应用程序开发提供了各种常用的界面相关的框架,可触摸层380负责用户在终端100上的触摸交互操作。比如本地通知服务、远程推送服务、广告框架、游戏工具框架、消息用户界面接口(User Interface,UI)框架、用户界面UIKit框架、地图框架等等。
[0067] 在图6所示出的框架中,与大部分应用程序有关的框架包括但不限于:核心服务层340中的基础框架和可触摸层380中的UIKit框架。基础框架提供许多基本的对象类和数据类型,为所有应用程序提供最基本的系统服务,和UI无关。而UIKit框架提供的类是基础的UI类库,用于创建基于触摸的用户界面,iOS应用程序可以基于UIKit框架来提供UI,所以它提供了应用程序的基础架构,用于构建用户界面,绘图、处理和用户交互事件,响应手势等等。
[0068] 其中,在IOS系统中实现第三方应用程序与操作系统数据通信的方式以及原理可参考Android系统,本申请在此不再赘述。
[0069] 输入输出装置130可以包括触摸显示屏,该触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端100的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本申请实施例对此不加以限定。
[0070] 除此之外,本领域技术人员可以理解,上述附图所示出的终端100的结构并不构成对终端100的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端100中还包括射频电路、输入单元、传感器、音频电路、无线保真(Wireless Fidelity,WiFi)模块、电源、蓝牙模块等部件,在此不再赘述。
[0071] 请参考图7,其是本申请一个示例性实施例提供的处理组件的配置方法的流程图。该处理组件的配置方法可以应用在上述图1所示的终端中。在图7中,该输入组件的配置方法包括:
[0072] 步骤710,当目标应用执行预定操作时,将公开环境中的密文策略文件传输至TEE。
[0073] 在本申请实施例的一种可能的实现方式中,目标应用可以是内嵌有第一软件开发套件SDK的应用,第一SDK的应用程序接口API用于与第一系统应用的第二SDK进行数据交互,第一系统应用运行在公开环境中,密文策略文件是明文策略文件根据预定算法加密后生成的文件。
[0074] 终端能够在检测到目标应用执行预定操作的场景下,将公开环境中的密文策略文件传输至TEE中。可选地,终端可以通过可信任通信接口将该密文策略文件写入共享内存中,从而令TEE中的用于解密密文策略文件的可信任应用获取该解密密文策略文件。
[0075] 需要说明是,由于可信任通信接口是TEE在编译阶段确定的接口,且能够访问该接口的应用是在编译时指定的。因此,通过该接口向TEE传输密文策略文件既保证了解密流程的顺利执行,也将TEE与不安全的数据相隔离。
[0076] 步骤720,在TEE中根据解密密钥解密密文策略文件,得到明文策略文件,解密密钥是存储在TEE中对应预定算法的密钥。
[0077] 终端在TEE中根据解密密钥解密密文策略文件。在一种可能的实现方式中,终端可以启动TEE中的可信任应用。该可信任应用被启动后,可以读取共享内存中的密文策略文件。同时,该信任应用能够读取存储在TEE中的存储介质中的解密密钥。需要说明的是,该TEE中的存储介质可以是硬件上与公开环境相隔离的存储介质。将解密密钥存储在该TEE中的存储介质上,可以提高解密密钥在软件层面和硬件层面两个层面上的安全性。
[0078] 步骤730,从TEE中获取明文策略文件。
[0079] 在本申请实施例中,终端能够从TEE中获取明文策略文件。
[0080] 在一种可能实现的方式中,终端可以启动第一系统应用。该第一系统应用在将密文策略文件传送至TEE后,监控共享内存。当共享内存中写入明文策略文件后,第一系统应用将调用可信任通信接口。该可信任通信接口被调用后,即建立读取共享内存中的数据的通道。第一系统应用将通过可信任通信接口从共享内存中读取明文策略文件。
[0081] 步骤740,根据明文策略文件配置处理组件,处理组件是与预定操作相关联的硬件组件。
[0082] 在本申请实施例中,终端在获取到明文策略文件后,将根据该明文策略文件配置处理组件。
[0083] 在一种可能的实现方式中,终端在获取到明文策略文件后,还可以根据明文策略文件先判断目标应用是否满足预设条件,当目标应用满足预设条件时,终端根据明文策略文件配置处理组件。可选地,在一种可以实现的方式中,策略文件能够向第一系统应用提供用于配置处理组件的参数。
[0084] 可选地,明文策略文件中可以包括策略条件和策略参数。终端可以判断目标应用是否满足策略条件,然后在目标应用满足策略条件时,根据策略参数配置处理组件。
[0085] 可选地,策略条件可以是完成调用G-sensor、完成调用摄像头、完成调用触摸屏、完成调用麦克风、完成调用陀螺仪、完成调用导航芯片、完成调用温度传感器、完成调用光线传感器和完成调用距离传感器中至少一种。
[0086] 在一种可能的实现方式中,策略条件的作用是检测目标应用执行的行为是否与策略条件中预先存储的条件匹配,在目标应用执行的行为与策略条件中预先存储的条件匹配时对处理组件进行配置。在一种可能实现的方式中,以游戏应用是目标应用,处理组件是G-sensor为例进行说明。第一系统应用将检测游戏应用是否完成调用G-sensor,当游戏应用完成调用G-sensor时,第一系统应用将指示终端读取策略参数中存储的G-sensor采样频率1000Hz,并将该1000Hz配置为G-sensor新的采样频率。具体地,可以参见表一。
[0087] 表一
[0088] 游戏应用状态 策略条件 配置前参数 配置后参数已调用G-sensor 完成调用G-sensor 300Hz 1000Hz
[0089] 在另一种可能的实现方式中,策略条件可以是完成调用触摸屏。第一系统应用检测目标应用是否完成调用触摸屏。当第一系统应用检测到目标应用完成调用触摸屏时,第一系统应用将读取策略参数中存储的触摸屏采样频率1200Hz,并使用该触摸屏采样频率配置触摸屏。具体地,可以参见表二。
[0090] 表二
[0091]目标应用状态 策略条件 配置前采样频率 配置后采样频率
已调用触摸屏 调用触摸屏 500Hz 1200Hz
[0092] 可选地,在一种可能的实现方式中,明文策略文件可以在被可信任通信接口获取后,被终端从公开环境中删除。
[0093] 可选地,在另一种可能的实现方式中,本实施例还能够在执行完成根据明文策略文件配置处理组件的步骤后,删除共享内存中的明文策略文件。或者,作为一种能够替换实现的方式,本实施例还能够在公开环境中将明文策略文件存储在受限访问的数据结构中,该受限访问的数据结构不允许非授权应用或者进程访问,允许授权应用访问,授权应用可以包括第一系统应用。
[0094] 综上所述,本申请实施例提供的处理组件的配置方法,能够在目标应用执行预定操作时,将公开环境中的密文策略文件传输至TEE中,令该密文策略文件在TEE中解密,得到明文策略文件,并从TEE中获取该明文策略文件,根据该明文策略文件配置处理组件,且该处理组件是与预定操作相关联的硬件组件。由于本实施例提供的方案能够在目标应用执行预定操作时将密文策略文件传输至TEE中解密,保护了获得明文策略文件的过程,且能够根据明文策略文件配置实现目标应用的相关功能的处理组件。可见,本申请实施例降低了明文策略文件被窃取的风险,提高了明文策略文件的安全性。
[0095] 在一种可能的实现方式中,在图7提供的实施例的基础上,本实施例还能够在目标应用开启或者关闭输入组件时对密文策略文件进行解密。即,图7中的步骤710能够被步骤711或者步骤712所替换,以实现步骤710所示的功能。详情请参考图8,其是本申请一个示例性实施例提供的一种传输密文策略文件的流程图。该传输密文策略文件的方法可以应用在上述图1所示的终端中。在图8中,该传输密文策略文件的方法包括:
[0096] 步骤711,当目标应用通过第一SDK中的API启动输入组件时,将公开环境中的密文策略文件传输至TEE。
[0097] 在本申请实施例中,目标应用可以调用内嵌在其中的第一SDK中的API启动输入组件。请参见图9,其本申请一个示例性实施例提供的一种目标应用在调用第一SDK中的API启动输入组件时的数据流向示意图。在图9中,第三方应用程序(目标应用)调用内嵌的第一SDK时,该信息将以Binder的方式传输至SDK接口(第一系统应用中的第二SDK)。可见,在步骤711中,第三方应用程序的SDK中的数据流向接口通信系统中的SDK。
[0098] 例如,当目标应用启动摄像头或者麦克风时,目标应用中内嵌的第一SDK的API将该启动消息通过Binder的方式传输至第一系统应用中的第二SDK。此时,第一系统应用确认摄像头或者麦克风已被目标应用调用,将公开环境中的密文策略文件传输至TEE。
[0099] 步骤712,当目标应用通过第一SDK中的API关闭输入组件时,将公开环境中的密文策略文件传输至TEE。
[0100] 与步骤711类似,终端除了能够在目标应用开启输入组件时,将公开环境中的密文策略文件传输至TEE,也可以在目标应用关闭输入组件时,将公开环境中的密文策略文件传输至TEE。
[0101] 例如,当目标应用关闭摄像头或者麦克风时,目标应用中内嵌的第一SDK的API将该关闭消息通过Binder的方式传输至第一系统应用中的第二SDK。此时,第一系统应用确认摄像头或者麦克风已被目标应用释放,将公开环境中的密文策略文件传输至TEE。
[0102] 综上所述,本申请实施例公开的传输密文策略文件的方法,能够在目标应用开启输入组件时,将公开环境中的密文策略文件传输至TEE。当目标应用在开启输入组件时,终端能够及时解密相应的密文策略文件,使得终端能够及时获取解密后的密文策略文件,并配置处理组件,提高了处理组件为目标应用提供对应性能的能力。
[0103] 另外,本申请实施例还能够在目标应用关闭输入组件时,将公开环境中的密文策略文件传输至TEE。当目标应用在关闭输入组件时,终端能够及时解密相应的密文策略文件,使得终端能够及时获取解密后的密文策略文件,使终端在目标应用不再调用输入组件时,及时配置处理组件,调整处理组件的性能,降低终端的能耗。
[0104] 在另一种可能的实现方式中,在图7提供的实施例的基础上,本实施例还能够在目标应用开启或者关闭指定功能时对密文策略文件进行解密。即,图7中的步骤710能够被步骤713或者步骤714所替换,以实现步骤710所示的功能。详情请参考图10,其是本申请一个示例性实施例提供的一种传输密文策略文件的流程图。该传输密文策略文件的方法可以应用在上述图1所示的终端中。在图10中,该传输密文策略文件的方法包括:
[0105] 步骤713,当目标应用通过第一SDK中的API启动指定功能时,将公开环境中的密文策略文件传输至TEE。
[0106] 在本申请实施例中,目标应用可以调用内嵌在其中的第一SDK中的API启动指定功能。请参见图9,其是本申请一个示例性实施例提供的一种目标应用在调用第一SDK中的API启动指定功能时的数据流向示意图。在图9中,第三方应用程序(目标应用)调用内嵌的第一SDK时,该信息将以Binder的方式传输至SDK接口(第一系统应用中的第二SDK)。可见,在步骤713中,第三方应用程序的SDK中的数据流向接口通信系统中的SDK。
[0107] 例如,当目标应用启动语音聊天功能或者文字聊天功能时,目标应用中内嵌的第一SDK的API将该启动消息通过Binder的方式传输至第一系统应用中的第二SDK。此时,第一系统应用确认语音聊天功能或者文字聊天功能已被目标应用启动,将公开环境中的密文策略文件传输至TEE。
[0108] 步骤714,当目标应用通过第一SDK中的API关闭指定功能时,将公开环境中的密文策略文件传输至TEE。
[0109] 与步骤713类似,终端除了能够在目标应用开启指定功能时,将公开环境中的密文策略文件传输至TEE,也可以在目标应用关闭指定功能时,将公开环境中的密文策略文件传输至TEE。
[0110] 例如,当目标应用关闭语音聊天功能或者文字聊天功能时,目标应用中内嵌的第一SDK的API将该关闭消息通过Binder的方式传输至第一系统应用中的第二SDK。此时,第一系统应用确认语音聊天功能或者文字聊天功能已被目标应用释放,将公开环境中的密文策略文件传输至TEE。
[0111] 综上所述,本申请实施例公开的传输密文策略文件的方法,能够在目标应用开启指定功能时,将公开环境中的密文策略文件传输至TEE。当目标应用在开启指定功能时,终端能够及时解密相应的密文策略文件,使得终端能够及时获取解密后的密文策略文件,并配置处理组件,提高了处理组件为目标应用提供对应性能的能力。
[0112] 另外,本申请实施例还能够在目标应用关闭指定功能时,将公开环境中的密文策略文件传输至TEE。当目标应用在关闭指定功能时,终端能够及时解密相应的密文策略文件,使得终端能够及时获取解密后的密文策略文件,使终端在目标应用不再调用指定功能时,及时配置处理组件,调整处理组件的性能,降低终端的能耗。
[0113] 在另一种可能的实现方式中,在图7提供的实施例的基础上,本实施例还能够在目标应用获取场景信息时对密文策略文件进行解密。即,图7中的步骤710能够被步骤715或者步骤716所替换,以实现步骤710所示的功能。详情请参考图11,其是本申请一个示例性实施例提供的一种传输密文策略文件的流程图。该传输密文策略文件的方法可以应用在上述图1所示的终端中。在图11中,该传输密文策略文件的方法包括:
[0114] 步骤715,通过第一系统应用调用第二SDK向所述第一SDK中的API发送场景信息查询请求。
[0115] 在本申请实施例中,为了能够了解目标应用当前的运行状态。终端通过第一系统应用调用其中的第二SDK向第一SDK中的API发送场景信息查询请求。
[0116] 可选地,该发送场景信息查询请求可以是周期性发送的。
[0117] 步骤716,当通过目标应用调用第一SDK中的API向第二SDK发送场景信息时,第一系统应用将公开环境中的密文策略文件传输至TEE。
[0118] 在本申请实施例中,当目标应用接收到场景信息查询请求后,终端将通过目标应用调用第一SDK中的API,向第二SDK发送场景信息。此时,第一系统应用将公开环境中的密文策略文件传输至TEE中。
[0119] 请参见图12,是本申请一个示例性实施例提供的一种第一系统应用获取场景信息时的数据流向示意图。在图12中,接口通信系统中的SDK接口(第一系统应用的第二SDK)发送场景信息查询信息时,该信息将以Binder的方式从接口通信系统中的SDK接口传输至第三方应用程序中的SDK接口(目标应用中的第一SDK)。随后,场景信息将从第三方应用程序中的SDK接口传输至接口通信系统中的SDK接口。可见,在本实施例中,第三方应用程序与操作系统之间的数据传输方向是双向的。
[0120] 综上所述,本实施例提供的传输密文策略文件的方法,通过第一系统应用调用第二SDK向所述第一SDK中的API发送场景信息查询请求,当通过目标应用调用第一SDK中的API向第二SDK发送场景信息时,第一系统应用将公开环境中的密文策略文件传输至TEE,在保证明文策略文件安全的前提下,缩短了获取解密后的密文策略文件的时间,提高了使用明文策略文件配置处理组件的效率。
[0121] 另外,作为一种可能替换的实现方式,服务器可以新建新版本或者新功能的密文策略文件。当服务器新建新版本或者新功能的密文策略文件,服务器可以将该密文策略文件推送至终端中。终端可以在接收到该密文策略文件时,将该密文策略文件传输至TEE,从而开始执行解密流程。
[0122] 在本实现方式中,终端能够在获取到密文策略文件时,立即将其在TEE中解密为明文策略文件,在保证明文策略文件安全性的前提下,最大限度地缩短了第一系统应用获取明文策略文件的时间,提高了使用明文策略文件配置处理组件的效率。
[0123] 下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
[0124] 请参考图13,其是本申请一个示例性实施例提供的处理组件的配置装置的结构框图。该处理组件的配置装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。其中,终端包括公开环境和可信任执行环境TEE,该装置包括:
[0125] 传输模块1310,被配置为当目标应用执行预定操作时,将所述公开环境中的密文策略文件传输至所述TEE,所述目标应用是运行在所述公开环境中的应用,所述密文策略文件是明文策略文件根据预定算法加密后生成的文件;
[0126] 解密模块1320,被配置为在所述TEE中根据解密密钥解密所述密文策略文件,得到所述明文策略文件,所述解密密钥是存储在所述TEE中对应所述预定算法的密钥;
[0127] 获取模块1330,被配置为从所述TEE中获取所述明文策略文件;
[0128] 配置模块1340,被配置为根据所述明文策略文件配置处理组件,所述处理组件是与所述预定操作相关联的硬件组件。
[0129] 在一个可选的实施例中,在装置中运行的所述目标应用中内嵌有第一软件开发套件SDK,所述第一SDK的应用程序接口API用于与第一系统应用的第二SDK进行数据交互,所述预定操作包括:通过所述第一SDK中的API启动输入组件的操作;或,通过所述第一SDK中的API关闭输入组件的操作;其中,所述输入组件用于接收针对所述终端的输入操作。
[0130] 在一个可选的实施例中,在装置中运行的所述目标应用中内嵌有第一软件开发套件SDK,所述第一SDK的应用程序接口API用于与第一系统应用的第二SDK进行数据交互,所述预定操作包括:通过所述第一SDK中的API启动指定功能的操作;或,通过所述第一SDK中的API关闭指定功能的操作;其中,所述指定功能是所述目标应用提供的功能。
[0131] 在一个可选的实施例中,所述配置模块1340,被配置为检测所述目标应用是否满足策略条件,其中,明文策略文件中包括策略条件和策略参数;若所述目标应用满足所述策略条件,则根据所述策略参数配置所述处理组件。
[0132] 在一个可选的实施例中,所述策略条件包括:调用G-sensor、调用摄像头、调用触摸屏、调用麦克风、调用陀螺仪、调用导航芯片、调用温度传感器、调用光线传感器和\或调用距离传感器中至少一种。
[0133] 在一个可选的实施例中,所述预定操作包括:调用所述第一SDK中的API向所述第一系统应用的所述第二SDK发送场景信息的操作;其中,所述场景信息是指示所述目标应用使用所述终端中的硬件组件情况的信息。
[0134] 在一个可选的实施例中,所述预定操作包括启动操作。
[0135] 在一个可选的实施例中,所述传输模块1310,被配置为当目标应用执行预定操作时,调用可信任通信接口,所述可信任通信接口用于访问所述TEE中的共享内存;通过所述可信任通信接口向所述共享内存中写入所述密文策略文件。
[0136] 在一个可选的实施例中,获取模块1330,被配置为通过所述第一系统应用调用可信任通信接口;通过所述可信任通信接口从所述共享内存中读取所述明文策略文件。
[0137] 在一个可选的实施例中,所述装置还包括删除模块,被配置为当所述明文策略文件被所述可信任通信接口获取后,删除所述共享内存中的所述明文策略文件。
[0138] 在一个可选的实施例中,所述删除模块,被配置为在所述配置模块1340根据所述明文策略文件配置处理组件之后,删除所述公开环境中的所述明文策略文件。
[0139] 本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的处理组件的配置方法。
[0140] 本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的处理组件的配置方法。
[0141] 需要说明的是:上述实施例提供的处理组件的配置装置在执行处理组件的配置方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的处理组件的配置装置与处理组件的配置方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0142] 上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0143] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0144] 以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。