一、利用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
-
设置
service.adb.root
与ro.debuggable
属性为 1: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}')
验证
重启权限丢失:
部分情况下手机重启后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