一种只读属性修改方法、装置与流程

文档序号:12122841阅读:286来源:国知局
一种只读属性修改方法、装置与流程

本发明实施例属于信息技术领域,涉及一种只读属性修改方法、装置。



背景技术:

Android系统中提供了一系列的属性,类似于Windows系统中的注册表,这些属性用于记录Android系统和Android应用的配置,或者用于不同模块间的信息交换,这些属性可分为两类:一类为只读属性,只读属性以ro开头作为标识,在Android系统启动时,只读属性一旦初始化生成之后则不可以进行修改;另一类为可读写属性,可读写属性可以在运行中的代码及Shell环境中进行修改以及进行创建。

发明人在实现本发明的过程中发现,现有技术至少存在这样的问题:当需要对只读属性进行修改时,需要修改大量的相关的代码,导致工作量加大,例如在Android系统中属性ro.sf.lcd_density用于控制屏幕显示的像素密度,根据开头标识可知ro.sf.lcd_density是只读属性,当在需要支持多个像素密度的系统中时,意味着需要修改属性ro.sf.lcd_density,否则就需要弃用属性而改用可读写的属性,比如改为属性stv.sf.lcd_density,这需要修改大量的相关代码,以将代码中所有用到属性ro.sf.lcd_density的地方全部更改改为属性stv.sf.lcd_density,导致产生大量的工作量。



技术实现要素:

为了解决上述问题,本发明实施例提供一种只读属性修改方法、装置,以解决现有对只读属性进行修改时,修改工作量大、修改不方便的问题。

第一方面,本发明实施例提供一种只读属性修改方法,应用于终端设备,所述方法具体包括:

检测是否存在辅助属性;

当存在所述辅助属性时,根据所述辅助属性的属性值初始化目标属性;否则根据所述目标属性原始的属性值进行初始化。

作为本发明实施例的可选方案,所述方法还包括创建所述辅助属性,具体包括创建所述辅助属性的属性名称和属性值,所述辅助属性的属性名称与所述目标属性的属性名称相关联。

作为本发明实施例的可选方案,所述方法还包括修改所述辅助属性的属性值,修改后重启所述终端设备,根据修改后的属性值初始化所述目标属性。

作为本发明实施例的可选方案,当存在所述辅助属性时,比较所述目标属性与所述辅助属性的属性值,如果所述属性值不相同,根据所述辅助属性的属性值初始化所述目标属性;否则根据所述目标属性原始的属性值进行初始化。

作为本发明实施例的可选方案,在根据所述辅助属性的属性值初始化所述目标属性前还包括授权验证。

第二方面,本发明实施例提供一种只读属性修改装置,所述装置包括:

检测模块,用于检测是否存在辅助属性;

初始化模块,用于当存在所述辅助属性时,根据所述辅助属性的属性值初始化目标属性;否则根据所述目标属性原始的属性值进行初始化。

作为本发明实施例的可选方案,所述装置还包括属性创建模块,用于创建所述辅助属性,具体包括创建所述辅助属性的属性名称和属性值,所述辅助属性的属性名称与所述目标属性的属性名称相关联。

作为本发明实施例的可选方案,所述装置还包括配置模块,用于修改所述辅助属性的属性值,修改后重启所述终端设备,以使所述初始化模块根据修改后的属性值初始化所述目标属性。

作为本发明实施例的可选方案,所述装置还包括比较模块,用于当存在所述辅助属性时,比较所述目标属性与所述辅助属性的属性值,如果所述属性值不相同,所述初始化模块根据所述辅助属性的属性值初始化所述目标属性;否则所述初始化模块根据所述目标属性原始的属性值进行初始化。

作为本发明实施例的可选方案,所述装置还包括权限验证模块,用于在所述初始化模块根据所述辅助属性的属性值初始化所述目标属性前进行授权验证。

通过本发明实施例提供的只读属性修改方法、装置,具体通过在初始化过程中,利用辅助属性的属性值对目标属性进行初始化处理,这样可以在终端设备的整个系统中只需初始化一次目标属性,即可达到修改只读属性的目的,而不需要后续的修改。

附图说明

为了更清楚地说明本发明或现有技术中的方案,下面将对实施例或现有技术描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一中所提供的只读属性修改方法的流程图。

图2为本发明实施例三中所提供的只读属性修改装置的结构框图。

图3为本发明实施例四中所提供的另一只读属性修改装置的结构框图。

图4为本发明实施例五中所提供的终端设备的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例。本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

实施例一

本发明实施例中提供一种只读属性修改方法,所述方法具体应用于终端设备,在本发明实施例中,所述终端设备尤其指采用Android系统的终端设备,比如采用Android系统的手机、平板电脑、电视等,便于描述,在本实施例及后续实施例中,必要的时候均以采用Android系统的手机为例进行相关说明。

下面对本实施例中所提供的只读属性修改方法的实现流程进行详细说明,具体请参阅图1所述的流程图,所述方法包括:

S101、检测是否存在辅助属性;

对于采用Android系统的手机而言,在Android系统启动过程中将运行一系列的程序进程,其中包括init进程,在init进程中将对系统中的各种属性进行初始化,在init进程中将解析/default.prop、/system/build.prop、/system/default.prop等文件,并将解析结果加载到内存空间中。所述解析结果包括各属性,而本实施例中所述的辅助属性和待修改的只读属性即包含在这些文件的解析结果中,所述辅助属性是可读写的属性,对于只读属性而言,辅助属性的可读写特性将用于对只读属性进行相应的修改,便于描述,在本实施例及后续实施例中将所述待修改的只读属性称为目标属性。

以控制像素密度的属性为例进行说明,只读属性ro.sf.lcd_density用于控制屏幕显示的像素密度,而辅助属性persist.sf.lcd_density的属性值同样针对像素密度的控制,且是可读写的,那么在本实施例中,在初始化之前首先将对辅助属性persist.sf.lcd_density和对应的目标属性ro.sf.lcd_density进行检测过滤,确认是否存在辅助属性persist.sf.lcd_density,以将存在的辅助属性persist.sf.lcd_density及对应的目标属性ro.sf.lcd_density过滤出来。

S102、当存在所述辅助属性时,根据所述辅助属性的属性值初始化目标属性;否则根据所述目标属性原始的属性值进行初始化。

在Android系统启动过程中,按照正常的启动过程,目标属性的初始化是根据自身的属性值进行初始化,因此,在init进程中解析/default.prop、/system/build.prop、/system/default.prop等文件后,若解析结果中存在所述辅助属性,且所述辅助属性与所述目标属性相对应,则在目标属性根据自身的属性值进行初始化之前,读取辅助属性的属性值,并根据辅助属性的属性值对目标属性进行初始化,这样从宏观上替换了目标属性的原始属性值,从而达到修改只读属性的目的,且进行一次替换后后续无需对目标属性再进行其他修改。

通过本发明实施例提供的只读属性修改方法,通过在初始化过程中将辅助属性的属性值对目标属性进行初始化,这样可以在终端设备整个系统中只需初始化一次目标属性,达到修改只读属性的目的,而不需要后续的修改。

实施例二

本发明实施例基于实施例一所述的技术方案,可选的,所述只读属性修改方法还包括创建所述辅助属性,为了减少只读属性修改的工作量,创建一个与所述目标属性的名称相关联/名称相近,同时属性值类型相同的可读写辅助属性,例如针对控制屏幕显示的像素密度的属性ro.sf.lcd_density创建辅助属性persist.sf.lcd_density,相应的,创建所述辅助属性persist.sf.lcd_density包括创建属性名称和属性值。在本实施例中辅助属性与目标属性名称设置成相近的目的是为了便于系统识别。

在本实施例中,创建的辅助属性不仅可以修改还能在Android系统重启后仍然存在,故所述方法还包括修改所述辅助属性的属性值,具体通过控制代码对辅助属性进行修改,比如控制像素密度的属性,在修改辅助属性后重启所述手机,当Android系统运行到init进程阶段进行属性初始化时,对辅助属性persist.sf.lcd_density和目标属性ro.sf.lcd_density进行过滤,根据修改后的辅助属性persist.sf.lcd_density的属性值初始化目标属性ro.sf.lcd_density。在本实施例中,只需通过对辅助属性的修改即可实现对只读属性的任意修改。

在本实施例中,当检测到存在辅助属性时,比较所述目标属性与所述辅助属性的属性值,如果所述属性值不相同,根据所述辅助属性的属性值初始化所述目标属性;否则根据所述目标属性原始的属性值进行初始化。比如控制像素密度的属性,如果辅助属性persist.sf.lcd_density和目标属性ro.sf.lcd_density的属性值相同,则无需根据辅助属性persist.sf.lcd_density的属性值对目标属性ro.sf.lcd_density进行初始化,直接根据目标属性ro.sf.lcd_density自身的属性值进行初始化即可,避免在属性值相同的情况下进行修改。

在本实施例中,在根据所述辅助属性的属性值初始化所述目标属性前还包括授权验证。由于修改只读属性可能对系统的稳定性和安全性产生影响,因此作为可选的方案,在进行只读属性的修改前先进行授权验证,验证通过后再进行相应的修改操作,以避免非正常的修改操作。

通过本发明实施例提供的只读属性修改方法,通过创建辅助属性,并在初始化过程中根据辅助属性的属性值对目标属性进行初始化,这样可以在终端设备整个系统中只需初始化一次目标属性,从而达到修改所述只读属性的目的,而不需要后续的修改。此外还可通过对辅助属性的修改可实现对只读属性的任意修改,同时通过授权验证以避免非正常的修改操作。

实施例三

发明实施例提供一种只读属性修改装置,用于实施前述实施例所述的只读属性修改方法。参阅图2所示的只读属性修改装置的结构框图,所述装置具体包括检测模块201和初始化模块202202,下面对各模块进行具体说明。

检测模块201用于检测是否存在辅助属性;在Android系统启动过程中,在init进程中解析/default.prop、/system/build.prop、/system/default.prop等文件,并将解析结果加载到内存空间中,同时对系统中的各种属性进行初始化。所述解析结果包括本实施例中所述的辅助属性和待修改的只读属性,便于描述,在本实施例及后续实施例中将所述待修改的只读属性称为目标属性。所述辅助属性是可读写的属性,其可读写特性将用于对目标属性进行修改。

以控制像素密度的属性ro.sf.lcd_density为例,可读写的辅助属性persist.sf.lcd_density的属性值同样用于控制像素密度,那么在本实施例中,在初始化之前首先由检测模块201对辅助属性persist.sf.lcd_density和对应的目标属性ro.sf.lcd_density进行检测过滤,以确认是否存在辅助属性persist.sf.lcd_density,并将存在的辅助属性persist.sf.lcd_density及对应的目标属性ro.sf.lcd_density过滤出来。

初始化模块202用于当存在所述辅助属性时,根据所述辅助属性的属性值初始化目标属性;否则根据所述目标属性原始的属性值进行初始化。在Android系统启动过程中,按照正常的启动过程,目标属性的初始化是根据自身的属性值进行初始化,因此,在init进程中解析/default.prop、/system/build.prop、/system/default.prop等文件后,若解析结果中存在所述辅助属性,且所述辅助属性与所述目标属性相对应,则在目标属性根据自身的属性值进行初始化之前,初始化模块202将读取辅助属性的属性值,并根据辅助属性的属性值对目标属性进行初始化,这样从宏观上替换了目标属性的原始属性值,从而达到修改只读属性的目的,且进行一次替换后后续无需对目标属性再进行其他修改。以控制像素密度的属性ro.sf.lcd_density为例,初始化模块202根据辅助属性persist.sf.lcd_density的属性值对属性ro.sf.lcd_density进行初始化。

通过本发明实施例提供的只读属性修改装置,由初始化模块根据辅助属性的属性值对目标属性进行初始化,这样可以在终端设备整个系统中只需初始化一次目标属性,即可达到修改所述目标属性的目的,而不需要后续的修改。

实施例四

基于实施例三,参阅图3,在本发明实施例中,所述只读属性修改装置还包括属性创建模块200,所述属性创建模块200用于创建所述辅助属性,以根据辅助属性对只读属性进行修改,从而减少只读属性修改的工作量,具体的,属性创建模块200创建一个与目标属性的名称相关联/名称相近、同时属性值类型相同的可读写辅助属性,例如属性创建模块200针对控制屏幕显示的像素密度的属性ro.sf.lcd_density创建辅助属性persist.sf.lcd_density,相应的,属性创建模块200创建所述辅助属性persist.sf.lcd_density包括创建属性名称和属性值。在本实施例中辅助属性与目标属性名称设置成相近的目的是为了方便系统识别。

在本实施例中,创建的辅助属性可以修改,具体的,如图3所示,所述只读属性修改装置还包括配置模块203,所述配置模块203用于修改所述辅助属性的属性值,修改后的属性值在Android系统重启后仍然存在。配置模块203具体通过控制代码对辅助属性进行修改,在修改辅助属性后将重启Android系统,以使所述初始化模块202根据修改后的属性值初始化所述目标属性。比如修改控制像素密度的属性,配置模块203修改辅助属性后重启Android系统,当Android系统运行到init进程阶段进行属性初始化时,检测模块201对辅助属性persist.sf.lcd_density和目标属性ro.sf.lcd_density进行过滤,而初始化模块202根据修改后的辅助属性persist.sf.lcd_density的属性值初始化目标属性ro.sf.lcd_density。在本实施例中,只需通过配置模块203对辅助属性的修改即可实现对只读属性的任意修改。

在本实施例中,参阅图3,所述只读属性修改装置还包括比较模块204,所述比较模块204用于当存在所述辅助属性时,比较所述目标属性与所述辅助属性的属性值,如果所述属性值不相同,所述初始化模块202根据所述辅助属性的属性值初始化所述目标属性;否则所述初始化模块202根据所述目标属性原始的属性值进行初始化。比如控制像素密度的属性,如果辅助属性persist.sf.lcd_density和目标属性ro.sf.lcd_density的属性值相同,则初始化模块202无需根据辅助属性persist.sf.lcd_density的属性值对目标属性ro.sf.lcd_density进行初始化,初始化模块202直接根据目标属性ro.sf.lcd_density自身的属性值进行初始化即可,避免在属性值相同的情况下进行修改。

在本实施例中,参阅图3,所述只读属性修改装置还包括权限验证模块205,所述权限验证模块205用于在所述初始化模块202根据所述辅助属性的属性值初始化所述目标属性前进行授权验证,以避免非正常的修改操作对系统的稳定性和安全性产生影响。

通过本发明实施例提供的只读属性修改装置,通过属性创建模块创建辅助属性,并在初始化过程中由初始化模块根据辅助属性的属性值对目标属性进行初始化,这样可以在终端设备整个系统中只需初始化一次目标属性,从而达到修改所述只读属性的目的,而不需要后续的修改。此外还可通过配置模块对辅助属性的修改可实现对只读属性的任意修改,同时通过权限验证模块进行授权验证以避免非正常的修改操作。

实施例五

本发明实施例提供一种终端设备,如图4所示,所述终端设备1包括前述实施例所述的只读属性修改装置2。所述终端设备1尤其指采用Android系统的终端设备,比如采用Android系统的手机、平板电脑、电视等,所述只读属性修改装置2的相关结构及描述可参考前述实施例,在此不再赘述。

通过本发明实施例提供终端设备,在终端设备启动过程中,通过属性修改装置对只读属性进行修改,这样可以在终端设备的整个系统中只需初始化一次目标属性,即可达到修改只读属性的目的,而不需要后续的修改。

需要说明的是,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个非易失性计算机可读取存储介质中。实现上述各软件功能单元的功能的相关程序指令存储在所述非易失性计算机可读取存储介质中,所述程序指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置、智能终端设备等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本发明的实施例,但并不限制本发明的专利范围,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1