欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

小米10 adbd 以root权限启动提供服务

程序员文章站 2022-05-10 09:09:54
...

之前写了类似的文章,但是这个文章办法不适用于小米10, 原文参考:

https://blog.csdn.net/aerror/article/details/103270830

主要有几个问题:

1. supolicy这个在小米10 中root之后运行不起来,直接segment fault.

2. 小米的文件系统remont 成rw失败,提示

1|vangogh:/data/local # mount -o remount,rw /                                                                                                                                                           

'/dev/block/dm-4' is read-only

root

3. 即使修改了ro.secure 和 ro.adb.secure, 原版小米10的adbd启动后权限还是shell ...

 

解决办法如下, 大提前是你先要把小米10 root了,可以使用su权限获到root的权限。

1.  下载android 10 的 aosp_arm64-img  https://ci.android.com/builds/submitted/7064523/aosp_arm64-userdebug/latest

2.   解压得到system.img文件, 用以下命令得到debug版的adbd

mkdir /mnt/system
mount -o ro system.img /mnt/system
#一定要-o ro 要不然默认是rw,  mount不成功.

#复制得到debug版本adbd
cp  /mnt/system/system/bin/adbd   adbd

3. 上传adbd到 手机

adb push adbd /mnt/sdcard
adb shell su -c mv /mnt/sdcard/adbd /data/local/
adb shell su -c chmod +x /data/local/adbd

4. 编写脚本adbdroot

Upload  system_properties_arm64  and adb to /data/local/

stop adbd 
/data/local/system_properties_arm64 ro.secure 0
/data/local/system_properties_arm64 ro.adb.secure  0  
cd /data/local/
nohup  ./adbd >/dev/null &

5.上传adbdroot到手机,并执行

adb push adbdroot /mnt/sdcard/
adb shell su -c mv /mnt/sdcard/adbdroot /data/local
adb shell su -c chmod +x /data/local/adbdroot 
adb shell su -c /data/local/adbdroot

6. 使用whoami测试,  得到adb shell权限默认就是root,不需要再su一下了,使用原来的脚本工具,调试就很方便了。

$ adb shell whoami
root