adb为Android的root方法,Android 实现永久性开启adb 的root权限

adb 的root 权限是在system/core/adb/adb.c 中控制。主要根据ro.secure 以及 ro.debuggable 等system property 来控制。

默认即档ro.secure 为0 时,即开启root 权限,为1时再根据ro.debuggable 等选项来确认是否可以用开启root 权限。为此如果要永久性开启adb 的root 权限,有两种修改的方式:

1. 修改system property ro.secure, 让ro.secure=0。

2. 修改adb.c 中开启root 权限的判断逻辑。

下面详细说明这两种修改方式:

第一种方法.

修改system property ro.secure, 让ro.secure=0。

(1) 修改alps/build/core/main.mk

ifneq (,$(user_variant))

# Target is secure in user builds.

ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=1

ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=1

改成

ADDITIONAL_DEFAULT_PROPERTIES += ro.secure=0

(2) 在android JB 版本(4.1) 以后,google 从编译上直接去除了adbd 的user 版本root 权限, 为此您要修改system/core/adb/Android.mk 中的编译选项 ALLOW_ADBD_ROOT, 如果没有打开这个选项,那么adb.c 中将不会根据ro.secure 去选择root 还是shell 权限,直接返回shell 权限。

因此您必须需要Android.mk 中的第126行:

ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT)))

===>

ifneq (,$(filter userdebug user eng,$(TARGET_BUILD_VARIANT)))

第二种方法.

修改adb.c 中开启root 权限的判断逻辑。这里针对4.1 以后版本 和4.1以前版本有所区别。

如果是JB 4.1 以后版本,直接修改函数 should_drop_privileges() 函数, 清空这个函数,直接返回 0 即可。返回0 即开启root 权限。

[测试与确认]

当修改完成后,只需要重新build bootimage ,然后download 即可,然后到setting 中开启debug 选项,adb 连接后,会显示 #, 即root 成功。

补充知识:adb怎么判断是否有root权限,并更改system/app内容

一、首先判断root权限:

adb root

结果:

C:\signapp>adb root

restarting adbd as root # 说明有root权限 ,若是adbd cannot run as root in production builds 则说明没有root权限

二、更改system/app内容

一般情况下system/app都会出现read only,所以需要adb remount(这是一个重新mount你的分区的命令,让system分区从只读变成可读可写,获得了root权限才可运行,先执行adb root)

在system/app中就可以随意修改了,但是注意一点,

若想预置为系统应用,则如果只是将apk拷贝到 /system/app目录下还是不够的,还需要 777 的权限,命令:chmod 777 target.apk

总的来说就下面几个代码:

adb root

adb remount

adb push target.apk /system/app

adb shell

cd ../system/app

chomd 777 target.apk

reboot

还有些地方可以通过如下命令操作:

$ adb push SecureSetting.apk /sdcard/ // 上传要安装的文件,为安装做准备。

$ adb shell $ su // 切换到 root 用户。如果没有获得 Root 权限,这一步不会成功。

# mount //显示当前mount情况

# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system // 让分区可写。

# cat /sdcard/SecureSetting.apk > /system/app/SecureSetting.apk // 这一步可以用 cp 实现,但一般设备中没有包含该命令。如果使用 mv 会出现错误:failed on '/sdcard/NetWork.apk' - Cross-device link。

chmod 777 chetou.apk

# mount -o remount,ro -t yaffs2 /dev/block/mtdblock3 /system // 还原分区属性,只读。

# exit $ exit

以上这篇Android 实现永久性开启adb 的root权限就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持得牛网。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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过的设备,并且可能因设备型号和制造商而有所不同。在执行任何操作之前,请务必备份您的设备数据,并谨慎采取措施,以免损坏您的设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值