网站开发属于知识产权吗,广州市天河区门户网站,3d网站开发,正规制作网站公司前言
客户需求#xff0c;需要判断设备是否执在root状态。可以理解为是否执行了adb root 设置root状态#xff0c;已经adb unroot设置unroot状态。
代码分析
分析adb deamon发现#xff1a;在执行adb root 、adb unroot指令时#xff0c;系统会更新service.adb.root 变量…前言
客户需求需要判断设备是否执在root状态。可以理解为是否执行了adb root 设置root状态已经adb unroot设置unroot状态。
代码分析
分析adb deamon发现在执行adb root 、adb unroot指令时系统会更新service.adb.root 变量。
void restart_root_service(unique_fd fd) {if (getuid() 0) {WriteFdExactly(fd.get(), adbd is already running as root\n);return;}if (!__android_log_is_debuggable()) {WriteFdExactly(fd.get(), adbd cannot run as root in production builds\n);return;}LOG(INFO) adbd restarting as root;android::base::SetProperty(service.adb.root, 1);WriteFdExactly(fd.get(), restarting adbd as root\n);
}void restart_unroot_service(unique_fd fd) {if (getuid() ! 0) {WriteFdExactly(fd.get(), adbd not running as root\n);return;}LOG(INFO) adbd restarting as nonroot;android::base::SetProperty(service.adb.root, 0);WriteFdExactly(fd.get(), restarting adbd as non root\n);
}实现
系统应用可以通过SystemProperties get ”service.adb.root“ value来判断是否root。
public static final String ADB_ROOT_PROP service.adb.root;public static boolean deviceIsRooted(){
return SystemProperties.getInt(ADB_ROOT_PROP,0) 1 ? true:false;
}