-
2022-01-14 16:37:45
方法分为永久性获取root权限以及非永久性获取Root权限
非永久性获取Root权限:
非永久性获取Root权限可以在我们要键入的命令之前加上sudo前缀。
如 要键入的命令是: rm ,以Root用户执行的方式就是: sudo rm
这样在每个需要Root权限的命令之前都需要键入一次sudo非常不方便,如何在一个会话中永久的获取root权限呢?
永久性获取Root权限:
先临时的获取到root权限,使用root权限更改root用户的密码。然后利用su命令键入我们刚刚更改过的root密码就可以了。
- 进入终端
- 输入 sudo passwd root (注意passwd的拼写),并设置密码。提示你输入两次密码,自己设定密码,一定要记住,然后切换到root使用
- 输入su root。要求你输入密码,然后输入刚才设定的密码,ok进去了--root环境
- 之后想要退出输入exit即可。
##密码:一般是进入环境的密码
如果不想切换root但是想拥有大部分root权限,可以在使用命令时候加上sudo,sudo mount挂载。
如果你想再linux上切换用户,输入:su + 用户名,就OK了,他会要求你输入密码。
更多相关内容 -
Android 操作系统获取Root权限 原理详细解析
2021-01-04 16:22:45许多机友新购来的Android机器没有破解过Root权限,无法使用一些需要高权限的软件,以及进行一些高权限的操作,其实破解手机Root权限是比较简单及安全的,破解Root权限的原理就是在手机的/system/bin/或/system/xbin/... -
ubuntu18.04获取root权限并用root用户登录的实现
2020-09-14 21:43:14主要介绍了ubuntu18.04获取root权限并用root用户登录的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
Android应用源码获取root权限静默安装
2019-07-29 10:19:22这是一个获取root权限后,不弹出系统安装界面,直接进行安装的的源码。代码只有一个MainActivity,看起来相对比较容易,代码中重要部分都已加入详细的注释,方便大家阅读。不过应用程序运行命令获取ROOT权限,设备... -
Android获取ROOT权限的实例代码
2020-09-04 21:55:22主要介绍了Android如何获取ROOT权限,写了一个小方法,大家可以在应用中检测ROOT权限 -
群晖V6.2 获取root权限设置root密码方法
2019-02-20 11:58:21群晖V6.2 获取root权限设置root密码方法 一、使用管理员登录群晖系统,登录控制面板—>>“终端机和SNMP”里,开启SSH功能,端口可以自行设置。 二、使用SSH客户端工具登陆群晖,用系统默认用户登陆(初始化群晖系统... -
linux免密码获取root权限
2018-01-04 09:00:34linux免密码获取root权限!!!!!!!!!!!!!!!!!!!!!!!!!!! -
su文件用于获取root权限
2018-05-13 17:04:09su文件,手机adb获取root权限,使用su文件直接放在system/bin目录下 -
root+magisk+所有手机获取root权限通用教程
2022-03-12 13:35:43所有手机不限种类root通用教程,傻瓜式操作按照提示直接刷入,安全快捷方便,要用就用官方的。 -
安卓应用程序永久获取Root权限的方法
2013-07-28 19:59:40压缩包内有apk,demo源码,以及NDK 安装文档,主要是教你如何在已经root过得手机上只通过一次获取root权限,以后就再也不会弹出root授权框,主要思想是绕过superuser.apk的权限检查 -
Android修改源码让APP获取root权限可以执行su命令的git diff记录
2017-08-30 11:00:10修改源码让APP获取root权限可以执行su命令的git diff记录 -
Android手机获取root权限并实现关机重启功能的方法
2020-09-04 06:15:58主要介绍了Android手机获取root权限并实现关机重启功能的方法,是Android程序设计中非常重要的技巧,需要的朋友可以参考下 -
Android应用获取Root权限
2021-02-28 08:10:03在项目的过程中,有可能会要实现类似360优化大师、安卓优化大师的软件搬家、静默安装等需要root权限的功能,或者类似SET_PREFERRED_APPLICATIONS、MOVE_PACKAGE等需要系统的权限,必须要有系统签名。咱们拿 软件搬家...在项目的过程中,有可能会要实现类似360优化大师、安卓优化大师的软件搬家、静默安装等需要root权限的功能,或者类似SET_PREFERRED_APPLICATIONS、MOVE_PACKAGE 等需要系统的权限,必须要有系统签名。
咱们拿 软件搬家 来当例子(通过获取系统权限,而不是弹出系统的应用管理界面来搬家):
实现方式:
1、想办法获取系统权限,但是这个一般办不到,因为不同厂家出厂的手机系统签名都不一样
(
可以看看我很早的时候提的问题:
android系统权限SET_PREFERRED_APPLICATIONS怎么获取
)
2、在已经root过得手机,获取root权限(有root权限就可以为所欲为啦,嘿嘿)
第一种办法暂时不考虑,想了解的童鞋可以google Android如何获取系统权限。
我们说说第二种办法,
在已经root过得手机上获取root权限,简单
Java代码
Process process = Runtime.getRuntime().exec("su");
执行这一句,superuser.apk就会弹出授权对话框。
但是这样做就可以了吗.....肯定没这么简单啦!
当执行需要系统权限的操作时,系统还是回去检查应用程序是否拥有该权限。
所以我们要想办法绕过过系统检查权限这道关卡!
至于办法 可以参考下以下两篇博客:
1、android应用搬家的实现
2、如何在Android中启动java程序
大概思路是:
通过app_process 命令启动Java程序(想了解app_process更多资料,请自行google),
可是app_process 命令需要root权限才能执行,所以要配合上面所讲的su命令啦。
这么做是可以实现绕过系统检查权限的大门,
但是每次执行的时候都要先请求下root权限(那种弹框和toast会让用户感觉到很不安)
不要忘了咱们的标题:android应用程序永久获取root权限方法。
永久获取root权限,就是获取过一次root权限后,以后再也不需要去请求root权限
实际上,像一些软件管家:安卓优化大师、360优化大师,都是这么做的
(不信你可以试试其软件搬家功能,即使你的手机解除root,它们还是具有root权限)
原理可以看下以下链接:
安卓应用程序永久获取Root权限的方法
(下载该文章需要money,明天我再上传该文档,一时找不到了.......)
大概思路:
自己编译一个类似su的可执行程序(以下以main为代号),在main中调用app_process命令,
然后在第一次获取root权限的时候将其push到/system/bin/目录下,再chmod 4755 可执行程序,
修改其访问权限,使执行该命令的进程能够暂时获得root权限
(4755 也请google下吧 Linux文件权限)。
以后咱们要是需要root权限的话就调用mian命令,不用去调用su来请求root权限啦
至于为什么要这么做:也是为了让root授权的对话框和toast不在显示
插一句,想要知道su和superuser.apk的关系,请点开下面的链接
android superuser.apk 管理root权限原理分析
综上:我们所做的就是绕过su命令,用我们自己编写的可执行程序main开实现su的功能。
自己编译可执行程序main的时候,需要注意一点,请参考su源码,
我在这一步就卡了很久,
大概意思:
main的uid是继承的父类的uid,而且它有root权限,但是在main中执行system(cmd),
(这里的cmd 调用app_process 来启动实现了软件搬家的java程序),
假如system()是通过sh 命令来实现,但在main中开启的sh的uid也是继承main的uid,
也就是应用程序的uid,但是这个uid并没有权限执行相关root命令;
所以需要先将main的uid设置为root,为了使sh的uid也为root,从而使sh 能够执行
需要root权限的app_process命令
关键代码在你的main 方法中加入
C代码
int uid = 0;
int gid = 0;
if(setgid(gid) || setuid(uid))
return permissionDenied();
[cpp] view plain copy
#include
#include
int main(int argc, char **argv)
{
if (setgid(0) || setuid(0))
fprintf(stderr, "su: permission denied\n");
else
{
char *args[argc + 1];
args[0] = "sh";
args[argc] = NULL;
int i;
for (i = 1; i
args = argv;
execv("/system/bin/sh", args);
}
}
可以参考su的源码 (su的源码会在我上传的压缩包中)
大概思路就是这样。
PS:
在我上传的压缩包中有我自己写的demo,实现的是软件搬家的功能,
操作很简单:
1、安装Movepkgdemo.apk,并执行
2、点击 install com.zl.hw 按钮 来 安装一个helloword android程序,
3、点击 get root 按钮,来第一次获取root权限,
4、点击第三个按钮,来移动helloword程序
PPS:
1、编译可执行程序main(注意main只是个代号,在Movepkgdemo中 是 放在Movepkgdemo项目的 /res/ raw/ 目录下的zlsu文件)
2、将main.c文件成可执行文件会需要linux编译环境,你可以自己在linux上编译,也可以在windows下来编译
windows方法:使用cygwin 来进行NDK开发(搭建该环境可能需要话费比较多时间,主要是要下载cygwin)
cygwin环境配置文档也在上传的压缩包中,虽说花了打功夫,但是搭建好NDK环境,以后也能方便咱做NDK开发。
NDK环境搭建需要cygwin在安装的时候安装必需的一些项目(请查看以下链接):
Cygwin安装
最后总结一下总体思路:
1、在java代码中实现需要root权限的功能,并提供一个包含入口函数main的类
2、通过app_process命令来启动1中的java模块,但是app_process需要root权限,所以看第3步
3、通过在第一次获取root权限的时候,向/system/bin/注入自写的类似su的二进制可执行程序
main,并且和su的访问权限也一样(chmod 4755)(main功能和su一样,唯一不一样就是去除了su中与superuser.apk 交互的代码),即main命令执行app_process命令,这样可以做到:
一旦拥有root权限,以后再也不需要去请求root权限
-
Android中Root权限获取的简单代码
2020-09-05 04:31:01那么我们在Android开发中如何获取Android的Root权限呢?下面是主要的简单代码。 -
Shell脚本切换root用户或获取root权限
2022-03-09 16:06:53想法:在执行需要root权限的命令时切换到root用户 或者 拿到root权限。 切换root用户 1、安装expect yum install -y expect 2、编写脚本 (3条消息) 解决linux下sudo更改文件权限报错xxxis not in the sudoers...前言
需求:Shell脚本不能通过root用户执行,只能通过普通用户执行。但是脚本中的某些命令需要时root权限。
想法:在执行需要root权限的命令时切换到root用户 或者 拿到root权限。
一、切换root用户的脚本
1、安装expect
yum install -y expect
expect 的用法参考这篇文章:
Linux expect 介绍和用法 - 梦徒 - 博客园 (cnblogs.com)
https://www.cnblogs.com/saneri/p/10819348.html
2、编写脚本
## switchRoot.sh 脚本内容 #!/usr/bin/expect ## 只有先进入expect环境后才可执行spawn ## 不论是在此脚本内自动输入密码还是在脚本外手工输入密码,至少要等待1秒 set timeout 1 ## 切换root用户 spawn su root ## 判断上述进程(su kevin)的输出结果中是否有“Password”的字符串(不区分大小写)。 ## 若有则立即返回,否则就等待一段时间后返回,等待时长就是开头设置的1秒 expect "Password:" ## 向上面的进程(su kevin)发送字符串中的密码, 并且自动敲Enter健(\r) send "root123456\r" interact
3、效果
4、问题
当你在执行一个Shell脚本时,为了获取root权限而切换root用户时,会导致脚本中止。这显然不是我们想要的,因此我们可以选择使用 sudo 命令来临时获取root 权限。
二、获取root权限(sudo)的脚本
## sudoUser.sh 脚本内容 #!/usr/bin/expect set timeout 1 ## sudo命令会返回的提示信息的一部分 expect "password for" ## 当前用户的密码 send "dhj123456\r" interact
注意:并非所有用户都能使用sudo命令。
三、测试效果
新建test.sh脚本,内容如下:
#!/bin/bash echo "-------------- start." ## 打印root用户home目录的abc.txt文件 ## 这个文件只有root能查看和修改,其他用户需要通过sudo来暂时获取root权限 sudo cat /root/abc.txt ## 调用暂时获取root权限的脚本 ./sudoUser.sh echo "------------ end." exit
效果
参考文章:
-
android apk获取root权限方法总结
2014-04-16 14:15:48android apk获取root权限方法总结 -
oppo手机获取root权限
2021-09-04 20:47:48oppo root oppo 系列 OPPO R7 Plus 亲测成功 但注意手机会刷有root权限的系统, 在手机中安装后, 打开点玩机, 获取root权限. -
Android虚拟机获取root权限
2021-06-05 10:48:14在真机上获取root权限,可以很方便的通过第三方的一键root工具来实现,缺点是会安装不少广告apk。即使可以忍受,但无法解决在虚拟机里拿到root。尝试一键root工具,百度、360的root工具无法识别虚拟机,卓大师可以...在真机上获取root权限,可以很方便的通过第三方的一键root工具来实现,缺点是会安装不少广告apk。
即使可以忍受,但无法解决在虚拟机里拿到root。尝试一键root工具,百度、360的root工具无法识别虚拟机,卓大师可以获取root但无法正常进行权限管理,也就达不到获得su的效果。
下面是网上找到的可行方法
===============================================================================
一、准备
su
Superuser.apk
二、步骤
1、打开安卓虚拟机
2、将su和Superuser.apk放到E:\Program Files\Android\android-sdk\tools路径下(每个人的安装路径不同,请视情况而定)
3、打开CMD进入E:\Program Files\Android\android-sdk\tools输入以下命令
Adb pull /system/build.prop
4、进入E:\Program Files\Android\android-sdk\tools,用文本编辑器打开build.prop文件,用”#”注释掉ro.config.nocheckin=yes行
5、在CMD中依次输入以下命令
Adb remount #挂载读写权限
Adb push build.prop /system/build.prop
adb push su /system/bin
adb shell chmod 4755 /system/bin/su
adb push Superuser.apk /system/app/
adb shell chmod 4755 /system/app/Superuser.apk
6、打开Superuser有root权限
7、重启虚拟机(会丢失权限,暂时没找到办法禁止初始化,求指点)
===============================================================================
注意事项:
第一、如果虚拟机是基于x86内核,则上诉命令中的“bin”需要修改为:xbin
第二、如果发现无法正常修改su的权限,或者修改后在虚拟机的Terminal仍然无法su,可参照下面方案解决:
root@generic_x86:/system/bin # cat sh > /system/xbin/su
cat sh > /system/xbin/su
root@generic_x86:/system/bin # cd /system/xbin/
cd /system/xbin/
root@generic_x86:/system/xbin # chmod 777 su
chmod 777 su
root@generic_x86:/system/xbin #
遗留问题:
第一、目前项目中有款软件运行初能拿到su权限,而执行过程中需要修改system/bin内容,则无法使用mount和cp命令。已经是su却不能mount,不知运行时是什么权限?或者哪里问题
第二、虚拟机重启后,所有与root相关权限及安装的apk都会丢失,怀疑虚拟机有初始化操作。
-
android允许所有用户获取root权限
2012-12-28 11:21:46android允许所有用户获取root权限,编译生产su可执行文件,需要拷贝到system/xbin/目录下,并需要修改权限chown root root /system/xbin/su chmod 6755 /system/xbin/su -
Linux命令学习:获取root权限
2021-05-10 07:22:30Linux命令学习:获取root权限为什么要切换到root用户?root用户是Linux系统的最高权限用户,该用户拥有系统的生杀大权。然而,正因为此用户权限过大,系统一般情况下不允许你一root用户登录系统。但是,以普通用户... -
linux系统获取root权限
2020-06-26 11:12:33简要说明linux下root用户权限的获取、退出和密码设置方法等 -
如何由普通用户权限获取root权限
2021-07-06 18:35:241、添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户 ...Changing password for user tommy. ...passwd: all authentication tokens updated ...2、赋予root权限方法一 -
获取ROOT权限补丁_20180326-rk3328-android8.1-userdebug.zip
2019-08-28 21:06:21rk3229_获取ROOT权限补丁_20171024.rar------->适用于Android 7.1 32位 root_tool5.1.zip---------->适用于Android 6.0/5.1 root.tar---------->适用于Android 4.4 RK3399_android7.1_root-------->适用... -
华为手机获取root权限
2021-08-01 19:28:36由于本人有一个Android系统的华为手机,本篇记录如何安装Magisk,获取root权限。 Magisk GitHub地址:https://github.com/topjohnwu/Magisk/ 一、手机类型 基本配置: 型号:CAM-AL00 系统版本号:EMUI 系统... -
CentOS获取root权限
2020-04-05 22:23:54输入sudo passwd root 提示cenos 不在 sudoers 文件中。此事将被报告。 说明sudoers文件放在etc目录下 则应该使用 “su root” 命令行用户切换为root