安卓系统root指北(采用adb+Supersu的方案)

上篇文章,这里来讲一下我这两天自己摸索出来的安卓root方法。

一、必备知识

1.何为root及root的分类

因为Android基于Linux内核,所以很多东西都是互通的。熟悉Linux的同学都知道,root就是系统的超级用户,拥有rm -rf /的顶级权限(,而没法得到root权限的话就相当于你只能做一个普通的系统用户了,想要修改一点系统的内容简直寸步难行,而Android默认就是不给你这种权限的。

root权限又可以分为adb中的root权限应用能获得的root权限

在adb中,如果你获得了root权限,那么就相当于你自己获得了系统的完全控制权,也就意味着你可以执行rm -rf /了,当然不建议大家去轻易尝试这个指令哈。

而应用能获得的root权限则更为复杂一些,需要给系统中植入能够给进程操作提级的su程序,跟Linux中概念类似,用户用这个程序进行操作就相当于获得了root用户的权限。

2.安卓系统的基本构成

从最大的层面上来看,安卓系统有三部分构成:主系统恢复系统RecoveryCPU引导系统BootLoader。下面是一些名词的基本介绍:

  1. Bootloader(引导加载程序):是一个位于设备内存中的程序,负责启动操作系统。Bootloader的主要任务是在设备启动时加载操作系统内核,并将控制权交给操作系统。在安卓设备上,Bootloader还负责执行各种启动阶段的初始化和配置工作。
  2. 解锁 Bootloader: 一些设备的Bootloader是被锁定的,这意味着用户不能轻易修改或刷写自定义固件。一些设备允许用户解锁Bootloader,使其可以刷入自定义固件或操作系统。解锁Bootloader可能需要特定的步骤,且会导致设备的数据擦除。
  3. Fastboot 模式: Fastboot 是一种用于与设备交互的协议和工具。通过 Fastboot,用户可以在设备上执行各种操作,例如刷入新的Bootloader、Recovery或操作系统。使用 Fastboot 需要连接设备到计算机,并在计算机上安装相应的驱动和工具。
  4. Recovery 模式: Recovery 模式是一个独立于主操作系统的环境,允许用户执行一些高级的系统维护和恢复任务。在Recovery模式下,用户可以刷入更新、备份和恢复系统等操作。

二、adb命令行(android debug bridge)中如何以root用户进行操作

如果在adb中能够获得root用户的权限,那么下一步为应用授予root权限就会相对简单一点,那么adb中如何获得root用户权限呢?有如下两种情况:

2.1情况一:系统自带adb的root权限

这种情况你会发现直接执行adb shell就能够以root用户的身份操作,或者可以执行su命令提级为root用户,如果满足这两种那么恭喜你,可以直接看下一部分了

2.2情况二:无法提级为root用户

没有权限提级为root用户,这时就需要从头做起了。需要按照以下步骤进行操作(或者你可以尝试使用一些所谓的一键root程序,网上有很多,但是个人不推荐且成功率低):

2.2.1解BL锁(如果有的话)

如果你的设备有BL锁,必须先想办法解锁才能进行下一步操作。

2.2.2刷入新的recovery镜像

解开BL锁之后,通过fastboot刷入一个新的recovery镜像来替换原有恢复系统,推荐TWRP(Team Win Recovery Project)TeamWin - TWRP

2.2.3运行TWRP,刷入root软件或带root的ROM包

根据你设备的类型启动TWRP系统,一般手机是长按电源键加音量上键,电视盒子就五花八门了。

启动后,你可以有两种选择(选择你喜欢的一种即可)

  1. 下载Supersu.zip,按照TWRP的说明将其刷入主系统(本质是用root权限修改主系统的某些文件,如增加su程序)。(官方下载地址:Chainfire SuperSU Download - Official Download Page (supersuroot.org)
  2. 下载别人改好的带Supersu(或其他root权限管理软件)的ROM包,根据TWRP的说明刷入即可。

三、为应用授权root权限(adb方式)

注意:如果在上一部分中你属于情况二,并且已经按照步骤完成所有操作,那么你已经可以为应用授予root权限了,用你的root权限管理软件,如Supersu进行权限管理即可。

以下内容仅上述情况一的用户需要阅读!

如果你的adb可以提级为root用户,那么说明你的系统已经root了一部分,只是无法为应用授权root权限而已(或者说是没有一个管理应用root权限的工具)。但是不要紧,既然已经有了系统的root权限,那么直接动手去安装一个root权限管理工具就好了,例如Supersu,由于它有自己配套的su程序,原来的su程序肯定是不能用了,当然这个替换操作会由Supersu的替换脚本自己完成。

我们只需按照以下步骤就能安装好Supersu,无需刷入TWRP,也无需刷入新的系统。

  1. 下载Supersu的Zip包(其中包含各种CPU的依赖文件)Chainfire SuperSU Download - Official Download Page (supersuroot.org)

  2. 将下好的supersu.zip推到系统的/tmp目录

    adb push /your/path/super.zip /tmp/
    
  3. 解压出安装脚本

    unzip /path/to/supersu.zip META-INF/com/google/android/* -d /tmp
    
  4. 执行安装脚本

    sh /tmp/META-INF/com/google/android/update-binary dummy 1 /path/to/supersu.zip
    

如果执行安装脚本的过程中发现没有某些指令,比如unzip,我们需要去下载一个自己CPU能用的busybox程序(Index of /downloads/binaries (busybox.net)),将其用adb上传到/sbin目录下,然后执行:

cd /sbin
busybox --install .

至于为什么是/sbin目录而不是系统的/system/xbin这些目录,是因为我看了脚本之后发现它判断系统是否支持相应指令时用的是/sbin目录,有点奇怪,但是也只能这么干了。

执行完上述步骤以后重启设备,此时reboot命令可能失效,建议手动重启,重启后会发现Supersu已经接管app的root授权,至此系统成功完成root。

或者可以采用下图中的方案一手动注入有关文件,并设置su的开机启动(但是建议用脚本来安装,毕竟方便_

四、相关软件下载

用到的程序官网我已经附在对应部分后面了。

推荐一篇su有关的文章:How-To SU (chainfire.eu)

如果官网无法访问,也可以去我的资源网站:主页 | 叁月柒の资源库 (sanyue.site),里面有2.82版本的Supersu和busybox等,github授权登录后去/电脑程序/电视系统目录查看。

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要实现在Android 9上永久性开启ADBRoot权限,可以按照以下步骤进行操作: 首先,确保手机已经成功Root,并且安装了Root管理器应用程序,例如SuperSU或Magisk Manager。 接下来,打开Root管理器应用程序,进入设置界面。 在设置界面中,查找并选择"ADB"或"开发者选项"选项。 在"ADB"或"开发者选项"下,查找"ADBroot方式运行"或类似的选项。 启用"ADBroot方式运行"选项。这将允许通过ADBRoot权限访问设备。 保存设置并退出Root管理器应用程序。 重新启动设备,并确保已成功启动。 通过USB连接手机和计算机。 在计算机上打开命令提示符或终端。 运行以下命令以确认手机已成功连接: adb devices 如果设备成功连接,将显示设备的序列号。 现在,可以使用ADB命令以Root权限访问设备。例如,可以运行以下命令来获取设备的Root权限: adb shell 以上就是在Android 9上实现永久性开启ADBRoot权限的步骤。请注意,Root权限可能会对设备的安全性和稳定性产生一定影响,请谨慎操作,并仔细评估Root所带来的风险和利益。 ### 回答2: 在Android 9中,实现永久开启ADBroot权限可以采取以下步骤: 首先,确保已经成功获取了Root权限,并且已经安装了ADB驱动程序。 1. 使用Root浏览器或类似的文件管理器,前往/system目录下的文件夹,并找到名为build.prop的文件,将其复制到外部存储中备份一份。 2. 使用任意文本编辑器打开build.prop文件,在文件末尾添加以下代码:adb.tcp.port=5555 3. 保存并退出文本编辑器,将修改后的build.prop文件替换回/system目录中的原文件。在替换文件时,请确保将文件权限设置为'r-w-r-r'(即644)。 4. 打开终端或命令提示符窗口,通过ADB连接到您的Android设备,输入以下命令: adb shell su -c "setprop service.adb.tcp.port 5555" 以上命令将设置ADB的TCP端口为5555。 5. 在终端或命令提示符窗口中,再次输入以下命令: adb tcpip 5555 此命令将启用ADB的TCP/IP功能,并将端口设置为5555。 6. 断开设备与计算机之间的USB连接,并在设备上找到其IP地址。 7. 最后,在终端或命令提示符窗口中,输入以下命令: adb connect 设备IP地址:5555 这个命令将通过TCP/IP连接至设备。 现在,您的Android设备将永久开启ADBroot权限,并通过TCP/IP连接与计算机通信。您可以使用命令行工具或ADB进行文件传输、调试和其他操作。 请注意,此方法需要Root权限,操作时需要小心谨慎,确保您了解自己的操作,并对设备进行备份以防止意外损坏。 ### 回答3: 在Android 9中实现永久性开启ADBroot权限可以通过以下步骤: 1. 首先,确保您的设备已经处于Root状态。Root是指获取Android设备管理员权限的过程。请注意,Root设备可能会违反设备制造商的保修政策,并增加安全风险。在进行Root之前,请确保了解所有潜在的风险和后果。 2. 安装ADB驱动程序并将其设置为设备管理器。ADBAndroid Debug Bridge的缩写,它允许您通过USB调试模式与Android设备进行通信。 3. 连接您的设备到计算机上,并打开命令提示符或终端窗口。 4. 输入命令"adb root",以获取ADBRoot权限。此命令将设备切换到Root Shell状态。 5. 输入命令"adb remount",以将设备的文件系统重新挂载为可读写模式。这样做是为了能够对设备进行修改。 6. 输入命令"adb disable-verity",以禁用设备的verity验证。verity验证是一种安全特性,用于检查系统文件是否已被修改。 7. 输入命令"adb reboot",以重新启动您的设备。 8. 这样,您的设备将具有永久性开启ADBRoot权限。 请注意,这些步骤仅适用于Root过的设备,并且可能因设备型号和制造商而有所不同。在执行任何操作之前,请务必备份您的设备数据,并谨慎采取措施,以免损坏您的设备。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值