Android怎么实现永久性开启adb的root权限

您所在的位置:网站首页 adb开启root权限 Android怎么实现永久性开启adb的root权限

Android怎么实现永久性开启adb的root权限

2023-09-22 04:18| 来源: 网络整理| 查看: 265

Android怎么实现永久性开启adb的root权限 发布时间:2021-05-07 14:54:47 来源:亿速云 阅读:2782 作者:小新 栏目:移动开发

小编给大家分享一下Android怎么实现永久性开启adb的root权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Android是什么

Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。

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 rootrestarting 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 rootadb remountadb push target.apk /system/app

adb shellcd ../system/appchomd 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权限”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

推荐阅读: 关于Android adb实现框架和应用 如何开启小米手机5的ROOT权限

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:[email protected]进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

android adb root 上一篇新闻:怎么在mysql中将null变为特定值 下一篇新闻:如何在Flask中使用SQLAlchemy连接数据库 猜你喜欢 小程序开发需要了解什么技术 小程序中如何使用bdParse富文本解析工具 微信小程序怎么优化 小程序怎么自定义tabbar组件并实现底部tab切换 Referer丢失的示例分析 小程序跨页面之间通信的方式有哪些 小程序如何实现五星评价功能 小程序request封装的详细流程 如何利用小程序生成海报 如何使微信小程序支持async await


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3