Magisk后解决adb root权限问题:adbd cannot run as root in production builds

一、利用Magisk获取root权限

1、环境准备

adb配置:
参考文章:windows下载安装adb(极其简单)_adb工具下载windows-CSDN博客

fastboot:驱动安装(本人在Windows11环境下操作,linux下可以直接识别到)

https://www.alipan.com/s/hv8ikXb6kYV

2、安装Magisk获取root权限

参考文章:一加手机安装面具教程(修补boot.img) - Magisk中文网 (magiskcn.com)

验证:
在这里插入图片描述

二、解决adb root问题

参考文章:Magisk 环境下增加 adb root 功能 - liwugang

执行adb root命令,出现

adbd cannot run as root in production builds

利用Magisk的resetprop工具修改权限

adb shell
su
  1. 设置 service.adb.rootro.debuggable 属性为 1

    resetprop ro.debuggable 1
    resetprop service.adb.root 1
    
  2. 配置 SELinux 权限

    magiskpolicy --live 'allow adbd adbd process setcurrent'
    magiskpolicy --live 'allow adbd su process dyntransition'
    magiskpolicy --live 'permissive { su }'
    
  3. 重启 adbd 进程

    kill -9 $(ps -A | grep adbd | awk '{print $2}')
    

验证

在这里插入图片描述

重启权限丢失:

部分情况下手机重启后adb root权限丢失,需要在执行一遍步骤二,很麻烦,所以可以给Magisk添加脚本,重启自动执行,避免权限丢失的情况。

创建文本文件adb_root.sh

#!/system/bin/sh

# 设置属性
resetprop ro.debuggable 1
resetprop service.adb.root 1

# 配置 SELinux 权限
magiskpolicy --live 'allow adbd adbd process setcurrent'
magiskpolicy --live 'allow adbd su process dyntransition'
magiskpolicy --live 'permissive { su }'

# 重启 adbd 进程
kill -9 $(ps -A | grep adbd | awk '{print $2}')

exit 0

创建完成后执行

adb push adb_root.sh /data/local/tmp/
adb shell
su
cd /
mv /data/local/tmp/adb_root.sh /data/adb/service.d/
chmod 777 /data/adb/service.d/adb_root.sh

该脚本在手机重启时执行,避免adb root 权限消失。

可以查看一下权限:

ls -l ./data/adb/service.d/adb_root.sh

或者自己执行一下:

./data/adb/service.d/adb_root.sh
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值