代码路径:system\core\adb
小结:
1.adb root 命令设置了service.adb.root这个属性,重启了adbd,我们再从init.rc中看下,
on property:service.adb.root=1
write /sys/class/android_usb/android0/enable 0
restart adbd
write /sys/class/android_usb/android0/enable 1
2.主要看adbd_daemon 的 adb_main函数,得到service.adb.root和ro.debuggable都为1可以adb root,should_drop_privileges函数返回false,就不会讲adbd降级为shell,就是root了
3.adbd启动在init.rc中
# adbd is controlled via property triggers in init.<platform>.usb.rc
service adbd /system/bin/adbd --root_seclabel=u:r:su:s0
class core
socket adbd stream 660 system system
disabled
seclabel u:r:adbd:s0