欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]修改ro属性的小工具新版本-170119

[原创]修改ro属性的小工具新版本-170119

这次修改主要考虑兼容Android 4.x-7.x 。
7.x中属性数据结构及selinux策略变化太大,老的方式不好适配。
索性改了个思路,直接ptrace init进程,对标红的ro.属性的判断逻辑进行修改,跳过,这样任意属性就都可以设置了。
system\core\init\property_service.c*


static int property_set** (const char* name, const char* value) {

    ......

    prop_info* pi = (prop_info*) __system_property_find(name);

    if(pi != 0) {

        /* ro.* properties may NEVER be modified once set */

        [COLOR="Red"]if(!strncmp(name, "ro.", 3)) return -1;[/COLOR]

        __system_property_update(pi, value, valuelen);

    } else {

        int rc = __system_property_add(name, namelen, value, valuelen);

        if (rc < 0) {

            return rc;

        }

    }

   ...


使用该工具修改ro.属性的前提:
1. adb shell 拥有root权限,或者 adb shell su 以后可以拥有root权限;
2. 1中获取的shell 其 selinux domain为permissive domain,如 u:r:su:s0 或者 其他可以ptrace init进程且有设置ro.xx目标属性selinux权限的domain。
用法:
adb push .\libs\armeabi-v7a\mprop /data/local/tmp/
adb shell "chmod 755 /data/local/tmp/mprop"
# 修改init进程中的ro属性判断逻辑
adb shell "/data/local/tmp/mprop"
# 之后就可以修改任意ro属性了,如
adb shell "setprop ro.debuggable 1"
# 恢复init默认逻辑,之后就无法再修改ro属性了
adb shell "/data/local/tmp/mprop -r"

上传的附件 mprop170119.zip

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功