android user模式下切换为root权限方法

1,环境:android4.2.2

2,目的:用自己的标识来切换到adb root权限。

3,步骤:

 1)   在文件system\core\adb\adb.c 的should_drop_privileges中函数添加如下代码:

    property_get("service.adb.joe.root", value, "");
    if (strcmp(value, "1") == 0) {
        secure = 0;
    }

2)  init.rc文件中添加:

      文件前:

       setprop service.adb.joe.root 0

      文件最后:

       on property:service.adb.joe.root=1
       restart adbd

 

  3)Property_service.c (\system\core\init) property_perms添加一行:

     { "service.adb.joe.root", AID_SHELL,    0 },

  4)Services.c (\system\core\adb) 添加一个新的函数:

void restart_joe_adb_service(int fd, void *cookie)
{
    char buf[100];
    char value[PROPERTY_VALUE_MAX];

    if (getuid() == 0) {
        snprintf(buf, sizeof(buf), "adbd is already running as root\n");
        writex(fd, buf, strlen(buf));
        adb_close(fd);
    } else {
        property_set("service.adb.joe.root", "1");
        snprintf(buf, sizeof(buf), "restarting adbd as root(force)\n");
        writex(fd, buf, strlen(buf));
        adb_close(fd);
    }
}

service_to_fd函数中添加调用:

    } else if(!strncmp(name, "joe_root:", 8)) {
        ret = create_service_thread(restart_joe_adb_service, NULL);

5,切换

    adb shell

    此时进入的用户为shell,在命令行输入:setprop service.adb.joe.root 1

    按回车后会自动退出ADB连接,因为此时机器上的adbd服务被重启了,所以断开了连接,再重新连进入后就是root权限的用户了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值