一、车载系统权限的获取-----adb root 1.为什么要获取车载系统权限? 1.首先我们安卓底层Linux系统文件权限分为可读(r)、可写(w)、可执行(x),对于我们一般登录的用户来说,很多文件、系统分区是没有读写权限的,我们无法去查看或者写入某些路径下的文件。但是我们工作中又无可避免的要用的这些权限去操作某些数据,比如(工作中向系统推包、安装某些应用、向电脑拉取某些数据、删除某个文件等等都要涉及到权限问题,这个时候,我们就必须获取最高权限root权限),所以获取权限,是我们工作中必须要掌握的方法。(下图是Linux系统文件权限,权限变更问题,后面将Linux系统命令的时候会细讲) 2.怎么获取最高权限(root 权限)? 1.确保车机和电脑adb已连接(adb devices查看连接状态) 2.输入adb root敲回车(没有任何提示就是最好的提示) 3.如果要操作system系统分区的数据,我们还需要将root权限挂载到system分区: 1.Android 7.0版本以后,为了防止误操作将重要分区的数据损坏或删除,新版本都做了系统分区保护,要想获取system系统分区权限,那么我们就要先关闭分区检测。 2.首先获取最高权限adb root(关闭分区检测需要root权限); 3.输入adb disable-verity (这一步是关闭system分区权限,关闭后应该会提示reboot重启车机); 4.adb reboot (重启车机); 5.adb root (重启后需要重新获取权限); 6.adb remount(这一步就remount成功了,root权限就挂在system分区了); 二、为什么系统权限会获取失败呢? 1.上面讲到的方法是我们车载安卓系统车机获取权限常用的命令,有少部分车企对命令做了特殊处理和规定(如:adb root 会处理成 adb -host root),需要根据项目规定来。 2.系统权限无法获取,或者system分区无法挂载,也可能是当前使用的车机版本开发做了权限包含,不支持最高权限的获取,我们测试一般拿到的是调试版本userdebug版本,他是可以支持adb root 、adb remount 的,但一般到了项目后期,我们会切换到user版本,也就是正式版本测试,这个时候的版本是面向用户的,自然不允许获取最高权限。 3.如果是userdebug调试版本,但是仍然无法获取权限,可以尝试断电重启,或者重新刷机,请教开发同事解决。