CN111782261A - 软件配置方法、装置、电子设备以及存储介质 - Google Patents

软件配置方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN111782261A
CN111782261A CN202010607885.7A CN202010607885A CN111782261A CN 111782261 A CN111782261 A CN 111782261A CN 202010607885 A CN202010607885 A CN 202010607885A CN 111782261 A CN111782261 A CN 111782261A
Authority
CN
China
Prior art keywords
code
software
configuration
information
stub
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
Application number
CN202010607885.7A
Other languages
English (en)
Other versions
CN111782261B (zh
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202010607885.7A priority Critical patent/CN111782261B/zh
Publication of CN111782261A publication Critical patent/CN111782261A/zh
Application granted granted Critical
Publication of CN111782261B publication Critical patent/CN111782261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了软件配置方法、装置、电子设备以及存储介质,涉及软件开发技术领域。具体实现方案为:根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置;根据所述权限信息,生成第一配置代码,所述第一配置代码为用于配置所述软件获取所述权限信息的行为满足预设要求的代码;将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码。通过在动态申请位置插入第一配置代码,可使得软件获取权限信息的行为满足预设要求,避免软件侵犯用户隐私,降低软件违规的风险。

Description

软件配置方法、装置、电子设备以及存储介质
技术领域
本申请涉及计算机技术领域中的软件开发技术,尤其涉及一种软件配置方法、装置、电子设备以及存储介质。
背景技术
现有软件开发,由于软件功能需求,需要获取用户隐私信息,例如,联系人信息、图片获取权限等等。这种行为可能会导致违规,轻者需要软件下架整改,重者软件开发相关人员可能要受到法律严惩。由此可知,在软件开发时,软件的隐私是否相关要求尤为重要。
发明内容
本公开提供了一种软件配置方法、装置、电子设备以及存储介质。
根据本公开的第一方面,提供了一种软件配置方法,包括:
根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置;
根据所述权限信息,生成第一配置代码,所述第一配置代码为用于配置所述软件获取所述权限信息的行为满足预设要求的代码;
将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码。
根据本公开的第二方面,提供了一种软件配置装置,包括:
第一获取模块,用于根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置;
第一生成模块,用于根据所述权限信息,生成第一配置代码,所述第一配置代码为用于配置所述软件获取所述权限信息的行为满足预设要求的代码;
第二获取模块,用于将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码。
根据本公开的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面任一项所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面任一项所述的方法。
本申请的技术解决了软件侵犯用户隐私,存在违规的风险的问题,通过在动态申请位置插入第一配置代码,可使得软件获取权限信息的行为满足预设要求,避免软件侵犯用户隐私,降低软件违规的风险。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的软件配置方法的流程图;
图2是本申请实施例提供的软件配置方法的另一流程图;
图3是本申请实施例提供的采用软件配置方法的软件在运行时动态申请权限的流程图;
图4是本申请实施例提供的软件配置装置的结构图;
图5是用来实现本申请实施例的软件配置方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
参见图1,图1是本申请实施例提供的软件配置方法的流程图,如图1所示,本实施例提供一种软件配置方法,应用于电子设备,包括以下步骤:
步骤101、根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置。
具体的,本实施例中的方法可应用在软件源码完成之后,对源码进行编译的时期。待配置的软件的代码可理解为待配置的软件(以下简称软件)的源码。对软件的代码进行扫描和分析,获取软件运行中所需要获取的权限信息以及权限信息在代码中的动态申请位置。此处的权限信息可理解为软件要获取的用户的隐私信息的权限,用户的隐私信息是指安装该软件的设备的隐私信息,包括但不限于联系人信息、图片信息、设备信息等等。
软件所需的权限信息包括软件使用的第三方SDK需要的权限信息,以及通过软件代码直接获取的权限信息(即不是通过第三方SDK获取的权限信息)。
步骤102、根据所述权限信息,生成第一配置代码,所述第一配置代码为用于配置所述软件获取所述权限信息的行为满足预设要求的代码。
预设要求可理解为法律法规要求,例如,告知用户软件的服务协议和隐私政策概要、告知用户需要获取用户的什么权限,以及告知用户获取的权限的用途等等。第一配置代码用于配置软件获取权限信息的行为满足预设要求。
步骤103、将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码。
将第一配置代码插入代码的动态申请位置,获得软件的目标代码。这样,若目标代码在执行时,运行到动态申请位置处,则会执行第一配置代码,使得软件获取权限信息的行为满足预设要求,避免软件侵犯用户隐私,降低软件违规的风险。
本实施例中,根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置;根据所述权限信息,生成第一配置代码,所述第一配置代码为用于配置所述软件获取所述权限信息的行为满足预设要求的代码;将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码。通过在动态申请位置插入第一配置代码,可使得软件获取权限信息的行为满足预设要求,避免软件侵犯用户隐私,降低软件违规的风险。
在本申请一个实施例中,所述根据所述权限信息,生成第一配置代码,包括:
显示用于对所述权限信息进行配置的第一配置界面;
接收所述第一配置界面中针对所述权限信息的配置参数的第一输入操作;
基于所述第一输入操作输入的信息,生成第一配置代码。
为便于软件开发人员根据权限信息进行配置,可显示用于对所述权限信息进行配置的第一配置界面,第一配置界面用于为软件开发人员进行配置引导,通过第一配置界面可进行多种配置参数的设置,包括:权限用途配置(例如获取什么权限,权限是为了实现什么功能)、隐私政策配置、分发地域配置(例如国内权限配置,国外权限配置等)、所属行业配置(即基于不同的软件所属领域,对权限进行不同配置)中的一项或多项等。
另外,还可以通过第一配置界面对软件使用的第三方SDK需要的权限信息进行配置,例如,为第三方SDK选择隐私政策模板信息,使得可基于隐私政策模板信息来生成第一配置代码。不同的权限信息,对应的配置参数可不同。
第一配置界面可以是基于软件开发人员的第一预设操作显示,也可以是电子设备在对软件的代码扫描完成,获得权限信息之后显示,在此不做限定。
电子设备基于第一输入操作输入的信息,即基于软件开发人员对所述权限信息的配置参数的设置,生成第一配置代码。
本实施例中,根据所述权限信息,生成第一配置代码,包括:显示用于对所述权限信息进行配置的第一配置界面;接收所述第一配置界面中针对所述权限信息的配置参数的第一输入操作;基于所述第一输入操作输入的信息,生成第一配置代码。通过第一配置界面对权限信息的配置参数进行配置,可引导软件开发人员对权限信息进行合规配置,避免软件侵犯用户隐私,降低软件违规的风险。另外,通过第一配置界面引导软件开发人员进行合规配置,还能降低软件开发人员的工作量,提高开发效率。
在本申请一个实施例中,所述将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码,包括:
显示用于对所述软件所需的基础权限信息进行配置的第二配置界面;
接收所述第二配置界面中针对所述基础权限信息的配置参数的第二输入操作;
基于所述第二输入操作输入的信息,生成第二配置代码;
将所述第一配置代码和所述第二配置代码插入所述软件的代码中,获得所述软件的所述目标代码,其中,所述第一配置代码插入所述动态申请位置。
除了需要对动态申请的权限信息的合规性进行配置之外,还需要进行隐私功能设计,设置基础权限信息,例如,账号注销、个性化推送开关、隐私政策入口、用户画像标签、授权撤销、应用权限说明、应用权限设置等。基础权限信息不是软件在运行过程需要获取的权限信息,而是软件需要提供给用户的功能,以便用户可根据实际需求随时查看或更改对软件的授权情况。
软件开发人员可基于第二配置界面对基础权限信息的配置参数进行设置,不同的基础权限信息的配置参数可不同。
第二配置界面可以是基于软件开发人员的第二预设操作显示,也可以是电子设备在获得第一配置代码后自动显示,在此不做限定。
本实施例中,通过第二配置界面对基础权限信息的配置参数进行配置,可引导软件开发人员对基础权限信息进行合规配置,避免软件侵犯用户隐私,降低软件违规的风险,另外,目标代码基于第一配置代码和第二配置代码获得,使得软件的违规风险防控更加全面,进一步降低软件违规的风险。另外,通过第二配置界面引导软件开发人员对基础权限信息进行配置,还能降低软件开发人员的工作量,提高开发效率。
在本申请一个实施例中,在所述基于所述第二输入操作输入的信息,生成第二配置代码之后,所述将所述第一配置代码和所述第二配置代码插入所述软件的代码中,获得所述软件的所述目标代码之前,还包括:
生成隐私政策信息;
基于所述隐私政策信息,生成第一代码;
将所述第一代码添加至所述第一配置代码中。
在第一配置代码和第二配置代码生成之后,说明对软件的配置已经完成,生成隐私政策信息。隐私政策信息可包括软件需要向用户显示的隐私协议信息和隐私收集使用说明信息等。基于隐私政策信息生成第一代码,第一代码可理解为用于显示隐私政策信息的代码,将第一代码添加至第一配置代码中,以软件动态申请用户权限信息时,可向用户展示隐私政策信息。
隐私政策信息的生成也表明对软件的各项权限信息配置完成,软件开发人员可通过是否生成隐私政策信息来确定对软件的各项权限信息配置是否完成,作为检查对软件的各项权限信息配置是否完备的手段,避免漏掉部分权限信息的配置,提高软件开发效率的同时,降低软件违规的风险。
本实施例中,在生成第一配置信息和第二配置信息之后,生成隐私政策信息;基于所述隐私政策信息,生成第一代码;将所述第一代码添加至所述第一配置代码中,可以在软件动态申请用户权限信息时,向用户展示隐私政策信息,以告知用户隐私政策内容,降低软件违规风险,通过动态生成隐私政策信息,还能避免漏掉部分权限信息的配置,在提高软件开发效率的同时,进一步降低软件违规的风险。
在本申请一个实施例中,所述根据所述权限信息,生成第一配置代码,包括:
若所述权限信息为第三方软件开发包SDK所需要获取的权限信息,则根据所述第三方SDK的隐私政策模板信息,生成所述第一配置代码,其中,所述隐私政策模板信息包括隐私协议信息和隐私收集使用说明信息。
若软件代码使用第三方SDK,第三方SDK也可能会需要获取用户的权限信息,此时,可基于第三方SDK的隐私政策模板信息来生成第一配置代码,隐私政策模板信息包括隐私协议信息和隐私收集使用说明信息。隐私政策模板信息可以由软件开发人员配置,也可以由电子设备自动从多个隐私政策模板信息中获取与第三方SDK匹配的信息,并采用第三方SDK对应的隐私政策模板信息来确定第一配置代码,降低人工成本,提高开发效率。
本实施例对软件的代码使用到的第三方SDK所需要获取的权限信息进行配置,根据第三方SDK的隐私政策模板信息生成第一配置代码,降低软件中的第三方SDK违规获取用户隐私的风险,使得软件的违规风险防控更加全面,进一步降低软件违规的风险。
在本申请一个实施例中,所述第一配置代码包括用于显示隐私政策信息的第一代码、用于显示权限说明的第二代码,以及用于显示权限授权对话框的第三代码;
在所述根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置之后,所述根据所述权限信息,生成第一配置代码之前,还包括:
在所述动态申请位置处,生成桩代码控制流,所述桩代码控制流包括第一桩代码、第二桩代码以及第三桩代码;
设置所述第一桩代码、所述第二桩代码以及所述第三桩代码之间的逻辑执行顺序;
所述将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码,包括:
将所述第一代码替换所述第一桩代码、将所述第二代码替换所述第二桩代码,以及将所述第三代码替换所述第三桩代码,获得所述目标代码。
第一桩代码、第二桩代码和第三桩代码为占位的代码,代码是待编辑状态,且这些桩代码之间没有逻辑执行顺序。根据预设要求,对桩代码控制流进行校正,即设置所述第一桩代码、所述第二桩代码以及所述第三桩代码之间的逻辑执行顺序。预设要求例如:首先需判断是否有显示隐私政策信息,若有,则判断是否有告知用户需要获取的隐私信息以及获取的隐私信息的用途,若有,则显示权限授权对话框,供用户选择是否授权软件获取隐私信息。第一桩代码、第二桩代码和第三桩代码各自的代码执行优先级依次降低,即第一桩代码处的代码先执行,第三桩代码处的代码最后执行。
将软件的代码中的第一桩代码采用第一代码替换,第二桩代码采用第二代码替换,第三桩代码采用第三代码替换,获得目标代码。
本实施例中,通过设置第一代码、第二代码和第三代码的逻辑执行顺序来使得第一配置代码符合预设要求,从而使得软件获取权限信息的行为满足预设要求,避免软件侵犯用户隐私,降低软件违规的风险。
本申请中的方法,可以让软件开发人员在研发阶段,仅需简单配置和少许研发即可使得软件满足合规要求,方便快捷,节省开发成本,同时,避免软件侵犯用户隐私,降低软件违规的风险。以下对本申请提供的软件配置方法进行如下举例说明。
如图2所示,对软件的源码进行编译,并进行源码分析,获取权限列表、SDK列表、权限动态申请位置,其中,权限列表可包括软件所需要申请的一个或多个权限信息,SDK列表包括软件调用的一个或多个第三方SDK的信息,第三方SDK可能需要申请权限信息,权限动态申请位置即需要申请权限信息的位置。
构建控制流:根据扫描结果,生成桩代码(Stub Code,即占位的代码,桩代码给出的实现是待编辑的)控制流。
控制流合规校正:根据合规规则(可理解为预设要求)对控制流进行校正,即设置桩代码控制流的逻辑执行顺序。
合规配置引导:为软件开发人员提供配置引导,包括权限用途配置、隐私政策配置、分发地域配置、所属行业配置等等,根据第三方SDK的隐私政策模板信息生成应用隐私政策、第三方SDK隐私收集使用说明等。
除上述设置之外,还进行隐私功能设计,即隐私设置中心回调:包括账号注销、个性化推送开关、隐私政策入口、用户画像标签、授权撤销、应用权限说明、应用权限设置等。
上述设置完成之后,进行合规校验,即判断各项配置是否已经完成,若完成,则生成隐私政策信息,并生成包含运行时合规插件的安装包(即Apk),若未完成,则回到合规配置引导,引导软件开发人员继续进行配置。
在软件开发的编译阶段设置桩代码控制流的逻辑执行顺序,在软件的运行阶段,可依照桩代码控制流的逻辑执行顺序执行桩代码处的代码。例如,如图3所示,软件运行时,当应用(即软件)需要获取用户隐私信息并调用动态申请权限时,会首先判断是否已完成隐私合规校验(即判断用户是否已经授权),若已完成则会调用动态申请权限来获取用户隐私;若未完成,则判断用户是否已同意隐私协议,若不同意,则显示隐私协议;若同意,则判断用户是否已同意权限使用说明;
在显示隐私协议之后,判断用户是否同意隐私协议,若不同意,则退出应用,若同意,则判断用户是否已同意权限使用说明;
若用户同意权限使用说明,则调用动态申请权限;若用户不同意权限使用说明,则显示权限说明,并判断用户是否同意权限说明,若同意,则调用动态申请权限;若不同意权限说明,则终止动态申请权限。
参见图4,图4是本申请实施例提供的软件配置装置的结构图,如图4所示,本实施例提供一种软件配置装置400,包括:
第一获取模块401,用于根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置;
第一生成模块402,用于根据所述权限信息,生成第一配置代码,所述第一配置代码为用于配置所述软件获取所述权限信息的行为满足预设要求的代码;
第二获取模块403,用于将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码。
进一步的,所述第一生成模块402,包括:
第一显示子模块,用于显示用于对所述权限信息进行配置的第一配置界面;
第一接收子模块,用于接收所述第一配置界面中针对所述权限信息的配置参数的第一输入操作;
第一生成子模块,用于基于所述第一输入操作输入的信息,生成第一配置代码。
进一步的,所述第二获取模块403,包括:
第二显示子模块,用于显示用于对所述软件所需的基础权限信息进行配置的第二配置界面;
第二接收子模块,用于接收所述第二配置界面中针对所述基础权限信息的配置参数的第二输入操作;
第二生成子模块,用于基于所述第二输入操作输入的信息,生成第二配置代码;
获取子模块,用于将所述第一配置代码和所述第二配置代码插入所述软件的代码中,获得所述软件的所述目标代码,其中,所述第一配置代码插入所述动态申请位置。
进一步的,软件配置装置400还包括:
第三生成子模块,用于生成隐私政策信息;
第四生成子模块,用于基于所述隐私政策信息,生成第一代码;
添加子模块,用于将所述第一代码添加至所述第一配置代码中。
进一步的,所述第一生成模块402,用于:
若所述权限信息为第三方软件开发包SDK所需要获取的权限信息,则根据所述第三方SDK的隐私政策模板信息,生成所述第一配置代码,其中,所述隐私政策模板信息包括隐私协议信息和隐私收集使用说明信息。
进一步的,所述第一配置代码包括用于显示隐私政策信息的第一代码、用于显示权限说明的第二代码,以及用于显示权限授权对话框的第三代码;
所述软件配置装置400,还包括:
第二生成模块,用于在所述动态申请位置处,生成桩代码控制流,所述桩代码控制流包括第一桩代码、第二桩代码以及第三桩代码;
设置模块,用于设置所述第一桩代码、所述第二桩代码以及所述第三桩代码之间的逻辑执行顺序;
所述第二获取模块,用于:
将所述第一代码替换所述第一桩代码、将所述第二代码替换所述第二桩代码,以及将所述第三代码替换所述第三桩代码,获得所述目标代码。
软件配置装置400能够实现图1所示的方法实施例中电子设备实现的各个过程,为避免重复,这里不再赘述。
本申请实施例的软件配置装置400,根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置;根据所述权限信息,生成第一配置代码,所述第一配置代码为用于配置所述软件获取所述权限信息的行为满足预设要求的代码;将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码。通过在动态申请位置插入第一配置代码,可使得软件获取权限信息的行为满足预设要求,避免软件侵犯用户隐私,降低软件违规的风险。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图5所示,是根据本申请实施例的软件配置的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的软件配置的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的软件配置的方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的软件配置的方法对应的程序指令/模块(例如,附图4所示的第一获取模块401、第一生成模块402和第二获取模块403)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的软件配置的方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据软件配置的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至软件配置的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
软件配置的方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与软件配置的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置;根据所述权限信息,生成第一配置代码,所述第一配置代码为用于配置所述软件获取所述权限信息的行为满足预设要求的代码;将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码。通过在动态申请位置插入第一配置代码,可使得软件获取权限信息的行为满足预设要求,避免软件侵犯用户隐私,降低软件违规的风险。
根据所述权限信息,生成第一配置代码,包括:显示用于对所述权限信息进行配置的第一配置界面;接收所述第一配置界面中针对所述权限信息的配置参数的第一输入操作;基于所述第一输入操作输入的信息,生成第一配置代码。通过第一配置界面对权限信息的配置参数进行配置,可引导软件开发人员对权限信息进行合规配置,避免软件侵犯用户隐私,降低软件违规的风险。另外,通过第一配置界面引导软件开发人员进行合规配置,还能降低软件开发人员的工作量,提高开发效率。
通过第二配置界面对基础权限信息的配置参数进行配置,可引导软件开发人员对基础权限信息进行合规配置,避免软件侵犯用户隐私,降低软件违规的风险,另外,目标代码基于第一配置代码和第二配置代码获得,使得软件的违规风险防控更加全面,进一步降低软件违规的风险。另外,通过第二配置界面引导软件开发人员对基础权限信息进行配置,还能降低软件开发人员的工作量,提高开发效率。
在生成第一配置信息和第二配置信息之后,生成隐私政策信息;基于所述隐私政策信息,生成第一代码;将所述第一代码添加至所述第一配置代码中,可以在软件动态申请用户权限信息时,向用户展示隐私政策信息,以告知用户隐私政策内容,降低软件违规风险,通过动态生成隐私政策信息,还能避免漏掉部分权限信息的配置,在提高软件开发效率的同时,进一步降低软件违规的风险。
对软件的代码使用到的第三方SDK所需要获取的权限信息进行配置,根据第三方SDK的隐私政策模板信息生成第一配置代码,降低软件中的第三方SDK违规获取用户隐私的风险,使得软件的违规风险防控更加全面,进一步降低软件违规的风险。
通过设置第一代码、第二代码和第三代码的逻辑执行顺序来使得第一配置代码符合预设要求,从而使得软件获取权限信息的行为满足预设要求,避免软件侵犯用户隐私,降低软件违规的风险。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

Claims (14)

1.一种软件配置方法,包括:
根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置;
根据所述权限信息,生成第一配置代码,所述第一配置代码为用于配置所述软件获取所述权限信息的行为满足预设要求的代码;
将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码。
2.根据权利要求1所述的方法,其中,所述根据所述权限信息,生成第一配置代码,包括:
显示用于对所述权限信息进行配置的第一配置界面;
接收所述第一配置界面中针对所述权限信息的配置参数的第一输入操作;
基于所述第一输入操作输入的信息,生成第一配置代码。
3.根据权利要求1所述的方法,其中,所述将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码,包括:
显示用于对所述软件所需的基础权限信息进行配置的第二配置界面;
接收所述第二配置界面中针对所述基础权限信息的配置参数的第二输入操作;
基于所述第二输入操作输入的信息,生成第二配置代码;
将所述第一配置代码和所述第二配置代码插入所述软件的代码中,获得所述软件的所述目标代码,其中,所述第一配置代码插入所述动态申请位置。
4.根据权利要求3所述的方法,其中,在所述基于所述第二输入操作输入的信息,生成第二配置代码之后,所述将所述第一配置代码和所述第二配置代码插入所述软件的代码中,获得所述软件的所述目标代码之前,还包括:
生成隐私政策信息;
基于所述隐私政策信息,生成第一代码;
将所述第一代码添加至所述第一配置代码中。
5.根据权利要求1所述的方法,其中,所述根据所述权限信息,生成第一配置代码,包括:
若所述权限信息为第三方软件开发包SDK所需要获取的权限信息,则根据第三方SDK的隐私政策模板信息,生成所述第一配置代码,其中,所述隐私政策模板信息包括隐私协议信息和隐私收集使用说明信息。
6.根据权利要求1所述的方法,其中,所述第一配置代码包括用于显示隐私政策信息的第一代码、用于显示权限说明的第二代码,以及用于显示权限授权对话框的第三代码;
在所述根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置之后,所述根据所述权限信息,生成第一配置代码之前,还包括:
在所述动态申请位置处,生成桩代码控制流,所述桩代码控制流包括第一桩代码、第二桩代码以及第三桩代码;
设置所述第一桩代码、所述第二桩代码以及所述第三桩代码之间的逻辑执行顺序;
所述将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码,包括:
将所述第一代码替换所述第一桩代码、将所述第二代码替换所述第二桩代码,以及将所述第三代码替换所述第三桩代码,获得所述目标代码。
7.一种软件配置装置,包括:
第一获取模块,用于根据待配置的软件的代码,获取所述软件所需的权限信息、以及所述权限信息在所述代码中的动态申请位置;
第一生成模块,用于根据所述权限信息,生成第一配置代码,所述第一配置代码为用于配置所述软件获取所述权限信息的行为满足预设要求的代码;
第二获取模块,用于将所述第一配置代码插入所述动态申请位置,获得所述软件的目标代码。
8.根据权利要求7所述的装置,其中,所述第一生成模块,包括:
第一显示子模块,用于显示用于对所述权限信息进行配置的第一配置界面;
第一接收子模块,用于接收所述第一配置界面中针对所述权限信息的配置参数的第一输入操作;
第一生成子模块,用于基于所述第一输入操作输入的信息,生成第一配置代码。
9.根据权利要求7所述的装置,其中,所述第二获取模块,包括:
第二显示子模块,用于显示用于对所述软件所需的基础权限信息进行配置的第二配置界面;
第二接收子模块,用于接收所述第二配置界面中针对所述基础权限信息的配置参数的第二输入操作;
第二生成子模块,用于基于所述第二输入操作输入的信息,生成第二配置代码;
获取子模块,用于将所述第一配置代码和所述第二配置代码插入所述软件的代码中,获得所述软件的所述目标代码,其中,所述第一配置代码插入所述动态申请位置。
10.根据权利要求9所述的装置,其中,还包括:
第三生成子模块,用于生成隐私政策信息;
第四生成子模块,用于基于所述隐私政策信息,生成第一代码;
添加子模块,用于将所述第一代码添加至所述第一配置代码中。
11.根据权利要求7所述的装置,其中,所述第一生成模块,用于:
若所述权限信息为第三方软件开发包SDK所需要获取的权限信息,则根据第三方SDK的隐私政策模板信息,生成所述第一配置代码,其中,所述隐私政策模板信息包括隐私协议信息和隐私收集使用说明信息。
12.根据权利要求7所述的装置,其中,所述第一配置代码包括用于显示隐私政策信息的第一代码、用于显示权限说明的第二代码,以及用于显示权限授权对话框的第三代码;
所述装置还包括:
第二生成模块,用于在所述动态申请位置处,生成桩代码控制流,所述桩代码控制流包括第一桩代码、第二桩代码以及第三桩代码;
设置模块,用于设置所述第一桩代码、所述第二桩代码以及所述第三桩代码之间的逻辑执行顺序;
所述第二获取模块,用于:
将所述第一代码替换所述第一桩代码、将所述第二代码替换所述第二桩代码,以及将所述第三代码替换所述第三桩代码,获得所述目标代码。
13.一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
CN202010607885.7A 2020-06-29 2020-06-29 软件配置方法、装置、电子设备以及存储介质 Active CN111782261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010607885.7A CN111782261B (zh) 2020-06-29 2020-06-29 软件配置方法、装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010607885.7A CN111782261B (zh) 2020-06-29 2020-06-29 软件配置方法、装置、电子设备以及存储介质

Publications (2)

Publication Number Publication Date
CN111782261A true CN111782261A (zh) 2020-10-16
CN111782261B CN111782261B (zh) 2024-05-28

Family

ID=72761616

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010607885.7A Active CN111782261B (zh) 2020-06-29 2020-06-29 软件配置方法、装置、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN111782261B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254923A (zh) * 2021-06-25 2021-08-13 南京网眼信息技术有限公司 根据apk包生成隐私政策文本的方法和系统
CN113849852A (zh) * 2021-08-27 2021-12-28 杭州逗酷软件科技有限公司 隐私权限检测方法、装置、电子设备以及存储介质
CN114785847A (zh) * 2022-03-09 2022-07-22 中车唐山机车车辆有限公司 网络控制软件开发配置方法、终端及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227802A (ja) * 2005-02-16 2006-08-31 Nippon Telegr & Teleph Corp <Ntt> アプリケーションサービス提供システム、サービス管理装置、ホームゲートウェイおよびアクセス制御方法
CN105095087A (zh) * 2015-08-31 2015-11-25 武汉启明联创信息科技有限公司 一种基于权限操作的软件测试系统和方法
KR20170035507A (ko) * 2015-09-23 2017-03-31 한국전자통신연구원 확장 코드를 이용한 어플리케이션 분석 장치 및 방법
CN110197052A (zh) * 2019-05-31 2019-09-03 深圳前海微众银行股份有限公司 基于安卓平台的权限申请方法、装置、设备及存储介质
CN110286897A (zh) * 2019-05-22 2019-09-27 深圳壹账通智能科技有限公司 Api可视化动态配置方法、装置、设备以及存储介质
CN110457891A (zh) * 2019-07-22 2019-11-15 安徽智恒信科技股份有限公司 一种权限配置界面显示方法、装置、终端以及存储介质
US20200014727A1 (en) * 2016-06-10 2020-01-09 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
CN110874216A (zh) * 2018-08-31 2020-03-10 广州虎牙信息科技有限公司 一种完备代码生成方法、装置、设备和存储介质
CN111124444A (zh) * 2018-11-01 2020-05-08 百度在线网络技术(北京)有限公司 代码注入的方法及其装置、计算机程序产品、存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006227802A (ja) * 2005-02-16 2006-08-31 Nippon Telegr & Teleph Corp <Ntt> アプリケーションサービス提供システム、サービス管理装置、ホームゲートウェイおよびアクセス制御方法
CN105095087A (zh) * 2015-08-31 2015-11-25 武汉启明联创信息科技有限公司 一种基于权限操作的软件测试系统和方法
KR20170035507A (ko) * 2015-09-23 2017-03-31 한국전자통신연구원 확장 코드를 이용한 어플리케이션 분석 장치 및 방법
US20200014727A1 (en) * 2016-06-10 2020-01-09 OneTrust, LLC Data processing systems and methods for performing privacy assessments and monitoring of new versions of computer code for privacy compliance
CN110874216A (zh) * 2018-08-31 2020-03-10 广州虎牙信息科技有限公司 一种完备代码生成方法、装置、设备和存储介质
CN111124444A (zh) * 2018-11-01 2020-05-08 百度在线网络技术(北京)有限公司 代码注入的方法及其装置、计算机程序产品、存储介质
CN110286897A (zh) * 2019-05-22 2019-09-27 深圳壹账通智能科技有限公司 Api可视化动态配置方法、装置、设备以及存储介质
CN110197052A (zh) * 2019-05-31 2019-09-03 深圳前海微众银行股份有限公司 基于安卓平台的权限申请方法、装置、设备及存储介质
CN110457891A (zh) * 2019-07-22 2019-11-15 安徽智恒信科技股份有限公司 一种权限配置界面显示方法、装置、终端以及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113254923A (zh) * 2021-06-25 2021-08-13 南京网眼信息技术有限公司 根据apk包生成隐私政策文本的方法和系统
CN113254923B (zh) * 2021-06-25 2021-10-26 南京网眼信息技术有限公司 根据apk包生成隐私政策文本的方法和系统
CN113849852A (zh) * 2021-08-27 2021-12-28 杭州逗酷软件科技有限公司 隐私权限检测方法、装置、电子设备以及存储介质
CN114785847A (zh) * 2022-03-09 2022-07-22 中车唐山机车车辆有限公司 网络控制软件开发配置方法、终端及存储介质
CN114785847B (zh) * 2022-03-09 2024-01-12 中车唐山机车车辆有限公司 网络控制软件开发配置方法、终端及存储介质

Also Published As

Publication number Publication date
CN111782261B (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
CN111782261A (zh) 软件配置方法、装置、电子设备以及存储介质
US10579346B2 (en) Mobile accessibility evaluation from application binary
US10169188B2 (en) Runtime evaluation of user interfaces for accessibility compliance
US11403196B2 (en) Widget provisioning of user experience analytics and user interface / application management
US8922579B2 (en) Deterministic visual indication of user data context
EP3945415B1 (en) Method and apparatus for compilation optimization of hosted app, electronic device and readable storage medium
CN111881387B (zh) 用于小程序的数据处理方法、装置、设备和介质
CN112527252A (zh) 小程序管理方法及装置、小程序平台、电子设备、介质
KR20210110779A (ko) 미니프로그램 능력을 제공하는 방법, 장치, 전자 기기 및 저장 매체
CN112000880B (zh) 推送消息的处理方法、装置、电子设备及可读存储介质
CN112579096B (zh) 小程序启动文件的编译、加载方法、装置、设备和介质
CN114661274A (zh) 用于生成智能合约的方法和装置
CN111191166B (zh) 一种业务页面展示的方法、装置和电子设备
JP2013235508A (ja) オブジェクト指向プログラム生成装置、その方法、プログラム
KR20210110516A (ko) 소스채널 결정방법, 장치, 기기 및 컴퓨터 기록매체
CN111522599A (zh) 用于发送信息的方法和装置
CN111611582B (zh) 用于识别页面劫持行为的方法和装置
CN111770170B (zh) 请求处理方法、装置、设备和计算机存储介质
CN112118611B (zh) 连接无线热点的方法和装置
CN114996169B (zh) 设备诊断方法、装置、电子设备及存储介质
CN114185799A (zh) 创建虚拟对象的数据处理方法和装置
CN111274055A (zh) 一种区块链的消息处理方法、装置、设备和介质
US20190310879A1 (en) Systems and methods for automatically managing scripts for execution in distributed computing environments
CN113448619A (zh) 跨平台程序的实现方法、装置、计算机设备及存储介质
CN112379912A (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