[发明专利]动态修改安卓系统只读属性的方法、系统及存储介质有效
申请号: | 201910698456.2 | 申请日: | 2019-07-31 |
公开(公告)号: | CN110502881B | 公开(公告)日: | 2021-09-07 |
发明(设计)人: | 周立群;黄小勇;雷磊;黄坚;李全斌 | 申请(专利权)人: | 广州微算互联信息技术有限公司 |
主分类号: | G06F21/31 | 分类号: | G06F21/31;G06F21/45 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 何文聪 |
地址: | 510220 广东省广州市海珠区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 修改 系统 只读 属性 方法 存储 介质 | ||
本发明公开了动态修改安卓系统只读属性的方法、系统及存储介质,方法包括:通过init进程检测目标文件的访问权限;计算目标代码段的长度,并创建该长度的数组内存;获取目标代码段的内存数据,并将该内存数据存放至所述数组内存;遍历所述数组内存,判断数组内存中的内存数据是否能够匹配只读权限的标识字节,若是则记录所述能够匹配标识字节的内存数据对应的匹配地址;反之则反馈属性修改失败;对匹配地址中的内存数据进行修改。本发明无需频繁地修改system镜像或者root镜像里面的属性,且无需重新启动Android系统,仅需通过init进程即可动态修改属性的访问权限,操作简单且可靠性高,可广泛应用于计算机技术领域。
技术领域
本发明涉及计算机技术领域,尤其是动态修改安卓系统只读属性的方法、系统及存储介质。
背景技术
Android系统里边有很多属性(property),属性由键(key)与值(value)构成,这些属性定义了Android系统的一些公共属性,是名副其实的全局变量存在,其中属性部分属性是允许动态修改、也有部分是只读的不可修改的,这部分只读属性有很多是优先于应用程序去读取的,这样支持动态修改ro(只读)属性是很有必要的。
现有方案在修改只读属性的时候,都是通过修改system镜像里边的build.prop、或者root(根)卷的default.prop文件里边的内容之后,重新启动Android系统才能生效。
现有技术方案需要频繁地修改system镜像或者root镜像里面的属性,不但操作繁琐,而且很容易造成程序出错,甚至导致手机或者模拟器无法启动,不够可靠。
发明内容
有鉴于此,本发明实施例提供一种操作简单且可靠性高的,动态修改安卓系统只读属性的方法、系统及存储介质。
第一方面,本发明实施例提供了一种动态修改安卓系统只读属性的方法,包括以下步骤:
通过init进程检测目标文件的访问权限,获取只读权限的目标代码段的内存地址;
计算目标代码段的长度,并创建该长度的数组内存;
获取目标代码段的内存数据,并将该内存数据存放至所述数组内存;
遍历所述数组内存,判断数组内存中的内存数据是否能够匹配只读权限的标识字节,若是,则记录所述能够匹配标识字节的内存数据对应的匹配地址,并执行下一步骤;反之,则反馈属性修改失败;
对匹配地址中的内存数据进行修改;
其中,所述目标文件为/proc/1/maps文件
进一步,所述获取目标代码段的内存数据,并将该内存数据存放至所述数组内存这一步骤,包括以下步骤:
通过进程跟踪函数将连接参数附加到init进程;所述连接参数为PTRACE_ATTACH连接参数;
通过配置进程跟踪函数中的内存读取参数值,检索init进程的目标代码段的内存数据;
将检索到的内存数据存放到申请的数组内存中;
其中,所述内存读取参数为PTRACE_PEEKTEXT。
进一步,所述内存数据包括数据内容和数据内容对应的地址。
进一步,所述判断数组内存中的内存数据是否能够匹配只读权限的标识字节这一步骤,具体为:
将数组内存中的内存数据与只读权限的标识字节进行比对匹配;
其中,所述标识字节为“ro”。
进一步,所述对匹配地址中的内存数据进行修改这一步骤,包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州微算互联信息技术有限公司,未经广州微算互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910698456.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于属性聚合的异构身份关联方法
- 下一篇:一种控制方法及电子设备