小米10 adbd 以root权限启动提供服务
之前写了类似的文章,但是这个文章办法不适用于小米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